# DTO, Entity 변환은 어느 계층에서 일어나야 할까? 2023.11.16 - [Framework/Spring] - [스진초5기/Spring] DTO, Entity 변환은 어느 계층에서 일어나야할까? # DDD 설계란? 2023.11.10 - [Knowledge/개발지식] - [스진초 5기/개발지식] DDD 설계와 SQL 중심 설계
2023.11.08 - [Framework/Spring] - [스진초5기/Spring] DTO, VO, Entity [스진초5기/Spring] DTO, VO, Entity 스프링 MVC 기반 프로젝트를 하다 보면 DTO, VO, Entity 객체를 만들어서 사용한다. 각 클래스의 멤버변수들이 비슷한 값으로 지정되기 때문에 혼용하여 많이 사용하게 된다. 특히 DTO와 VO는 동일한 jh7722.tistory.com 이전 포스팅에서 DTO, Entity, VO과 각각 어떤 역할을 수행하고 어떤 차이를 있는지 정리했다. 각 역할에 따라 DTO와 Entity는 특정 순간에 변환돼서 사용되어야 한다. 이런 변환작업은 어느 계층에서 처리해 주는 게 가장 좋은 방법일까? DTO, Entity 변환은 어느 계층에서 일..
스프링 MVC 기반 프로젝트를 하다 보면 DTO, VO, Entity 객체를 만들어서 사용한다. 각 클래스의 멤버변수들이 비슷한 값으로 지정되기 때문에 혼용하여 많이 사용하게 된다. 특히 DTO와 VO는 동일한 개념으로 사용되는 경우도 많아 이참에 각각의 클래스마다 정의와 특징을 살펴보자. DTO(Data Transfer Object)? DTO는 데이터를 전달하기 위한 객체라고 정의된다. 말 그대로 계층 간의 데이터를 주고받을 때 사용되는 객체라고 생각하면 된다. MVC 관점에서 본다면 View와 Controller 사이, Controller와 Service 사이 등 계층 간 데이터를 주고받을 때 사용된다. DTO의 특징으로는 getter/setter 메소드를 포함하며, 이 외의 비즈니스 로직은 포함하지..
HTTP란? HTTP는 HyperText Transfer Protocol의 약자로 웹 상에서 정보를 전송하기 위한 통신 프로토콜로써 HTML과 같은 문서를 전송하는 것에 사용된다. 클라이언트가 HTTP requset를 서버에 보내면 서버는 HTTP response를 클라이언트에 보내는 구조이다. request message는 start line(method, path, HTTP version), headers, body로 구성되어 있고 response message는 status line(HTTP version, status code, status message), headers, body로 이루어져 있다. HTTP는 서버에 연결 후 요청에 응답을 받으면 끊어버리는 Connectionless 특성을 갖는..
스프링 3 계층을 클래스 화할 때 @Controller, @Repository, @Service, @Component... 등 어노테이션을 선언하여 사용하는데 어노테이션을 지정하는 것만으로도 각 계층에서 서로를 DI 해서 사용할 수 있다. 이 구조를 이해하기 위해선 우선 Spring Bean에 대해 이해할 필요가 있다. Spring Bean? 스프링에서는 DI 컨테이너(혹은 스프링 IoC 컨테이너)에서 관리되는 POJO(Plain Old Java Object)를 Bean이라고 부른다. 이러한 Bean들은 스프링에 의해 생성되고, 라이프 사이클을 수행하고, 의존성 주입을 수행한다. 즉, Bean들은 스프링을 구성하는 중요한 역할을 수행한다. 스프링에서는 이러한 Bean들을 XML, @Bean, @Compo..
저번 과제에서는 레이어드 아키텍처상에서 Controller의 역할에 대해 정리하였는데 이번엔 직접 구현하면서 Controller가 어떻게 사용되는지 알아보도록 하자. 스프링 부트에서는 Controller를 선언하는 어노테이션은 두 가지이다. @Controller @RestController @Controller public class TestController { @GetMapping("/test") public String getTest(){ return "TEST"; } } @RestController public class TestController { @GetMapping("/test") public String getTest(){ return "TEST"; } } 위 코드를 실행시켜 보면 @Co..
2023.10.05 - [Framework/Spring] - [Spring] 레이어드 아키텍처와 스프링의 레이어드 아키텍처 [Spring] 레이어드 아키텍처와 스프링의 레이어드 아키텍처 [스프링부트 핵심 가이드] 책을 기준으로 작성하였습니다. 🍀 레이어드 아키텍처란 애플리케이션의 컴포넌트를 유사 관심사를 기준으로 레이어로 묶어 수평적으로 구성한 구조를 의미한다. 레 jh7722.tistory.com 스프링의 레이어드 아키텍처를 정리한 적이 있는데 이번에는 각 영역에서 중요역할을 담당하는 Controller, Service, Repository에 대해 자세히 알아보자. Controller 컨트롤러는 스프링 레이어드 아키택쳐 중 프레젠테이션 레이어의 포함되어 있다. 클라이언트 요청이 서버 측에 전달될 때 가..
2주 차 실시간 세션 및 과제에 대한 키워드 정리 # 오버라이딩할때 꼭 @Override 어노테이션을 사용하여야 할까? + 어노티이션 역할 내용 보강 2023.10.23 - [Language/Java] - [스진초5기/Java] 오버라이딩을 구현할 때 꼭 @Override가 필요할까? [+어노테이션의 역할] # 오버라이딩과 오버로딩 2023.10.27 - [Language/Java] - [스진초5기/Java] Overriding과 Overloading # Rest API란 2023.10.05 - [Framework/Spring] - [Spring] REST API 란? # DI, IoC 란 2023.10.30 - [Framework/Spring] - [스진초5기/Spring] IoC, DI 정리
이 코드에서 @Override가 있으면 문제가 없을까? class Parent { public void hello(String name) { System.out.println("안녕하세요, 저는 " + name + "입니다."); } } class Child extends Parent{ // @Override가 있고 없고 차이가 없을까? public void hello() { System.out.println("안녕!"); } } 위 코드는 @Override 어노테이션을 사용하지 않으면 동작이 되고, 사용하면 예외가 발생한다. 예외가 발생한다는 것은 오버라이딩이 아니라는 의미이다. 오버라이딩의 조건은 다음과 같다. 부모 클래스의 메서드와 메서드 이름이 동일해야 한다. 매개변수의 타입, 개수, 순서가 일치..
1주 차 실시간 세션 및 과제에 대한 키워드 정리 # 포트폴리오 3가지 (깃허브, 블로그, PPT(노션)) 준비하기 - 지속적인 업데이트가 필요 - 노션으로 만든 포트폴리오가 있긴 한대 업데이트를 거의 안 해서 한번 정리가 필요 # 인터프린터와 컴파일러 그리고 Java 2023.10.23 - [Language/Java] - [Java] 인터프리터와 컴파일러 그리고 Java # 인터넷과 웹 2023.10.23 - [Knowledge/네트워크] - [네트워크] 인터넷과 웹의 관계 # 객체지향의 4가지 특징 2023.10.19 - [Language/Java] - [스진초5기/Java] 객체지향의 4가지 특징 # 인터페이스와 객체지향의 관계 2023.10.20 - [Language/Java] - [스친초5기/J..