pom.xml에 PostgreSQL JDBC 드라이버를 등록합니다.
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.6.0</version>
</dependency>
DB 서버 정보(HOST, PORT, USER, PWD 등)를 상수로 관리합니다.
public class ServerDefines {
public static class DatabaseConfig {
public static final String HOST = "127.0.0.1";
public static final int PORT = 5432;
public static final String USER = "postgres";
public static final String PWD = "password";
}
}
앱 전체에서 공유할 수 있도록 SharedPreferences 클래스에서 DB 매니저를 초기화합니다.
public class SharedPreferences {
private static final String[] DATABASES = { "main_db" };
private static SharedPreferences m_Instance = null;
private ArrayList<PgQueryManager> m_dbs = new ArrayList<>();
public static SharedPreferences getInstance() {
if (m_Instance == null) {
m_Instance = new SharedPreferences();
}
return m_Instance;
}
private SharedPreferences() {
for (String db : DATABASES) {
m_dbs.add(new PgQueryManager(
ServerDefines.DatabaseConfig.HOST,
ServerDefines.DatabaseConfig.PORT,
db,
ServerDefines.DatabaseConfig.USER,
ServerDefines.DatabaseConfig.PWD
));
}
}
public PgQueryManager getDb() {
return m_dbs.get(0);
}
}
스프링 부트 실행 시점(ContextRefreshedEvent)에 DB 연결을 세팅합니다.
@Component
public class ApplicationStartup {
@EventListener
public void onApplicationEvent(ContextRefreshedEvent event) {
SharedPreferences.getInstance();
System.out.println("+++ Application Started, DB Initialized +++");
}
}
pom.xml)ServerDefines)SharedPreferences)ApplicationStartup)👉 실행과 동시에 PostgreSQL 연결 준비 완료
코드를 git에 push한 뒤, 팀원이 DB 커넥션 관련 오류가 발생했다고 제보해주었습니다.
확인해보니 원인은 pom.xml에 추가한 dependency가 제대로 반영되지 않아 생긴 문제였습니다.
👉 결론적으로 Maven Update를 하지 않아 생긴 이슈였고, 다음부터는 새로운 dependency를 추가하거나 변경한 경우 반드시 maven update를 수행했다는 내용을 이슈 사항에 함께 기록해야겠습니다.