들어가며
스프링을 배우려고 막연하게 학원 제공 강의만 무지성으로 듣다보니 내 것을 한 번 만들어 보고싶다는 생각이 들었다. 그래서 주제도 정해봤고 했으나 ERD에서 1차적으로 막혔고, 2차적으로 폴더 구조를 그러면 어떻게 짜야하지...? 라는 생각이 들어 그간 따라 만들었던 것들을 보았는데 dto, dao, vo 이런 폴더가 꼭 있었다.
너네 뭔데?
DTO
DTO는 Data Transfer Object의 줄임말로 말 그대로 데이터 전송 객체를 나타내준다.
- 주로 데이터를 한 곳에서 다른 곳으로 전송하는 데 사용된다.
- 비즈니스 계층과 프레젠테이션 계층 사이에서 데이터를 전달하기 위해 사용된다.
- 데이터를 담는 용도로 사용되며, 주로 데이터베이스에서 가져온 데이터를 비즈니스 로직에서 사용하기 쉽게 변환하기 위해 사용된다.
DAO
DAO는 Data Access Object의 줄임말로 말 그대로 데이터 액세스 객체를 나타내준다.
- 주로 데이터베이스와의 상호 작용을 담당하는 객체이다.
- 데이터베이스와의 CRUD (Create, Read, Update, Delete) 작업을 수행하는 메서드를 제공한다.
- 비즈니스 로직에서 데이터베이스와의 상호 작용을 캡슐화하고, 데이터베이스에 대한 접근을 추상화하는 역할을 한다.
VO
VO는 Value Object의 줄임말로 값 객체를 나타낸다.
- 비즈니스 로직에서 사용되는 데이터를 나타낸다.
- 불변성 (Immutable)을 가지며, 주로 데이터의 일부 또는 전체를 캡슐화하는 데 사용된다.
- 주로 데이터베이스에서 가져온 데이터를 비즈니스 로직에서 사용하기 쉽게 변환하는 데 사용된다.
정리
간단하게 보면, DTO는 데이터 전송에 사용되는 객체, DAO는 데이터베이스와의 상호 작용에 사용되는 객체, VO는 비즈니스 로직에서 사용되는 값 객체로 보면 된다. 이들은 소프트웨어 개발에서 다른 목저으로 사용되며, 각각의 역할과 책임이 주어져 있다. 이 친구들을 폴더 이름으로 짓는 이유는 코드의 구조가 명확해지고 관련된 클래스들이 한 곳에 모여 있어 가독성이 향상되며 개발자들 사이에서 협업 단게에서 일관성을 유지할 수 있어 협업과 유지보수에 굉장히 도움이 많이 되기 때문에 이렇게 짓는다고 한다.
공부를 하다 궁금한게 있으면 진도가 조금 밀리더라도 찾아보고 이해를 하면서 했어야 했는데, 너무 진도 쫓아가기 바쁜게 아니었나 싶다. 물론 수료 기준을 맞추려면 어쩔 수 없긴한데 돌아보니 모래성을 쌓은 것 같다. 나 어떻게 하냐...
'Framework > Spring' 카테고리의 다른 글
ERD 그게 뭔데 날 힘들게 해 (1) | 2024.01.13 |
---|---|
스프링 프레임워크와 스프링 부트 (0) | 2024.01.03 |
VScode와 intelliJ 사용할 때 로그 처리 방식이 왜 다를까? (0) | 2023.12.30 |
Gradle이 Maven 대신에 많이 사용되는 이유는 뭘까? (0) | 2023.12.21 |
상속과 인터페이스는 언제 써야될까...? (0) | 2023.12.08 |
쓰임 있는 사람이 되기 위해 노력 중입니다.