부트캠프수업정리

12주차 정리(3/21~3/25)

파뱁 2022. 3. 30. 22:26
728x90

세상에 전날에 글을 안올렸다니

내 알흠다운 달력에 구멍이 뚫려서 너무.. 슬프군요,,

지금 중간 프로젝트 기간이라 정신이 하나도 없었는지 포스팅도 까먹고... 나는 멍청이


중간 프로젝트 직전주였던 12주차에는 스프링을 백엔드로 해서 react로 만든 프론트와 연결하는 작업을 진행했다.

Entity, DTO, Controller, Service, Repository를 만들어서 어디에 어떤 목적의 코드가 들어가는 지를 실습해보고,

더 좋은 코드를 만들기 위해서 어떻게 하는 지도 살펴보았다.

 

일단 Entity와 DTO를 공부했다.

둘은 데이터 객체라는 공통점이 있지만, 미묘하게 다르다.

 

Entity는 DB와 소통하기 위한 객체인 만큼 DB에 저장될 데이터를 기준으로 작성하고, 타입이나 조건들도 달라질 수 있다.

DTO는 코드 내부에서 해당 데이터를 사용하기 위해서 사용하는 객체인데, DB에는 있지만 서비스에서 그 값을 보여주거나 연산할 필요가 없는 경우에는 Entity에는 그 값을 담지만 DTO에는 담지 않는다.

 

예를 들어 조회수를 카운트해서 조회수 기준 상위 3개의 게시물을 불러오는 기능 요구가 있다고 가정하자.

조회수 자체를 화면에 보여줄 필요없다고 하면, 조회수를 저장하는 변수는 Entity에는 필요하지만 DTO에는 필요가 없게 된다. 

 

이때문에 요구사항을 명확하게 하고 Entity와 DTO를 작성할 필요가 있다.

 

또한 Service 같은 경우는 결합도를 낮추기 위해 인터페이스를 이용했다.

Service 인터페이스를 만들고 이에 대한 코드를 직접적으로 작성한 Service Impl 클래스를 만들어 코드를 작성했다.

이렇게 진행하니 Controller에서는 Service의 내용 즉, 비즈니스 로직에 바로 영향을 받지 않아서 코드가 안정화 되었다.

 


이미 이 글을 쓰고 있는 시점은 중간 프로젝트를 시작한 시점이다.

예제를 통해 공부한 것을 실전에 적용해보니까 더욱 이해가 명확했다.

 

13주차에는 수업은 없고 프로젝트만 했기 때문에 이에대한 정리만 올릴 생각이다.

 

요 몇일동안 잠을 제대로 못자서 너무 피곤하다.

돌아오는 일요일에는 좀 쉬면서 다음 공부 내용을 위해 refresh 하는 시간을 가져야 겠다.... 

728x90
반응형

'부트캠프수업정리' 카테고리의 다른 글

14주차 정리(4/4~4/8)  (0) 2022.04.12
13주차 정리(3/28~4/1)  (0) 2022.04.01
11주차 정리(3/14~18)  (0) 2022.03.22
10주차 정리(3/7~8, 3/10~11)  (0) 2022.03.16
9주차 정리(3/2~3/4)  (0) 2022.03.08