WTIL

WIL-5 5주차 WIL

다오__ 2023. 6. 18. 22:58

5주차는 스프링 입문 주차였다. 내 기준  강의를 학습하는데 시간이 많이 부족하게 느껴졌다 그래서 배운 내용들을 정리하기 위한 글이 필요했다.

 

알게 된 내용:

MVC 패턴 : 소프트웨어 개발에서 Model View Controller로 분리하여 개발의 용이성 및 유지보수성을 향상시키는 패턴이다.

 

웹 서버와 WAS : 클라이언트에서 정적인 웹페이지의 요청이 오면 웹서버가 이를 처리하고, 동적인 웹페이지 요청이 온다면 웹서버가 WAS에게 요청을 넘겨준다. WAS는 요청에 맞는 서블릿을 찾아 이를 실행(doGet, doPost)하고 그 결과를 모델에 담아 리턴할 수 있다.

 

3계층 구조 : Controller, Service, Repository로 계층을 나누어 dto로 데이터는 해당 계층들을 이동하며 ,

Controller계층은 디스패처서블릿의 핸들러매핑으로 요청한 url과의 매핑된 메서드를 실행하여 비즈니스 로직(Service)계층을 호출한다.

 

Service계층은 비즈니스 로직을 담당한다. 데이터의 가공, 유효성 검사 트랜잭션 처리등의 작업을 수행한다. Repository계층과의 상호작용을 수행한다.

 

Repository계층은 데이터베이스와의 연동을 주로 담당한다. 데이터의 영속성을 관리하며 데이터베이스와의 CRUD작업을 수행한다.

3계층구조는 역할을 분리하여 유지보수성을 높였다.

 

entity : Repository계층에서 데이터베이스와 상호작용할 때 데이터베이스의 테이블에 매핑되는 자바 클래스이다.

 

jpa : 자바 표준 ORM(Object-Relational-Mapping)이며 hibernate를 구현체로 많이 사용된다. 데이터베이스에 쿼리를 직접 작성하지 않아도 CRUD등의 기능을 수행할 수 있다.

 

영속성 컨택스트 : 엔티티매니저가 엔티티들의 상태(생명주기)들을 관리하는 공간으로 엔티티의 상태변화를 감지하며 데이터베이스와의 동기화담당한다.