Introduce
- 웹 서비스를 위한 서버단 소스가 가져야할 기능 명세
Architecture
Presentation, Application, Persistence 구분하여 정책이 필요
Presentation: Client 와의 연계 명세
- Restful 때문에, JSON 리턴만으로 설계할 것이 아니라,
Legacy와의 연계 고려하여 XML, JSON 선택하여 리턴할 수 있는 구조로 설계
- 단순 클라이언트와의 통신 이외에도, MCI,EAI,별도 배치 스케쥴러와의 연계도 고려
Application: Business 레이어
- 온라인, 배치로 나누어 각각의 아키텍쳐 명세가 필요
- Application 은 Process(프로세스 진입), Service(비즈니스 로직), DAO(DB접근) 로 구분
- Service Context 레벨에서의 공통변수 영역과 업무별 전/후처리 관리
- Business Source에서 공통벼수 가져다 쓸 수 있도록 유틸리티화
- System 레벨에서의 트랜잭션 관리, 캐쉬, 거래내역, 로그, 전/후처리 관리
Persistence: DB 와의 연계 명세
- JPA, myBatis 를 선택하는 것만이 아닌, 디퍼드 서비스 지원도 고려
Service Layer
- Controller, Service, DAO Layer 로 구분
- Controller와 Service가 상속받을 클래스 기술
- Controller 의 입출력은 DTO로 선언
AOP(aspect oriented programming)
- 업무별 전/후처리가 가능하도록 필터
- 모든 Request에 대한 전/후처리 필터
Request 에 대한 전, 후처리 기능
전처리
- 공통영역 변수 조립: 사용자정보, IP,URL 등
후처리
- 거래내역 저장
- 에러처리: 에러구분에 따른 HTTP 응답 코드 셋팅
Logging
- 개인정보 필드는 로깅이 되지 않도록 방안 필요
- ex) 변수명 끝이 Enc 인 것은 마스킹 처리
Monitoring
-