Spring 언어를 배우는 과정에서 새로운 외계어를 배웠다.
3 Layer Architecture..... 두둥
어떻게 작동을 할까!
어떻게 이해하면 될까!
그저 잘하고 싶다....
3 Layer Architecture
1. 나한테 Spring언어와 JAVA언어 외계어 그 자체이다 ㅜㅜㅜ 죽상이다 ㅜㅜ
2. 그래도 just do it 해보자!
3. 오늘은 3 Layer Architecture 이다!
4. 3 Layer Architecture은 하나의 API가 적고 기능이 단순하여 코드가 복잡해 보이지 않을 수 있지만 앞으로 기능이 추가되고 복잡해진다면 문제가 발생할 수 있습니다.
5. 그러하여 3 Layer Architecture로 서버에서의 처리과정이 대부분 비슷하다는 걸 깨닫고, 처리 과정을 크게 Controller, Service, Repository 3개로 분리했습니다.
6. 첫 번째 계층
Presentation Tier(Client) - 일반 사용자가 직접 액세스 할 수 있는 프레젠테이션 계층
콘텐츠를 HTML/JS/CSS 형식으로 브라우저에 전송하는 계층(React,..)
모든 HTTPS 지원 클라이언트 또는 장치와 통신할 수 있으므로 프레젠테이션 계층은 다양한 형식(데스크톱 애플리케이션, 모바일 앱, 웹페이지, IoT 장치 등)을 유연하게 수행 할 수 있다.
7. 두 번째 계층
Logic Tier(Application) - 비즈니스 로직이 실행되는 비즈니스 로직 계층을 뜻 한다.
예) 어플리케이션 서버를 사용하고 애플리케이션에 대한 비즈니스 논리를 처리하는 계층(C#, Java, C++, Python,..)
8. 세 번째 계층
Data Tier(Database) - 데이터 스토리지 계층을 뜻 한다.
응용 프로그램 데이터에 대한 액세스를 제공하는 데이터베이스 관리 시스템(MySQL, Postgres,..)
9. 이제는 여러 사람이 맡아서 할 수 있다!!!
이점
애플리케이션을 3개의 계층으로 분리할 경우 다음과 같은 5가지 이점이 있다.
- 애플리케이션의 다른 영역에 영향을 주지 않고 한 계층의 기술 스택을 업데이트할 수 있다.
- 서로 다른 개발 팀이 각자의 전문 분야에 대해 작업할 수 있다 (한 영역에서 심층적인 역량)
- 애플리케이션을 스케일업 및 스케일아웃 할 수 있다
예) 별도의 백엔드 계층을 통해 다양한 데이터베이스에 구현할 수 있으며, 여러 웹 서버를 추가하여 확장할 수 있다 - 서비스나 서버의 신뢰성과 독립성을 높여준다.
- 프레젠테이션 코드와 비즈니스 로직을 별도로 관리하여 비즈니스 로직의 변경 등이 프레젠테이션 계층에 영향을 미치지 않는다.
https://jaws-coding.tistory.com/9
오늘의 느낀 점
1. just do it
2. 죽상이다.
3. 이게 맞나?
나도 개발자가 되고 싶다...... 꼭 하고 싶다....... 어려운 길로..... 꾸준하게 해 보자!!