1. 개발 환경과 코드의 분리
배포 시 코드와 환경 설정은 반드시 분리해야 한다.
코드가 특정 환경에 종속성을 가지지 않도록 설계해야, 다양한 환경에서 동일한 코드로 실행할 수 있다.
- 문제점: 환경에 종속된 코드위와 같은 코드가 있다면, 로컬 개발 환경과 운영 환경에서 데이터베이스 URL이 다를 경우 코드 수정이 필요하다. 이는 유지보수성과 재사용성을 떨어뜨린다.
String databaseUrl = "jdbc:mysql://localhost:3306/mydb";
- 해결 방법:
환경별 설정 파일을 외부에서 관리하고, 코드는 환경 설정에 의존하지 않게 설계한다. 예를 들어, Spring Boot에서는 application.properties 또는 application.yml을 사용해 환경 설정을 관리한다.
# application.yml
spring:
datasource:
url: jdbc:mysql://${DB_HOST}:${DB_PORT}/mydb
환경 변수로 설정값을 주입
export DB_HOST=localhost
export DB_PORT=3306
2. 절대경로 대신 상대경로 사용
코드에서 경로를 지정할 때 절대경로를 사용하는 것은 위험하다.
예를 들어:
String filePath = "C:/Users/username/project/file.txt"; // 절대경로
문제점:
- 환경이 바뀌면 경로도 변경해야 함.
- 운영체제마다 경로 구조가 다를 수 있음.
해결 방법:
상대경로를 사용하여 코드를 작성.
String filePath = "./resources/file.txt"; // 상대경로
또는, 프로젝트 내의 경로를 ClassLoader를 통해 동적으로 가져오기.
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("file.txt").getFile());
3. 아파치 톰캣과 포트 번호
톰캣의 기본 포트 번호
- 아파치 톰캣(Apache Tomcat)의 기본 포트 번호는 8080이다.
이는 HTTP 통신을 처리하는 포트로 사용된다.
포트 번호 변경 방법
- server.xml 파일 수정:
- 경로: ${TOMCAT_HOME}/conf/server.xml
- <Connector> 요소의 port 속성을 변경.
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
- Spring Boot에서 톰캣 포트 변경:
- application.properties에 설정.
server.port=9090
- application.properties에 설정.
4. 핵심 정리
- 환경과 코드 분리:
- 환경 설정은 코드 외부에서 관리.
- Spring Boot와 같은 프레임워크는 환경 변수를 활용해 설정값을 주입.
- 상대경로 사용:
- 절대경로를 지양하고, 상대경로를 통해 환경 독립적인 경로를 설계.
- 톰캣 기본 포트 번호:
- 톰캣은 기본적으로 8080 포트를 사용.
- 필요 시 server.xml 또는 Spring Boot 설정 파일에서 변경 가능.

아파치 톰캣의 번호가 8080