Spring14 [Spring] DTO와 Entity의 분리. 왜? 어떻게? JPA를 사용한 프로젝트를 진행할 때, Entity를 직접 반환하지 말고 DTO로 변환하여 반환하라는 피드백을 받은 적이 있다. 당시 나는 그냥 단순히 그렇게 적용을 했고, 왜? 라는 의문을 가지지 않았었다. 오늘 포스팅의 내용은 그 왜? 어떻게? 이다. 일단 DTO가 역할이 뭔지, Entity가 역할이 뭔지 알고 들어갈 필요가 있다. DTO vs EntityDTO : 클라이언트와 서버 간 데이터 전송을 위해 설계된 객체Entity : DB에 저장되는 데이터 객체. DB와 직접적인 연결차이점은 얼추 알게 되었다.그렇다면, Entity를 직접 반환하면 어떤 문제점이 생길까? 1. 유지보수, 성능 이슈프로젝트 API 스펙이 변경되거나, 엔티티 필드명 변경 등 요구사항이 변경된다면 추가 작업이 요구된다.효.. 2024. 11. 7. [Spring] DTO vs Entity vs VO 오늘은 DTO와 Entity, 그리고 유사 개념이지만 다른 VO의 개념들과 차이에 대해서 정리해보았다.잘 구분해서 사용하려고는 하지만, 사실 정확한 개념을 설명하라고 하면 자신있게 대답하지 못했다.이 포스팅을 바탕으로 확실하게 머릿속에 정리해야겠다.DTODTO는 Data Transfer Object 의 약자이며, 데이터 전송 객체라는 의미를 가지고 있다.데이터 교환만을 위해 사용하는 객체이며, 비즈니스 로직을 갖지 않고, getter/setter 메소드만 갖는다.Controller와 같은 클라이언트와 직접 마주하는 계층에서 DTO를 사용하여 데이터를 요청 / 응답한다.setter 를 가지는 경우 가변 객체로, 가지지 않는다면 불변 객체로 사용할 수 있다.불변 객체는 setter대신 생성자를 이용하여 초기.. 2024. 11. 7. [Spring] DAO (MyBatis) vs Repository (JPA) 이전에 진행했던 spring 프로젝트 중에, DAO - MyBatis 프로젝트 하나 있다.요즘 학습하면서 JPA를 많이 사용하는데, DAO랑 분명히 비슷한 효과를 내는 것을 느꼈다.구글링을 하는데 가려운 부분을 제대로 긁지 못한 것 같아서, 블로그 포스팅들과 AI를 참고하여 한번 포스팅 해봐야겠다. DAO vs RepositorySpring 에서 DAO와 Repository는 데이터 접근을 담당한다. 하지만 사용하는 방식에는 약간의 차이점이 있다.일단 이 둘의 개념부터 알아보자. 개념DAO역할 : 데이터베이스 접근 로직을 캡슐화하고, CRUD와 같은 데이터 작업을 수행하는 인터페이스를 제공한다.사용방식 : 보통 JDBC 코드와 함께 사용되며, 명시적인 SQL 쿼리를 사용하는 경우가 많다. Mybatis와.. 2024. 11. 6. [Spring] Spring 3계층 구조, 3-tier-Architecture Spring 3 계층Spring 3계층 구조는 Spring MVC 패턴에서 가장 대중적으로 활용되는 역할 분리 방법이다.아래와 같이 3-tier 방식으로 구성한다.Presentation Layer표현 계층, 화면 계층이라고도 한다. 이 계층은 웹에서 요청이 들어오는 것을 받아주는 계층이다.ㅇㅇController라는 Class를 만들어서 사용한다.@RestController@RequestMapping("/api/users")public class UserController{ @Autowired private UserService userService; @GetMapping("/{id}") public User getUser(@PathVariable ("id") Long id){ .. 2024. 11. 6. 이전 1 2 3 4 다음