| r22 vs r23 | ||
|---|---|---|
| ... | ... | |
| 25 | 25 | |
| 26 | 26 | == 원인 == |
| 27 | 27 | === 가설 === |
| 28 | 믿지마세요. 참고만 하세요. | |
| 28 | 29 | |
| 30 | ====# 애플리케이션 로직 오류 #==== | |
| 31 | 서버 애플리케이션 내부에서 데이터베이스 연결 이전 단계에서 예외가 발생한 것으로 추정된다. | |
| 32 | ||
| 33 | 이는 Java 코드 내에서 null 객체를 참조하거나, 설정 파일을 읽어오지 못하는 등의 이유로 DB 커넥션 코드까지 도달하지 못한 상황일 수 있다. | |
| 34 | ||
| 35 | 이 경우 데이터베이스에는 실제로 접근 시도조차 이루어지지 않으며, 애플리케이션이 즉시 오류를 반환하게 된다. | |
| 36 | ||
| 37 | ====# JDBC 드라이버 초기화 실패 #==== | |
| 38 | DB 연결에 필요한 JDBC 드라이버가 정상적으로 로드되지 않은 것으로 추정된다. | |
| 39 | ||
| 40 | 예를 들어 '''ClassNotFoundException'''이 발생하면, DB 드라이버 클래스 자체를 인식하지 못해 연결 시도를 하지 못하게 된다. | |
| 41 | ||
| 42 | 결과적으로 서버는 DB 쿼리를 실행하기도 전에 내부 Java 예외를 반환하게 된다. | |
| 43 | ||
| 44 | ====# 환경 변수 또는 설정값 손상 #==== | |
| 45 | 데이터베이스 주소, 계정 정보, 포트 번호 등의 설정값이 손상되었거나 비어 있는 것으로 추정된다. | |
| 46 | ||
| 47 | 이 경우 커넥션 객체가 올바르게 초기화되지 못해, 연결 시도 직후 즉시 실패하게 된다. | |
| 48 | ||
| 49 | 즉, DB는 정상적으로 작동 중이지만, 애플리케이션이 그 위치를 찾지 못하는 상황이다. | |
| 50 | ||
| 51 | ====# 서버 프로세스 비활성화 가설 #==== | |
| 52 | 서버가 실행될 때 데이터베이스 관련 모듈이 비활성화된 상태로 기동된 것으로 추정된다. | |
| 53 | ||
| 54 | Spring Boot 등에서는 특정 설정이 누락되면 '''DataSource''' 빈이 생성되지 않아, DB 접근 시 NullPointerException 혹은 기타 예외가 발생한다. | |
| 55 | ||
| 56 | 이 경우 서버는 정상적으로 실행된 것처럼 보이지만, 내부 기능이 작동하지 않는다. | |
| 57 | ||
| 58 | ====# DB 접속 제한 또는 포트 차단 #==== | |
| 59 | 데이터베이스는 작동 중이지만, 애플리케이션 서버가 네트워크 레벨에서 DB로의 연결을 거부당한 것으로 추정된다. | |
| 60 | ||
| 61 | 방화벽, 포트 설정, 혹은 접근 제한 정책으로 인해 '''Connection refused''' 오류가 즉시 반환되었을 가능성이 있다. | |
| 62 | ||
| 63 | 이 역시 DB 자체의 장애라기보다는 환경 설정 문제에 가깝다. | |
| 64 | ||
| 65 | ====# 종합 결론 #==== | |
| 66 | 응답이 즉시 도착했다는 점에서, 데이터베이스 연결 자체가 시도되지 않았을 가능성이 높다. | |
| 67 | ||
| 68 | 따라서 이번 오류는 데이터베이스 장애가 아닌 Java 애플리케이션 내부 예외로 인한 결과로 판단된다. | |
| 69 | ||
| 70 | 즉, “DB 오류” 메시지는 실제 DB 문제의 결과가 아니라, DB 접근 전에 발생한 서버 내부 로직 문제를 포장한 형태일 가능성이 높다. | |
| 71 | ||
| 29 | 72 | == 기타 == |
| 30 | 73 | * 이 일로 인해 더시드위키, 더시드포럼, 알파위키 뿐만 아니라 위브위키 또한 같은 서버를 쓴다는 사실이 드러났다. |