| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- webhacking 처음
- 3단계 지역 DB
- reversing.kr
- 소개딩
- 행정지역 DB
- Database
- 소프트웨어 개발보안 경진대회
- frontend
- 인턴 후기
- 방명록 만들기
- Layered Architecture
- DBMS
- Forensic 절차
- 메모리 포랜식
- 인턴 지원
- spring
- JSTL
- Django
- 동읍면 DB
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- react
- PyAmdecoder
- EER
- jsp
- 정보보호병 후기
- riceteacatpanda
- SessionAttribute
- mysql
- 네이버 인턴
- restapi
- Today
- Total
웹찢남
Spring - 레이어드 아키텍처 본문
웹 페이지 내에는 중복되는 구성요소들이 있음 (로그인 기능, 메인 메뉴 등)
*중복되는 부분을 처리하려면?
- 별도의 객체로 분리한다.
- 별도의 메소드로 분리한다.
비지니스 메소드를 별도의 Service 객체에서 구현하도록 하고 컨트롤러는 Service 객체를 사용하도록 함
서비스 객체란?
- 비지니스 로직을 수행하는 메소드를 가지고 있는 객체
- 하나의 비지니스 로직은 하나의 트랜잭션으로 동작
트랜잭션이란?
- 하나의 논리적인 작업을 의미
- 특징 1. 원자성: 전체가 성공하거나 전체가 실패하는 것을 의미
ex) 결제 후의 과정에서 에러 발생 시 이를 모두 rollback 해야함
- 특징 2. 일관성: 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 함
ex) 트랜잭션이 진행 중 데이터 변경이 있어도 처음 참조한 데이터로 진행해야함
- 특징 3. 독립성: 어느 하나의 트랜잭션이라도 다른 트랜잭션의 연산을 끼어들 수 없음
ex) critical section, race condition
- 특징 4. 지속성: 트랜잭션이 성공적으로 완료 시 결과가 영구적으로 반영
JDBC 프로그래밍에서 트랜잭션 처리 방법
- DB에 연결된 후 Connection 객체의 setAutoCommit 메소드에 false를 파라미터로 지정
- 일정 트랜잭션 내 모든 SQL이 모두 성공 시 commit() 메소드 호출
서비스 객체에서 중복으로 호출되는 코드의 처리
- 데이터 엑세스 메소드를 별도로 Repository(Dao) 객체에서 구현하도록 하고 서비스는 Repository 객체 사용
Presentation Layer / Service Layer, Repository Layer(Dao)는 재사용적인 측면, 유지보수 면에서 분리하는 게 좋음
Presentation Layer를 웹, 앱 등으로 바꾸기만하면 생산성이 좋음
-> 설정의 분리가 중요시됨
방법 -> web.xml 파일에서 프리젠테이션 레이어에 대한 스프링 설정은 DispatcherServlet이 읽게하고 그외의 설정은 ContextLoaderListner를 통해 읽도록 한다.
'BACK_END > Spring 공부' 카테고리의 다른 글
| Spring - REST API (0) | 2021.02.25 |
|---|---|
| Spring - 방명록 만들기 (0) | 2021.02.25 |
| Spring - MVC (0) | 2021.02.17 |
| Spring - JDBC (0) | 2021.02.15 |
| Spring - Spring Core (0) | 2021.02.13 |