<aside> 🧑🏻‍🏫 학습목표

</aside>

🤔 api에 복잡한 구현이 추가된다면?

아래와 같은 요구사항이 있는 상품 등록 api를 구현한다고 합시다.

상품 이름과 가격을 Body에 담아서 Post 요청을 보내면 랜덤으로 id값을 추가해서 데이터베이스에 설계해둔 Product 테이블에 데이터가 추가되는 기능이 필요합니다.

{
	name: 키보드
	price: 60,000
}
Product {
	id: 13413
	name: 키보드
	price: 60,000
}
  1. [POST] api/products 로 들어온 요청 mapping
  2. 요청에서 받은 값에 랜덤 id값을 추가
  3. 데이터 실제 저장소(데이터베이스)에 저장
  4. 상품 저장이 정상적으로 완료됐음을 응답으로 알려주기

🌗 Controller, Service, Repository 역할 분리하기

Untitled

⚠️ 계층의 분리가 필요한 이유

스프링은 기본적으로 기술의 변화가 잦은 웹 계층(Presentation Layer)과 여타 계층을 깔끔하게 분리해서 개발하는 아키텍처 모델을 지지한다. 그 덕분에 하나의 계층을 변경하더라도 다른 계층에 문제가 없게 만들 수 있다.

한 곳에서 위의 모든 작업이 한꺼번에 이루어진다면