스터디노트/CS & 기본기
-
MSA란???스터디노트/CS & 기본기 2022. 2. 2. 10:47
MSA란?? Microservice Architecture 하나의 큰 어플리케이션을 만들기 위해 잘게 쪼개 여러개의 어플리케이션을 합치는 것 Monolithic과 상반되는 개념 MSA의 장점 배포가 용이하다. 서비스별로 개별 배포가 가능하기 때문에 전체 서비스를 중단할 필요가 없다. 확장에 용이하다. 장애 대응에 용이하다. 특정 장애가 전체 서비스에 영향을 미칠 경우가 적다. MSA의 단점 성능적인 측면 비용이나, Latency가 증가하게 된다. 테스트/트랜잭션 측면 서비스가 분리되어 있기 때문에 테스트/트랜잭션 복잡도가 높다. 데이터 관리 측면 서비스 별로 데이터를 관리하기 때문에 한번의 조회로 전체 데이터를 가져오기 힘들고 정합성 등을 검증하기 관리하기 어렵다.
-
Restful API 특징스터디노트/CS & 기본기 2022. 2. 1. 11:11
Restful API란?? 클라이언트 -> 서버 -> DB 형식으로 클라이언트에서 request를 보내고 요청한 데이터에 맞는 response를 보내는 형식 URL 형식으로 CRUD에 대한 요청을 처리한다. POST : Create GET : Read Put : Update Delete : Delete Restful API의 원리원칙 클라이언트와 서버가 분리되어야한다 Stateless 해야한다. Token 등 3자 인증방식으로 관리하므로 session을 사용하지 않는다 (Stateful이 아니다) Cashable 해야한다. 계층적으로 관리되어야한다. 클라이언트 -> 컨트롤러 -> 서비스 -> 레파지토리 -> DB 구조 같이 인접한 노드끼리는 통신이 되지만 건너뛰면서 통신은 하지 않는다.
-
디자인 패턴스터디노트/CS & 기본기 2021. 7. 31. 13:53
디자인 패턴이란? 소프트웨어 공학론 안의 좋은 코드를 설계하기 위한 설계 디자인 방법론 좋은 코드란? : 설계 관점에서 좋은 코드, 즉 확장과 수정에 용이하여 유지보수에 비용이 적게 들어가는 코드(요구사항 변경 시 코드 수정을 최소화 하는 방향으로) 싱글톤 패턴(Singleton Pattern) 단 하나의 인스턴스를 생성하여 사용하는 디자인 패턴 하나의 인스턴스를 사용하기 때문에 메모리 낭비를 방지할 수 있다. 싱글톤 인스턴스가 많은 데이터를 공유 할 경우 수정과 테스트가 어렵다. 팩토리 패턴(Factory Pattern) 인터페이스로 객체들을 정의하고 팩토리가 인스턴스를 생성하는 디자인 패턴 인터페이스를 바탕으로 유연성과 확장성 보장 인터페이스란? 밑그림만 있는 설계도 추상메서드와 상수만을 맴버로 가질..
-
개발 방법론스터디노트/CS & 기본기 2021. 7. 31. 13:47
폭포수 모델(Waterfall Model) 선형 순차적 모델 (Top-down) 이전 단계 수행 완료 전까지 다음 단계를 진행 할 수 없음. 분석이 끝나면 수정이 어려움 큰 규모의 프로젝트나 고객의 요구사항이 변경되는 프로젝트에 부적합. 애자일 방법론 일정한 주기로 프로토 타입을 만들어 고객의 요구사항이 있을 때 마다 반영하는 개발 방식 계획에 따르기 보다 변화에 대응하기 위한 방법론 스크럼 : Sprint 중심, 매일 정해진 시간과 정해진 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심의 방법론