-
82일차 - 톰캣, 빌드, 빌드 전 프로필 설정백엔드(웹 서버, WAS)/Spring Boot 2024. 5. 27. 16:46
톰캣
공부하는 과정이라 WEB 서버를 사용하지 않았고 톰캣을 WEB 서버로 사용했습니다 톰캣은 WAS 이다
내장 톰캣 : 수정이 일어나지 않는 운영에 유용하다
외장 톰캣 : 여러 설정이 가능하고 수정이 자주 일어나도 반영된다
이미지는 IMG 태그로 보여주기
이미지가 아닌 다른 확장자는 다운로드할 수 있게 해야한다(다운로드 버튼)
모든 파일은 삭제 기능이 들어가야한다
반드시 외장 톰캣을 사용할 것
서버가 안켜지면 확인할 체크리스트
1. 라이브러리
2. 설정
3. 설정에 따른 패키지 구성
빌드
빌드 하기전 로그 설정
<!-- 로그의 파일 저장 --> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!-- 저장 위치 --> <file>C:/logs/service.log</file> <!-- 출력 패턴 --> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <pattern>${LOG_PATTERN}</pattern> </encoder> <!-- 롤링 정책(언제 끊어서 말아줄 것인가?) --> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- 어떤 이름으로 저장할래? --> <fileNamePattern>C:/service.%d{yy-MM-dd}.log</fileNamePattern> <!-- 얼마나 저장할래? (일단위)--> <maxHistory>30</maxHistory> </rollingPolicy> </appender> <!-- Root Logger --> <root> <appender-ref ref="console" /> <!-- 반드시 추가해줘야한다 --> <appender-ref ref="file"/> </root>
빌드 하기전 확인사항
1. 파일 업로드 경로
2. 로그 파일 저장 경로
그런데 매번 빌드할때 마다 설정을 바꾸기 힘들다
// Run As > Run Configuration // 1. 내장 톰캣 // Spring Boot 옵션에서 Profile 를 dev 로 선택 후 실행 // Argments > // 2. 외장 톰캣 // Argments 에서 -Dspring.profiles.active=dev 추가 // Environment 에서 spring.profiles.actvie 와 dev 를 추가 // conf > catalina.properties // 3. 실제 톰캣에 배포시 // conf/catalina.properties 에 다음 내용을 추가한다 // spring.profiles.active=dev // 4. war 자체 실행시 // java -jar ROOT.war --spring.profiles.active=dev
개발 환경에서 사용할 설정들은 왼쪽 실제 빌드 후 서버에 올렸을때 사용할 설정은 오른쪽이다
// 2. 외장 톰캣 // Argments 에서 -Dspring.profiles.active=dev 추가 // Environment 에서 spring.profiles.actvie 와 dev 를 추가
spring.profiles.active
dev
// Run As > Run Configuration // 1. 내장 톰캣 // Spring Boot 옵션에서 Profile 를 dev 로 선택 후 실행
내장 톰캣으로 환경에 따른 설정 변화 확인하기
@RestController public class ProfController { Logger logger = LoggerFactory.getLogger(getClass()); @Value("${prof.name}") private String name; @Value("${db.addr}") private String addr; @Value("${db.username}") private String username; @Value("${db.password}") private String password; @GetMapping(value="/") public String home() { logger.info("profile name : {}", name); logger.info("profile addr : {}", addr); logger.info("profile username : {}", username); logger.info("profile password : {}", password); return "OK"; } }
spring.profiles.active=dev
서버에 올렸을때 설정이 변경된것을 확인할 수 있다
'백엔드(웹 서버, WAS) > Spring Boot' 카테고리의 다른 글
84일차 - 웹 크롤링 (0) 2024.05.29 83일차 - 암호화, 텍스트 에디터 라이브러리 적용 (0) 2024.05.28 81일차 - 인터셉터, 파일 업로드, 다운로드, 스케쥴러 (2) 2024.05.24 80일차 - RESTAPI, Properties 활용, Spring FW 특징, AOP 활용(로그인 처리) (0) 2024.05.23 79일차 - RESTful (0) 2024.05.23