RESTful (REpresentational State Transfer)
자원을 정의하고 자원에 대한 주소 지정 방법 전반에 대한 패턴
분산 하이퍼미디어 시스템 (ex. WWW)을 위한 소프트웨어 아키텍처의 한 형식
리소스 : URI-Uniform Resource Identifiers (명사)
메소드 : HTTP Method (GET : 조회/ POST : 생성/ PUT : 기존 entity 전체수정/ PATCH : 일부수정/ DELETE : 삭제)
메시지: Header, Body 명확히 분리해서 사용
Header : API 버전정보(서버의 컨트롤정보), MIME 타입(응답받고자 하는 타입)
Entity : body에 작성
브라우저와 서버의 형식 통일 (ex. form-data, json ...)
장점 : Open API 제공 용이/ 멀티플랫폼 지원, 연동 용이/ 데이터를 원하는 타입으로 주고받을 수 있음
단점 : 메소드 4종류만 가능/ 분산환경에 부적합/ HTTP 통신모델만 지원
TDD (Test-Driven Development)
매우 짧은 개발 사이클 반복에 의존하는 SW개발 프로세스
개발자는 요구되는 기능에 대한 자동화된 TC작성 > 해당 테스트를 통과하는 가장 간단한 코드를 작성 (리팩토링 반복)
개발자는 해당 기능의 요구사항, 명세를 분명히 이해해야 함
장점 : 요구사항에 집중
단점 : 테스트에 대한 사전 학습 필요, 100% 무결성 보장 안됨
함수형 프로그래밍
immutable : 가지고 있는 값을 변경할 수 없는 객체, 값 변경 시 새로운 객체 생성, 변경된 값 주입하여 반환
mutable : 값을 변경 가능한 객체
Reactive Programming : 반응형, 선언형 프로그래밍. 함수형 프로그래밍 활용. 모든 것을 stream으로 봄
↔ 명령형 프로그래밍 (Imperative Programming)
stream : 값들의 집합. 함수형 메소드를 통해 immutable하게 관리
MVC (Model, View, Controller)
Controller
클라이언트 요청 받을 시, 실제 업무 수행하는 Model 호출 / 클라이언트가 데이터 전송 시 데이터 가공 후 Model에 전달
Model의 작업이 끝나면 결과를 View에 전달
Model
Controller가 호출 시, 역할 수행
비즈니스 로직 구현 영역. 응용 프로그램에서 데이터를 처리하는 부분 (DB에 연결, 데이터 추출, 저장, 삭제 ,업데이트, 변환 작업 수행)
상태 변화가 있을 시 Controller, View에 통보 > 후속조치 명령 받음
View
Controller에게 받은 Model의 결과를 사용자에게 출력할 화면을 만듦
만든 화면을 웹브라우저에 전송, 웹브라우저가 출력 (추출한 데이터/ 텍스트/ 입력폼/ 인터페이스 등)
Reference
'CS Interview > etc' 카테고리의 다른 글
마이크로 서비스란 (MSA) - 모놀리식 아키텍처, API Gateway vs ESB (0) | 2021.06.16 |
---|---|
REST API 특징과 보안 (0) | 2021.06.15 |
[IBM API connect] 특징 (2) | 2021.05.11 |
JavaScript (0) | 2021.05.06 |
React & Vue (0) | 2021.05.06 |