일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 동읍면 DB
- restapi
- 3단계 지역 DB
- Django
- Database
- PyAmdecoder
- 행정지역 DB
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- SessionAttribute
- EER
- spring
- reversing.kr
- 인턴 지원
- Layered Architecture
- mysql
- react
- 정보보호병 후기
- webhacking 처음
- 네이버 인턴
- 소프트웨어 개발보안 경진대회
- Forensic 절차
- jsp
- 메모리 포랜식
- 인턴 후기
- riceteacatpanda
- 방명록 만들기
- JSTL
- 소개딩
- frontend
- DBMS
- 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 |