Spring & Springboot

[스프링/Spring] DTO는 왜 써야 하나?

1. 고민? DTO(Data Transfer Object)란 계층간 데이터 교환을 위해 사용하는 객체입니다. 아래 코드를 보면서 DTO는 왜 필요한가에 대해 생각해보겠습니다. * 실제 간단한 엔티티 설계의 일부입니다. 위 예제 코드는 Posts라는 엔티티를 생성하는 코드입니다. 맨 처음에 PostsSaveReqeustDto라는 Dto 객체를 빌더 패턴으로 생성하고 Dto를 컨트롤러에게 던져줍니다. 컨트롤러는 해당 Dto를 다시 Service에게 넘겨주고, Service 딴에서 JPA를 이용하여 생성된 객체를 저장합니다. "그런데 DTO와 Entity는 거의 똑같은 것 같은데, 왜 변환을 해서 사용해야 하며, 그렇다면 언제 DTO가 필요할까요?" 2. 언제, 왜 DTO를? 몇 가지 책과 기술 블로그를 참고..

2021.09.07 게시됨

Spring & Springboot

[스프링/Spring] 스프링 컨테이너(Spring Container)와 스프링 빈(Spring Bean)에 대해 알아보자.

📚 0. 들어가면서 이전 포스팅에서 의존관계 주입(DI)가 왜 필요한가에 대해 예제 코드를 가지고 이야기해보았습니다. 궁극적으로 DI는 객체지향 설계의 원칙인 DIP와 OCP를 지키기 위한 노력에서 탄생했다는 것을 알 수 있었습니다. 이번 시간에는 예전에 자바로 작성했던 AppConfig를 스프링을 이용해 리팩토링해보고, 이 때 사용되는 스프링 컨테이너와 빈(Bean)의 개념에 대해 공부해보려고 합니다. 💻 1. 예제 코드 우선 아래처럼 자바 기반으로 작성한 코드가 있다고 해봅시다. MemberRepository는 멤버를 저장하는 데이터베이스이고 discountPolicy는 어떤 물건을 살 때 적용되는 할인 정책입니다. 그리고 orderService를 통해 멤버는 주문을 하게 됩니다. 지금은 AppCon..

2021.08.19 게시됨

Spring & Springboot

[스프링/Spring] 객체 지향 설계와 DI(Dependency Injection)의 시작(feat. 생성자 주입)

👻 0. 들어가면서 이전 포스팅에서 스프링이 만들어지고 각광받는 이유가 "객체 지향 프로그래밍의 장점을 극대화할 수 있기 때문"이라고 했습니다. 그리고 객체 지향 프로그래밍이란 '컴포넌트를 쉽고 유연하게 변경'하는 것을 목표로 하며, 이를 위해서는 역할(인터페이스)과 구현(객체)을 분리하는 과정이 핵심이라고 설명했습니다. [스프링/Spring] 스프링(Spring)은 왜 만들어졌는가? 🏃 0. 들어가면서 정말 많은 기업에서 스프링을 쓰고 있다. 스프링이 무엇이길래, 어떤 점이 좋기에 개발 생태계에서 정말 중요한 프레임워크로 자리매김했을까. 이번 글에서는 스프링은 왜 만 studyandwrite.tistory.com 🤔 1. 객체 지향 프로그래밍을 위한 시도 자, 그렇다면 이제 "다형성을 활용해서 인터페이..

2021.08.08 게시됨