목록Spring (9)
To Dare Is To Do!
SOLID란? 좋은 객체 지향 설계를 위해 지켜야 할 5가지 원칙을 의미한다. SRP : 단일 책임 원칙 (Single Responsibility Principle) OCP : 개방-폐쇄 원칙 (Open/Closed Principle LSP : 리스코프 치환 원칙 (Liskov Substitution Principle) ISP : 인터페이스 분리 원칙 (Interface Segregation Principle) DIP : 의존관계 역전 원칙 (Dependency Inversion Principle) SRP - 단일 책임 원칙 한 클래스(객체)는 하나의 책임(기능)만을 가져야 하는 것을 의미한다. 하나의 책임이라는 것에 대한 기준은 책임의 크기 혹은 문맥과 상황에 따라 다르기 때문에 모호할 수 있다. 따라..
지난번 DTO와 Entity에 대해서 작성한 글에서 DTO는 레이어 간 객체 전송을 Entity는 DB 테이블 매핑을 위한 객체라고 확인한 적이 있다. https://whitehartlane.tistory.com/11 DTO vs VO vs Entity 과거 프로젝트를 진행할 때 어디서는 domain, 또 다른 곳에서는 DTO 등 비슷한 개념과 역할을 가지는 것 같은데 정확히 어떤 차이가 있는지 궁금했던 경험이 있다. 이번 기회에 DTO와 VO 그리고 Entity whitehartlane.tistory.com 그렇다면 클라이언트에서 데이터를 DTO에 받아 전송하다 DB에 가기 전에는 Entity로 변환해야 하는데 어디서 해야 하는 것일까? 또 어떠한 방법으로 변환해 주어야 하는 것일까? 이번 글을 쓰면서..
과거 프로젝트를 진행할 때 어디서는 domain, 또 다른 곳에서는 DTO 등 비슷한 개념과 역할을 가지는 것 같은데 정확히 어떤 차이가 있는지 궁금했던 경험이 있다. 이번 기회에 DTO와 VO 그리고 Entity의 개념에 대해서 정리해 보고 해당 개념을 적절한 상황에 사용할 수 있도록 하자! DTO Data Transfer Object의 약자인 DTO는 계층(Controller - Service - Repository)간 데이터 전달을 위해 사용하는 객체이다. 데이터를 주고 받을 때 데이터를 담아서 교환할 수 있도록 하는 바구니라고 하면 이해하기 쉬우며 이 바구니는 주로 View와 Controller 사이에서 많이 사용되곤 한다. DTO는 데이터 교환만을 위한 객체이기 때문에 따로 비즈니스 로직을 갖지..
HTTP란? HyperText Transfer Protocol의 약자인 HTTP는 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜을 의미한다. 클라이언트와 서버 간의 통신을 관리하고 웹 페이지, 이미지, 동영상, 문서 등의 리소스를 전송하고 검색할 때 사용된다. ※ 리소스란 URL를 검색해서 받아온 결과로서 텍스트, HTML, 이미지 등 그 외 서버로부터 전달받은 데이터를 의미한다. HTTP 메서드 - HTTP 메서드란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식 = 서버에 주어진 리소스에 수행하길 원하는 행동, 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법 - HTTP 동사라고 부르기도 함 - 클라이언트가 ..
지난번 Controller만을 구현하여 위의 결과를 출력해 보고 Controller 속에서 활용된 어노테이션들을 살펴보았다. 이번에는 Controller 뿐만이 아니라 Service, Repository 등 클라이언트와 데이터베이스 사이의 과정을 모두 구현하고 각 계층이 스프링으로부터 어떻게 의존성이 주입되는지 확인해 보려고 한다. 먼저 의존성, 즉 객체가 주입되기 위해서는 Spring 컨테이너의 관리를 받는 객체(스프링 빈)가 되어야 하며 스프링 빈으로 등록하는 방법에는 @Component와 @Configuration + @Bean 조합이 있다. 뒤의 예시는 @Component를 활용한 예시이다. @Component TestController의 @Controller 어노테이션을 뜯어보면 이 어노테이션이..