= Backend 구성

== sdl-base

sdl-base은 시스템 개발을 위한 프로젝트로 sdl을 기반으로 시스템을 개발하기 위한 파일들로 구성되어 있다.

----
sdl-base
 |- doc <1>
 |- frontend <2>
 |- src/main/java <3>
 |- src/main/resource <4>
 |- source <6>
 |- pom.xml
----

. doc : SDL 개발자 문서 위치
. frontend : SDL Frontend 프로젝트
. src/main/java : Java file
. resource : 프로젝트 실행을 위한 설정파일, xml 파일 등
. source : SDL 모듈 jar파일과 source-jar파일
. pom.xml

== src/main/java

java source가 위치한 폴더로 maven compile 대상 프로젝트이다. SDL에서 배포되는 소스코드 외에 프로젝트에서 개발한 java class도 이곳에 작성하면 된다. SDL 기능중 시스템별로 수정이 많이 발생하거나 샘플로 제공되는 기능들은 sdl-base 모듈에 있다.
----
com
|- onelogin.saml2 <1>
|- samsung
    |- aspect <2>
    |- batch <3>
    |- common <4>
    |- config <5>
    |- filter <6>
    |- interceptor <7>
    |- sample <8>
    |- user.controller <9>
----
1. onelogin.saml2 : AD 통합 인증 관련 Package
2. aspect : Aspect Package
3. batch : 사용자 동기화 배치 관련 Package
4. common : 시스템 공통으로 사용하는 Util Package
5. config : Spring config Package
6. filter : Servlet Filter Package
7. interceptor : HandlerInterceptor의 구현,  서비스 전,후처리 Package
8. sample : Sample Package
9. user.controller : 로그인 관련 Package

== src/main/resources
resources는 어플리케이션이 실행될 때 필요한 설정파일, Mybatis Query Mapping 파일들을 포함하고 있다.
resource-{profile} 형태로 되어 있어 빌드 시 knox.properties, log4j2.xml, log4jdbc.log4j2.properties, onelogin.saml.properties
의 파일이 profile에 맞게 패키징된다.

* resources : 모든 profile에 공통적으로 적용되는 파일(예: SQL, Excel 다운로드 양식)

----
resources
    |- excel :  excel up/download mapping xml 파일
    |- message : spring message properties 파일
    |- sql.mybatis : mybatis query mapper xml  파일
    |- templates : 결재/메일 vm 파일

----
* resources-local : 로컬 개발 환경에 필요한 설정 파일
----
resources-local
    |- application.properties : spring boot 설정 파일
    |- config.properties : sdl의 설정 파일
    |- knox.properties : knox 설정
    |- log4j2.xml : log4j2 설정
    |- onelogin.saml.properties : AD 통합 인증 설정 파일
----

* resources-dev : 개발 환경에 필요한 설정 파일
* resources-prod : 운영 환경에 필요한 설정 파일


IMPORTANT: 설정파일들은 반드시 프로젝트에 맞게 수정해서 사용하도록 한다.
