본문 바로가기
카테고리 없음

스프링 공부1

by 흰색남자 2022. 5. 22.

DTO(Data Transfer Object) = 데이터를 전송하게 되면, DTO에 담아서 전송함. 자바Beans를 의미하고,

Getter, Setter메소드만 가지고 있다. 각 계층 별 데이터를 자바 Beans = 자바로 작성된 컴포넌트를 지칭함. DTO = Beans // VO 라고도 표현한다고함.

 

DAO(Data Access Object) = 데이터에 접근하기 위해 DB와 상호작용함. Sql, jpa, querydsl

Dbcrud 연산을 의미함. >> 가지고 온 데이터를 돈이라 가정하면, dto는 지갑이라 표현해도 괜찮을듯

 

Entity = 실제 DB1:1 매핑되는 클래스. 스프링 애플리케이션의 비즈니스 로직은 여기에 들어가지 않음.

 

500 100. 105010005000원 등 실제 DB에 저장되는 Column을 표현함.

 

Service = DTO의 데이터를 받아서 적절하게 변환을 해서 보여줌. 지갑에서 돈을 꺼내 전달해줌.

 

핸들러 = 해당 요청에 맞는 컨트롤러를 찾아서 실행함.

 

 

 

@lombok >> getter,setter

@builder >> 생성자에 데이터를 넣는 것이 아닌, 메소드를 생성하여 필드를 선택하여 데이터를 삽입함.

@Data >> getter,, setter, tostring 등

@tostring >> int 였던 데이터를 자동으로 string로 변환하여 넣어줌.

@id > db pk값을 의미

 

@RequestMapping >> 모든 요청을 포함하고, 이 안에서 세부적으로 나눔. get...post..patch...delete..등

@getmapping >> get 요청 방식의 url이 들어왔을 경우 사용.

@postmapping >> post 요청 방식의 url이 들어왔을 경우 사용.

 

@requireargsconstructor >> 의존성(데이터) 주입의 방법 중 하나. 객체의 불변성을 보장함.

@PathVariable > url에 변수를 받아서 가지고옴.  // baseurl?변수="~~~"

@RequestBody를 통해서 자바객체로 변환을 하는데, 이때 HttpMessageConverter를 사용

@ResponseBody가 붙은 파라미터에는 HTTP 요청의 본문 body 부분이 그대로 전달

 

@query : 개발자가 db가 아닌, entity에 대해 query를 요청할 때 사용함.

 

 

 

스프링의 실행 순서.

1. 클라이언트가 톰캣was에 요청을함.

2. DispatcherServlet이 web.xml에 등록된 요청을 받아들임. > 톰캣9버전부터 servlet 4.0을 지원해서 web.xml이 없다고함.

3.  핸들러 매핑을 통해 해당 요청에 맞는 컨트롤러를 찾아 DispatcherServlet에 반환함.

 

Controller > Service > DAO > DB > DAO > Service > Controller 요정도?

// 이 과정 사이의 모든 데이터의 이동은 DTO(Beans)를 활용함.