16번째 과제 [Spring] Entity, DTO, VO 의 개념과 특징 12번째 과제 Entity - 실제 DB의 테이블과 매핑되는 객체 - id를 통해 각각의 Entity를 구분한다 - 로직을 가질 수 있다 import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.GeneratedValue; impo sooz.tistory.com 이전에 Entity와 DTO, VO의 개념과 특징을 알아보았다. 배달 API 구현 프로젝트를 진행하면서 우선적으로 Food Entity 를 구현하였고 이를 DTO로 변환하려고 한다. 그리고 Entity 와 DTO 는 분리하여 사용하는 것이 좋다고 한다. 왜 인지는 아래에서 확..
13번째 과제 DDD (Domain Driven Design) 설계 개념 DDD 설계란 데이터 중심 설계에서 벗어나 도메인을 기반으로 설계하는 방식을 의미한다. 배달 서비스를 개발한다고 생각하면, 음식, 회원, 주문 등으로 비즈니스 도메인을 나누어 설계를 시작하는 것이다. 음식을 상위 도메인이라고 한다면 음식의 이름, 가격, 옵션 등은 하위 도메인으로 생각해 볼 수 있다. 이처럼 비즈니스 도메인을 먼저 생각해보고 이해를 하며 설계하는 것이 DDD 설계이다. 특징 도메인 모델과 로직에 초점을 둔다. 높은 응집도와 낮은 결합도를 지향하므로 유지보수와 확장성이 용이하다 소프트웨어의 복잡성을 최소화하는 것을 목적으로 한다 SQL 중심 설계 개념 SQL 중심 설계는 데이터베이스 구조와 데이터 흐름을 중심으로 하는..
12번째 과제 Entity - 실제 DB의 테이블과 매핑되는 객체 - id를 통해 각각의 Entity를 구분한다 - 로직을 가질 수 있다 import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String email; public User() { } public User..
11번째 과제 HTTP Method 종류 - HTTP 메서드 : 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식 1. GET - 리소스(데이터)를 조회하는 메서드 - URL(URI) 형식으로 서버측 리소스(데이터)를 요청한다. - 리소스(데이터)가 변하지 않는 멱등성이라는 개념을 지니고 있다. 2. POST - 서버에 데이터를 전송하여 리소스를 생성하는 메서드 - 데이터를 메세지 바디에 쿼리 파라미터 형식으로 전달한다. - GET과 달리 데이터가 외부로 노출되지 않아 보안상의 이점이 있다. 3. PUT - 리소스를 수정하는 메서드 (UPDATE) - 데이터를 완전히 대체하기 때문에 클라이언트는 리소스의 구체적인 위치를 지정해야한다. - GET과 같..
10번째 과제 1. 스프링 빈(Spring Bean) 등록 방법 스프링 IoC 컨테이너는 클래스에서 어노테이션을 보고 클래스의 인스턴스를 만든다. 이러한 인스턴스를 빈(Bean)이라고 한다. 스프링 빈을 등록하는 방법에는 2가지가 있다. 첫 번째, @Configuration + @Bean 조합 두 번째, @Component 스캔 두 번째 방법인 컴포넌트 스캔은 Service와 Repository 에 어노테이션으로 스프링 빈을 등록해주고 Autowired를 설정해주면, 자동으로 의존 관계를 주입해주는 방식이다. 스프링 빈으로 등록되면 DI를 요청할 수 있고, DI를 요청하는 방법은 필드 위에 @Autowired를 적어주면 된다. @Controller class Controller{ @Autowired Se..