Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Spring
- gcp
- JPA
- 인천여행
- 카프카
- aws
- 오일러프로젝트
- Spring Boot
- 쿠버네티스
- 로드밸런서
- 스프링 부트
- VPC
- 프로그래밍문제
- DFS
- 월미도
- 코드업
- 클라우드 컴퓨팅
- 백트래킹
- 스프링
- Apache Kafka
- Docker
- Elasticsearch
- 알고리즘
- 클라우드
- springboot
- Kafka
- 백준
- 자료구조
- Spring Data JPA
- 스프링부트
Archives
- Today
- Total
GW LABS
스프링 부트 핵심 가이드 (2) - 개발에 앞서 알면 좋은 기초 지식 본문
2.2 스프링 부트의 동작 방식
- 서블릿: 클라이언트의 요청을 처리하고 결과를 반환하는 자바 웹 프로그래밍 기술
- 서블릿 컨테이너: 서블릿 인스턴스를 생성하고 관리
- 서블릿 객체를 생성, 초기화, 호출, 종료하는 생명주기 관리
- 서블릿 객체는 싱글톤 패턴으로 관리
- 멀티 스레딩을 지원
- 스프링에서는 DispatcherServlet이 서블릿의 역할 수행
- 요청 FLOW
- DispatcherServlet으로 요청(HttpServletRequest)가 들어옴
- DispatcherServlet이 핸들러 매핑을 통해 URI에 매핑된 핸들러(Controller)를 탐색
- 핸들러 어댑터로 컨트롤러 호출
- 핸들러 어댑터에 컨트롤러 응답이 돌아오면 ModelAndView 응답을 가공해 반환
- 뷰 형식으로 리턴하는 컨트롤러를 사용할 때에는 뷰 리졸버를 통해 뷰를 받아 리턴
- RestController의 경우 뷰 리졸버를 사용하지 않고 MessageConverter를 통해 응답수행
2.3 레이어드 아키텍처
- 프레젠테이션 계층
- 클라이언트와의 접점
- 클라이언트로부터 데이터와 함께 요청을 받고 처리 결과를 응다븡로 전달
- 비즈니스 계층
- 서비스 계층
- 핵심 비즈니스 로직을 구현하는 영역
- 트랜잭션 처리/유효성 검사 등의 작업도 수행
- 데이터 접근 계층
- 영속성 계층
- 데이터베이스에 접근하는 작업 수행
2.5 REST API
- REST: 주고받는 자원에 이름을 규정하고 URI에 명시해 HTTP 메서드로 자원의 상태를 주고 받는 것
- 특징
- 유니폼 인터페이스: 일관된 인터페이스를 갖고 있음(HTTP)
- 무상태성: 서버는 클라이언트가 보낸 요청에 대해 세션이나 쿠키정보를 보관하지 않음
- 캐시 가능성: HTTP의 캐싱 기능 적용가능
- 서버-클라이언트 아키텍처: 서버와 클라이언트의 의존성을 낮춤
- 설계 규칙
- 마지막에는 ‘/’를 포함하지 않는다.
- 언더바를 사용하지 않고 하이픈을 사용한다.
- 행위가 아닌 결과를 포함한다
- URI는 소문자로 작성한다.
- 파일의 확장자는 URI에 포함시키지 않는다.
'Book-Review > Programing' 카테고리의 다른 글
스프링 부트 핵심 가이드 (4) - 데이터베이스 연동 (0) | 2022.08.13 |
---|---|
스프링 부트 핵심 가이드 (3) - API를 작성하는 다양한 방법 (0) | 2022.08.12 |
스프링 부트 핵심가이드 (1) - 스프링 부트란? (0) | 2022.08.11 |
스프링으로 하는 마이크로서비스 구축 리뷰 (2) - 스프링 부트 소개 (1) | 2022.04.29 |
스프링으로 하는 마이크로서비스 구축 리뷰 (1) - 마이크로서비스 소개 (0) | 2022.04.27 |
Comments