일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- baekjoon
- Java8
- 자료구조
- 모던자바
- 네트워크
- DFS
- 그래프
- 프로그래머스
- 스프링
- back-end
- Spring
- 자바
- 알고리즘
- TDD
- DP
- Brute-force
- 프로젝트
- lambda
- 백트래킹
- 코틀린
- algorithm
- backtracking
- programmers
- 백준
- LEVEL2
- kotlin
- java
- 운영체제
- OS
- BFS
- Today
- Total
요깨비's LAB
[Spring Boot, Back-End] 1. 어떻게 만들 것인가 본문
본 강의는 아샬님의 강의를 정리한 것입니다.
1. Domain Modeling
Restaurant(가게 이름, 주소, 취급하는 음식 종류)
Menu Item(음식/음료 리스트)
User(고객, 관리자, 사장님)
Favorite(즐겨찾기 정보)
Review(리뷰 정보)
Reservation(예약 정보)
2. System Architecture
서비스는 프로그램으로만 이루어진 것이 아니죠.
(소프트웨어 + 하드웨어 + 인프라) = 시스템이라고 부름
이러한 시스템이 어떻게 구성되는 지를 다루는 것이 System Architecture라고 합니다.
System Architecture를 올바르게 구성하기 위해 제약조건을 먼저 생각해 보아야 합니다.
2-1) 제약 조건
이 서비스는 홈페이지를 통해 제공될 것이기 때문에 웹 기술을 사용해야 하며,
모바일 환경에서도 쓰기를 원합니다.
=> Web과 Mobile을 모두 지원해야함!
여기에서 Web과 Mobile은 분명히 다른 부분이 존재합니다.
하나는 웹 브라우저로 접근한다는것. 다른 하나는 설치형 앱을 통해 접근합니다.
공통 부분도 존재하는데요.
모든 기능은 같구요, 이런 공통 부분을 두 서비스가 같이 쓸 수 있도록 하는게 좋습니다.
그래서
서로 다른 부분들을 Front-End
공통인 부분을 Back-End라고 나눌 수 있습니다.
이 두 부분에 대해서 조금 더 심도있게 알아보겠습니다.
System Architecture에는 Multi-tier Architecture라는 방법이 있습니다.
여러개의 계층으로 나누어서 시스템을 구성하는 방법이죠.(대표적으로 3-tier architecture)
3-tier는 Presentation, Business, Data Source 세가지의 계층으로 구성 되어있습니다.
-
Presentation: 사용자와 소통하는 부분
Front-End(WEB-HTML/CSS/JS, Mobile-Swift/Adroid) -
Business: 사용자의 요청을 처리하고, 소통한 결과를 지금 일어나야 되는 것들을 처리하는 부분
Back-End(REST API, GraphQL) -
Data Source: 우리가 처리한 데이터를 저장하는 부분
Database(DBMS)
저는 Back-End 프로젝트를 진행할 것이므로 위 세개 중 Business 부분에 대해 조금 더 자세히 알아볼게요.
* Business
백엔드를 어떻게 만들것인가... 여기에는 Layered Architecture가 사용됩니다.
이것은 크게 4개의 Layer로 백엔드 시스템을 만드는 것을 뜻합니다.
각 레이어는 바로 아래 레이어 혹은 그보다 아래 레이어에 의존하고, 아래의 레이어는 위에 있는 레이어를
사용할 수 없습니다!! -> Program의 복잡도를 낮추기 위해...
- UI Layer
- Application Layer
- Domain Layer
- Infrastructure Layer
3. 기술 선택
- Java
- Spring Boot
- REST API
'웹 개발 > 스프링 부트 프로젝트(레스토랑 예약)' 카테고리의 다른 글
[Spring Boot, Back-End] 번외. 의존성 주입 (0) | 2020.01.07 |
---|---|
[Spring Boot, Back-End] 5. 가게 상세 구현 (0) | 2020.01.07 |
[Spring Boot, Back-End] 4. 가게 목록 구현 (0) | 2019.12.30 |
[Spring Boot, Back-End] 3. Test Driven Development (0) | 2019.12.30 |
[Spring Boot, Back-End] 2. 프로젝트 시작 (0) | 2019.12.30 |