일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스 가위바위보
- 2-layered architecture
- 특정문자 제거하기
- 프로그래머스 배열의 유사도 파이썬
- 춥고더운우리집
- 리트허브 오류
- 비지니스 레이어
- 알고리즘
- 춥고 더운 우리 집
- 프레젠테이션 레이어
- 파이썬 특정 문자 제거하기
- 개발자 취준
- programmers 배열 회전
- 프로그래머스 배열 회전시키기
- 슈츠 자막
- 주니어개발자
- 프로그래머스 가위바위보 풀이
- 리트허브 사용법
- leftJoin
- 스프링 시스템 구조
- 공선옥
- 프로그래머스 특정 문자 제거하기
- collection python
- 리트허브 커밋
- 프로그래머스
- 가위바위보 풀이
- Programmers 배열의 유사도
- BigO notation
- 배열의 유사도 파이썬
- 파이썬 컬렉션
- Today
- Total
기억보다 기록을
[Spring] 두 개의 레이어로 표현하는 시스템 구조 (2-Layered Architecture) 본문
[Spring] 두 개의 레이어로 표현하는 시스템 구조 (2-Layered Architecture)
juyeong 2022. 1. 9. 15:26
시스템은 두 개의 레이어로 표현할 수 있다. 프레젠테이션 레이어(Presentation Layer(MVC))와 비지니스 레이어(Business Layer(IoC,AOP)이다. 나는 이렇게 도식화된 그림이 이해하기에 훨씬 편한 것 같다. 스프링을 공부한 뒤 면접을 보게 되면 사용자(client)가 요청했을 때 시스템 내부 흐름을 묻는 질문을 하기도 한다.

그림을 간략히 설명하면 이렇다. 프레젠테이션 레이어는 사용자와 커뮤니케이션한다. 비지니스 레이어는 사용자의 요청에 대한 비지니스 로직을 처리한다. 특히 이 구조에서 핵심적인 역할을 하는 것은 1,2,3번 클래스이다. (4번은 View로 수정해야 한다.)
Controller⑴는 사용자의 요청을 제어한다. @Controller 어노테이션을 사용한다. ServiceImpl⑵는 비지니스 로직을 처리하는 서비스 클래스이다. @Service 어노테이션을 사용하며 클라이언트 프로그램에서 이름으로 객체를 요청할 수 있도록 뒤에 이름을 적어주자. (예시: @Service("boardService")) ⑶은 Data Access Object로 DB 연동을 담당한다. @Repository 어노테이션을 사용한다.
@Component 어노테이션 대신 각 클래스별로 다른 어노테이션을 사용하는 것은 해당 클래스를 분류하기 위한 목적 때문만은 아니다. @Controller는 MVC 패턴(Model-View-Controller) 아키텍쳐에서 컨트롤러 객체로 해당 클래스를 인식하게 하는 역할을 하고 @Repository는 DB 연동 과정에서 발생하는 예외를 변환해주는 기능을 가졌다.
틀린 부분을 찾으셨나요? 대게 당신이 맞습니다. 편하게 지적해주세요.
참고
스프링 퀵 스타트/채큐태
https://tinkerbellbass.tistory.com/9
'Development > Spring' 카테고리의 다른 글
[Spring] 웹 프로젝트 구현(4) 테이블 생성,더미데이터 추가,영속계층 crud 구현 (0) | 2022.02.24 |
---|---|
[Spring] 웹 프로젝트 구현(3) myBatis 연결, 왜 xml을 써야할까, xml처리,log4jdbc (0) | 2022.02.22 |
[Spring] 웹 프로젝트 구현(2) JDBC,커넥션 풀(HikariCP) 연결,HikariCP를 왜 쓸까? (0) | 2022.02.22 |
[Spring] 웹 프로젝트 구현(1) 환경설정/의존성 주입(DI)이란?/오라클 설치 (0) | 2022.02.21 |
[Spring] OOP의 횡단관심(Crosscutting concern)과 AOP(1) (2) | 2022.02.02 |