-
[TIL] Entity, DTO, 영속성 컨텍스트TIL(Today I Learned) 2022. 12. 12. 22:36
*20221212의 회고
오늘도 오전엔 알고리즘 문제풀이로 하루를 시작했다. 다른 스터디원 분들은 K의 개수 문제를 문자열로 변환하는 방식으로 문제를 해결하였는데, 나는 정수 연산을 이용하여 문제를 해결하였다. 나도 처음에는 정수를 문자열로 바꿔서 하는 방법을 처음으로 생각했었는데, 저번에 연희 튜터님께서 정수 연산으로 문제를 푸시는 것을 보고 정수 연산 쪽으로 생각을 해봤다. 그렇게 해서 문제를 풀었는데, 그랬더니 실행시간 면에서 확연이 차이가 났다. 이래서 알고리즘 공부를 하나 보다...! 다른 분들께 칭찬을 받아서 기분이 좋았다. 그리고 남은 시간에는 스프링 부트 강의를 들었다.
<오늘 해결한 프로그래머스 코딩테스트 문제>
https://school.programmers.co.kr/learn/courses/30/lessons/120907 (OX 퀴즈)
https://school.programmers.co.kr/learn/courses/30/lessons/120887 (K의 개수)
스프링 부트 강의를 들으면서 배운 내용을 정리하자면 이렇다.
- Entity
- 실제 DB 테이블과 매핑되는 핵심 클래스로, DB의 테이블에 존재하는 컬럼들을 필드로 갖는 객체
- DB의 테이블과 1:1로 매핑되며, 테이블이 가지지 않는 컬럼을 필드로 가져서는 안됨
- Entity 클래스는 DB 영속성의 목적으로 사용되는 객체이며, 때문에 요청(Request)이나 응답(Response) 값을 전달하는 클래스로 사용하는 것은 좋지 않음( => DTO 사용!)
- DTO(Data Transfer Object)
- 계층간 데이터 교환이 이루어질 수 있도록 하는 객체
- JSON Serialization과 같은 직렬화에도 사용되는 객체
- Controller 같은 클라이언트 단과 직접 마주하는 계층에서는 Entity 대신 DTO를 사용해서 데이터를 교환
- 주로 View와 Controller 사이에서 데이터를 주고 받을 때 활용성이 높음
- DTO는 getter, setter 메서드를 포함하며, 이 외의 비즈니스 로직은 포함하지 않음
- setter 메서드를 가지는 경우 가변 객체로 활용 가능
- 영속성 컨텍스트
- 엔티티를 영구저장하는 환경
- 어플리케이션이 DB에서 꺼내온 데이터 객체를 보관하는 역할을 함
- 엔티티 매니저를 통해 엔티티를 조회하거나 저장할 때 엔티티를 보관하고 관리함
저번주 보다는 확실히 공부하고자 하는 의지가 많이 올랐다. 그런데 이번주는 과제가 없을 줄 알았는데 과제가 있다고 한다...! ㅋㅋㅎㅎㅎ 조급해지지 않게 그냥 평소대로 지식을 채워넣는 것에 집중하는 한주를 보내도록 하자!! 오늘도 고생했고 내일도 화이팅 !!!
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL] Spring과 Lombok의 Annotation (0) 2022.12.14 [TIL] 안전지대 찾기 알고리즘 (0) 2022.12.13 [TIL] 코딩테스트 문제풀이 스터디 (0) 2022.12.09 [TIL] SpringBoot로 블로그 백앤드 서버 만들기 (0) 2022.12.08 [TIL] Springboot, JPA로 블로그 만들기 (0) 2022.12.07 - Entity