[Spring] DAO, DTO, VO란?

HyunDong Lee·2022년 6월 2일
0

Spring

목록 보기
1/3
post-thumbnail

나는 여태 공식문서랑 유튜브로만 python 프레임워크를 공부했었다. "취업을 하면 바로 강의 보면서 시작해야지"라는 생각으로 약 4개월을 보냈다. 나는 많은 기업 공고문에 spring/java라고 적혀있었던 것을 묵인했었다.. 왜그랬는지 참..

무튼 책을 사고 이제 강의도 사서 볼 계획인데 너무 재밌는걸?.. 책을 사서 보니까 이해가 쏙쏙 되는 느낌? 진작에 이렇게 했으면 아마 이론 1번은 끝냈을 것 같지만, 절대 늦었다고 생각하지 않으려고 한다.

그래도 다른 fastapi나 django를 사용해봐서 그런지 대략 연결이 되는 느낌이 들어서 다행이다! 그래도 처음 보는 내용과 생소한 내용과 지속적으로 등장하는 내용은 따로 정리를 해보려고 한다. 물론 이해하기 쉽게!

DAO

Data Access Object(DAO)는 해석한 것과 같이 데이터베이스의 data에 접근하기 위한 객체이다. 뭔가 getter와 비슷한 목적을 가지는 것 같다고 생각한다.(개인적인 의견이므로 검증되지 않음.)
데이터베이스에 접근하기 위한 로직과 비즈니스 로직을 분리하기 위해 사용한다.

DTO

Data Transfer Object는 계층 간 데이터 교환을 하기 위해 사용하는 계층이다. 처음에 나는 T가 Transaction인줄 알았다. 순수한 객체 Getter와 Setter만 가진 클래스이다. 물론 lombok을 통해 코드의 재작성이 불필요해졌지만 정확히 어떤식으로 DTO를 작성하는지는 앞으로 더 지켜봐야 할 것 같다.
django의 serializer와 약간 비슷한 역할을 하는 것 같다고 생각했다. serializer는 말그대로 serialize를 해준다. 직렬화란? 데이터의 직렬화라고 생각하면 쉬울 것 같다. db data를 json형태로 바꿔주는?

VO

Value Object는 값을 위해 쓰인다. read-only만 가능한 특징을 갖고 dto와는 다르게 값을 update를 시킬 수 없다.

이정도로 충분하다! 앞으로 lombok, gradle, jpa 등등 각각의 역할과 기능에 대해서도 정리를 해볼 계획이다. 현재 읽고 있는 책을 다 읽으면 아마 스프링 레시피와 강의를 통해 나의 수준을 고도화 시킬 계획이다.!

여기까지! 빠오!🥟

0개의 댓글