본문 바로가기

Spring

스프링 부트 프로젝트 (Architecture & TDD & REST API)

반응형

격언 기억

"뭔가 잘못했겠지"

Domain -> 전문 지식 / 나의 생각.

사용자 스토리 -> 사용자 입장에서 기능을 서술

고객 -> 가게 목록을 볼 수 있고, 가게의 메뉴를 볼 수 있음. 
           좋은 가게인지 평점을 확인 할 수 있음. 
           가게 목록을 분류에 따라 볼 수 있음.
           즐겨찾기 추가가능.
           인원 예약 가능

가게 -> 예약 확인 가능
           예약 요청에 응답가능

관리자 -> 고객이 서비스 쓸 수 있도록 가게 정보 등록가능

기타등등..


도메인 모델링 ->

Restaurant
Menu Item (Food & Beverage)
User
Favoite - 즐겨 찾기
Review
Reservation

시스템 아키텍처 ->

프로그램은 소프트 웨어 해당
프로그램을 구동할 하드웨어도 포함해야 됨.

프로그램 하드웨어 인프라 종합 -> 시스템
시스템을 어떻게 다룰 것인가 시스템 아키텍쳐

홈페이지를 통해 제공할 것이므로 web 사용
모바일 환경에서도 쓰길 원함. Mobile Application

-> 기능은 공통 
Front -end 다른 부분
Back - end 공통인 부분

Multi -tier Architecture 
여러개의 계층으로 나눠서 시스템 구성

가장 흔한것은 3 -tier

-Presentation (사용자와 소통하는 부분) => front -end / HTML,CSS,JS
-Business (사용자와 소통한 결과 , 요청을 처리) back- end / REST API
-Data Source (처리한 것들이 저장되는 곳) data base / DBMS



Business는 또다시 Layered Architecture로 구분
-UI Layer
-Application Layer
-Domain Layer
-Infrastructure Layer

위의 Layer는 밑의 Layer를 사용 밑은 위를 사용 x





Spring Initializr -> intelliJ에서 지원

TDD -> 테스트(목표) 주도 개발
-목표를 달성했는지 아닌지 알 수 있음.
Test를 먼저 작성.

TDD cycle

Red
-> 실패

Green
-> 로직 완성

Refactoring -> 작동하는 코드를 로직은 그대로 가고 코드만 깔끔하게 

다양한 환경 -> 서로 다른 Front end


REST API
-리소스(자원)을 처리하는 방식

CRUD로 구성.
Http 표준으로 주어진 4가지 method와 연결
POST GET PUT/PATCH DELET

URI / URL 을 사용해서 리소스 지정

리소스
-Collection

.Read(List)
.Create


-Member

.Read(Detail)
.Update
.Delete

레스토랑 collection

http://host/restaurants

레스토랑 Member

http://host/restaurants/{id}


JSON
-자바 스크립트에서 Object표현 할때 쓰는 방식
{
  "id" : 2019,
   "name" : "식당",
   "address": "골목"
}


[
  {
  "id" : 2019,
   "name" : "식당",
   "address": "골목"
   },
   {
  "id" : 2019,
   "name" : "식당",
   "address": "골목"
   }
]

반응형

'Spring' 카테고리의 다른 글

eclipse 스프링 플러그인 설치  (0) 2019.12.17
프레임 워크 개념  (0) 2019.12.17
orderInfo 구현  (0) 2019.11.18
페이징 처리  (0) 2019.11.18
Controller 추상화  (0) 2019.11.17