chore: MSSQL에서 PostgreSQL로 프로젝트 마이그레이션

- local, dev, prod 프로필의 환경 설정 파일을 PostgreSQL 연결 정보로 변경

- pom.xml에 PostgreSQL JDBC 드라이버 의존성과 Lombok 빌드 설정을 추가

- SpringConfig의 MyBatis 설정을 PostgreSQL 전용 매퍼 파일을 사용하도록 변경

- log4j2.xml의 로그 디렉터리를 절대 경로 /logs에서 상대 경로로 변경

- plan.md에 DB 설정 정보를 추가하고 README.md를 PostgreSQL 기반 구성에 맞게 갱신
This commit is contained in:
2026-05-29 18:22:55 +09:00
parent 14be10f5a4
commit af320f07fb
8 changed files with 199 additions and 36 deletions
@@ -35,8 +35,10 @@ public class SpringConfig {
ApplicationContext applicationContext) throws IOException {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setConfigLocation(applicationContext.getResource("classpath:sql/mybatis/mssql/mybatis-config.xml"));
factoryBean.setMapperLocations(applicationContext.getResources("classpath*:sql/mybatis/mssql/**/mapper-mybatis-*.xml"));
// PostgreSQL 설정에 맞는 MyBatis 매퍼를 사용한다.
factoryBean.setConfigLocation(applicationContext.getResource("classpath:sql/mybatis/postgresql/mybatis-config.xml"));
// PostgreSQL 전용 매퍼 XML 전체를 로딩한다.
factoryBean.setMapperLocations(applicationContext.getResources("classpath*:sql/mybatis/postgresql/**/mapper-mybatis-*.xml"));
return factoryBean;
}
@@ -12,9 +12,9 @@ spring.quartz.job-store-type=jdbc
spring.quartz.jdbc.initialize-schema=always
spring.quartz.datasource.driver-class-name=org.postgresql.Driver
spring.quartz.datasource.jdbcUrl=jdbc:postgresql://10.40.87.189:5445/SDL
spring.quartz.datasource.username=sdl5
spring.quartz.datasource.password=dlatl#123
spring.quartz.datasource.jdbcUrl=jdbc:postgresql://192.168.0.60:5432/casaos
spring.quartz.datasource.username=casaos
spring.quartz.datasource.password=casaos
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
spring.quartz.properties.org.quartz.jobStore.isClustered=true
@@ -32,4 +32,4 @@ spring.quartz.properties.org.quartz.scheduler-name=QuartzScheduler
#spring.cache.type=redis
#spring.data.redis.host=localhost
#spring.data.redis.port=6379
#spring.data.redis.port=6379
+5 -13
View File
@@ -7,19 +7,11 @@ cors.domain=*
web-context-path=/
web-resource-root=classpath:/public/
# Datasource(EPAS)182.197.109.75:1433 192.168.0.102:32768
#datasource.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
#datasource.url=jdbc:sqlserver://182.197.109.75:1433;databaseName=eMBO_dev;TrustServerCertificate=True
#datasource.username=embodev
#datasource.password=S@am$ung07!
#datasource.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
# Datasource(PostgreSQL)
datasource.driver=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
#datasource.url=jdbc:sqlserver://192.168.0.102:32768;databaseName=eMBO_dev;TrustServerCertificate=True
datasource.url=jdbc:log4jdbc:sqlserver://192.168.0.102:32768;databaseName=eMBO_dev;TrustServerCertificate=True
datasource.username=sa
datasource.password=qazwsx12##
datasource.url=jdbc:log4jdbc:postgresql://192.168.0.60:5432/casaos
datasource.username=casaos
datasource.password=casaos
@@ -154,4 +146,4 @@ ghrp.default-protocol=http
ghrp.address.prefix=127.0.0.1
ghrp.token=2fbee24b-ea55-3ecb-8267-72c340117b47
ghrp.dept-service=/dept
ghrp.emp-service=/emp
ghrp.emp-service=/emp
+17 -14
View File
@@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Configuration status="INFO">
<Properties>
<Property name="LOG_DIR">logs</Property>
</Properties>
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT">
<Filters>
@@ -11,8 +14,8 @@
</Filters>
<PatternLayout pattern="%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{---}{faint} %clr{%c}{cyan} %n%m%n%xwEx"/>
</Console>
<RollingFile name="FileAppender" fileName="/logs/sdl-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="/logs/sdl/sdl-%d{yyyy-MM-dd}-${hostName}.log">
<RollingFile name="FileAppender" fileName="${LOG_DIR}/sdl-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="${LOG_DIR}/sdl/sdl-%d{yyyy-MM-dd}-${hostName}.log">
<Filters>
<MarkerFilter marker="LOG4JDBC_SQL" onMatch="ACCEPT" onMismatch="NEUTRAL"/>
<MarkerFilter marker="LOG4JDBC_EXCEPTION" onMatch="ACCEPT" onMismatch="NEUTRAL"/>
@@ -27,8 +30,8 @@
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
<RollingFile name="ApprovalAppender" fileName="/logs/approval/approval-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="/logs/approval/approval-%d{yyyy-MM-dd}-${hostName}.log">
<RollingFile name="ApprovalAppender" fileName="${LOG_DIR}/approval/approval-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="${LOG_DIR}/approval/approval-%d{yyyy-MM-dd}-${hostName}.log">
<PatternLayout>
<Pattern>[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c %n%m%n</Pattern>
</PatternLayout>
@@ -36,8 +39,8 @@
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
<RollingFile name="AccessLogAppender" fileName="/logs/access/access-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="/logs/access/access-%d{yyyy-MM-dd}-${hostName}.log">
<RollingFile name="AccessLogAppender" fileName="${LOG_DIR}/access/access-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="${LOG_DIR}/access/access-%d{yyyy-MM-dd}-${hostName}.log">
<PatternLayout>
<Pattern>%d %-5p [%t] %-17c{2} \(%13F:%L\) - %m%n</Pattern>
</PatternLayout>
@@ -45,8 +48,8 @@
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
<RollingFile name="UserHistoryAppender" fileName="/logs/history/user-history-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="/logs/history/user-history-%d{yyyy-MM-dd}-${hostName}.log">
<RollingFile name="UserHistoryAppender" fileName="${LOG_DIR}/history/user-history-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="${LOG_DIR}/history/user-history-%d{yyyy-MM-dd}-${hostName}.log">
<PatternLayout>
<Pattern>%d %-5p [%t] %-17c{2} \(%13F:%L\) - %m%n</Pattern>
</PatternLayout>
@@ -54,8 +57,8 @@
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
</RollingFile>
<RollingFile name="RoleHistoryAppender" fileName="/logs/history/role-history-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="/logs/history/role-history-%d{yyyy-MM-dd}-${hostName}.log">
<RollingFile name="RoleHistoryAppender" fileName="${LOG_DIR}/history/role-history-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="${LOG_DIR}/history/role-history-%d{yyyy-MM-dd}-${hostName}.log">
<PatternLayout>
<Pattern>%d %-5p [%t] %-17c{2} \(%13F:%L\) - %m%n</Pattern>
</PatternLayout>
@@ -64,8 +67,8 @@
</Policies>
</RollingFile>
<RollingFile name="WorkgroupHistoryAppender"
fileName="/logs/history/workgroup-history-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="/logs/history/workgroup-history-%d{yyyy-MM-dd}-${hostName}.log">
fileName="${LOG_DIR}/history/workgroup-history-${date:yyyy-MM-dd}-${hostName}.log"
filePattern="${LOG_DIR}/history/workgroup-history-%d{yyyy-MM-dd}-${hostName}.log">
<PatternLayout>
<Pattern>%d %-5p [%t] %-17c{2} \(%13F:%L\) - %m%n</Pattern>
</PatternLayout>
@@ -116,4 +119,4 @@
<AppenderRef ref="FileAppender"/>
</Root>
</Loggers>
</Configuration>
</Configuration>
@@ -12,9 +12,9 @@ spring.quartz.job-store-type=jdbc
spring.quartz.jdbc.initialize-schema=always
spring.quartz.datasource.driver-class-name=org.postgresql.Driver
spring.quartz.datasource.jdbcUrl=jdbc:postgresql://10.40.87.189:5445/SDL
spring.quartz.datasource.username=sdl5
spring.quartz.datasource.password=dlatl#123
spring.quartz.datasource.jdbcUrl=jdbc:postgresql://192.168.0.60:5432/casaos
spring.quartz.datasource.username=casaos
spring.quartz.datasource.password=casaos
spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
spring.quartz.properties.org.quartz.jobStore.isClustered=true