※ 본 블로그 글은 가상의 레거시 프로젝트 학습을 위한 가상의 시나리오 입니다.
레거시 프로젝트 로컬 구축: DDL 스크립트부터 Tomcat 구동까지
> 작성일: 2026-06-16
> 프로젝트: 옛날시스템
> DB: Oracle 11g SE → SID: 옛날
> WAS: Tomcat 고대 버전 + Java 고대 버전
1. DB에 DDL 스크립트 설치
-옛날변종 테이블 생성
SQL\*Plus에서 DDL 파일 실행:
```sql
CREATE USER 옛날변종 IDENTIFIED BY 옛날변종 DEFAULT TABLESPACE 신옛날변종;
GRANT CONNECT, RESOURCE, DBA TO 옛날변종;
@D:\레거시\kkk\옛날변종\옛날변종_Tables_singlefile.sql
@D:\레거시\kkk\옛날변종\옛날변종_Indexes_singlefile.sql
@D:\레거시\kkk\옛날변종\옛날변종_Sequences_singlefile.sql
```
→ 옛날변종 테이블 수십 개 생성 성공 ok
-옛날1 테이블 생성 — 삽질의 시작
```sql
CREATE USER 옛날1 IDENTIFIED BY 옛날1 DEFAULT TABLESPACE 옛날1;
GRANT CONNECT, RESOURCE, DBA TO 옛날1;
@D:\레거시\kkk\옛날1_tables_singlefile.sql
```
-문제 1: 테이블스페이스 USERS 없음
```
ORA-00959: 테이블스페이스 'USERS'이(가) 존재하지 않습니다
```
DDL이 `TABLESPACE USERS`로 되어 있었는데 USERS가 없었다.
```sql
CREATE TABLESPACE USERS DATAFILE 'C:\oradata\옛날1\users01.dbf' SIZE 500M;
```
-문제 2: Quota 부족
```
ORA-01950: 테이블스페이스 'USERS'에 대한 권한이 없습니다
```
```sql
GRANT UNLIMITED TABLESPACE TO 옛날1;
```
-문제 3: 옛날1 사용자 재생성
기존에 수십 개만 생성된 상태에서 다시 실행하자 중복 오류.
처음부터 다시:
```sql
DROP USER 옛날1 CASCADE;
CREATE USER 옛날1 ...;
GRANT ...;
@D:\레거시\kkk\옛날1_tables_singlefile.sql
```
→ 옛날1 테이블 수백 개 생성 성공 ok
-나머지 객체 설치
```sql
@D:\레거시\kkk\옛1_Indexes_singlefile.sql
@D:\레거시\kkk\옛1_Sequences_singlefile.sql
@D:\레거시\kkk\옛1_Views_singlefile.sql
@D:\레거시\kkk\옛1_Procedures_singlefile.sql
@D:\레거시\kkk\옛1_Functions_singlefile.sql
@D:\레거시\kkk\옛1_Packages_singlefile.sql
@D:\레거시\kkk\옛1_Triggers_singlefile.sql
@D:\레거시\kkk\옛1_Synonyms_singlefile.sql
```
-DB 구축 완료
---
2. Eclipse + Tomcat 설정:
-Eclipse 워크스페이스 발견
개발자 K의 Eclipse 워크스페이스가 보존 돼 있었음:
```
D:\레거시\옛날자료\10년전\K의 이클립스_옛날_머가_어쩌고_저쩌고서버_서버\
```
여기에는 다음이 들어 있었다:
- '옛_신개발' - 옛 프로젝트 (Eclipse 프로젝트)
- '옛_어쩌고' - 옛2 프로젝트
- 'Servers/' - Tomcat 서버 설정
- '옛_신개발.war' - 배포용 WAR 파일
- '옛_어쩌고.war' - 옛2 WAR 파일
-오류 1: component-scan JDK 버전
Spring 고대 버전의 `component-scan`이 Java 17을 인식하지 못했다:
```
java.lang.IllegalStateException: Context namespace element 'component-scan'
and its parser class ... are only available on JDK 고대 and higher
```
원인: Java 17의 버전 문자열이 "17"인데 Spring 고대 버전은 "1.x" 형식만 인식.
처음에는 'egov-com-servlet.xml'에서 'component-scan'을 주석 처리.
나중에 Java 고대 버전으로 변경 하기로 함.
-오류 2: --add-opens 옵션
Java 17에서는 필요했던 '--add-opens' 옵션이 Java 8에서는 오류:
```
Unrecognized option: --add-opens=java.base/java.lang=ALL-UNNAMED
```
해결: VM arguments에서 '--add-opens' 옵션 제거
-오류 3: JSP ClassFormatException (아직 해결 중)
```
java.io.ObjectInputStream cannot be resolved
```
Tomcat 고대 버전의 내장 JDT 컴파일러가 Java 8과 호환되지 않아서 발생.
해결책: Eclipse에서 Tomcat의 JRE를 Java 고대 버전으로 변경
---
-Spring 정상 기동 확인:
'egov-com-servlet.xml'에서 두 개 이상이던 'component-scan' 중 주석 처리 안 된 게 있었음. 마저 주석 처리함.
Spring은 정상 기동:
```
Servlet 'action' configured successfully
Server startup in 4287 ms
```
---
예전 개발자의 워크스페이스를 찾으면 설정이 반은 끝난 것
---
-최종 권장 환경
| 항목 | 권장 |
| ----------- | ----------------------------------- |
| Java | Java 고대 버전 |
| Tomcat | Tomcat 고대 버전 |
| DB | Oracle 11g SE |
| Eclipse | K의 워크스페이스 |
---
- 앞으로 할 일
- [ ] Eclipse에서 Tomcat JRE를 Java 고대 버전으로 변경
- [ ] 브라우저에서 레거시 웹 접속
- [ ] 화면 정상 출력 확인
'레거시' 카테고리의 다른 글
| 오래된 프로젝트 복원 -1- (0) | 2026.06.16 |
|---|---|
| (레거시) StackOverflowError, 순환 참조 오류 (0) | 2025.07.22 |