💭 오늘의 학습 전략
# Spring 애플리케이션 빌드/실행/배포
◼️애플리케이션 빌드
◾IDE
◾Gradle task 명령
◼️애플리케이션 실행
◾Profile
◼️애플리케이션 배포
◼️실습
🌼 학습한 것들
◾ build와 bootJar
▪️ build: 빌드 관련 모든 task 실행, Executable jar 파일 제외 plain jar 하나 더 생성
▪️ bootJar: Executable jar만 생성
▪️ Gradle task 명령어를 통한 build
- Windows -> .\gradlew bootJar (build)
◾ profile
▪️ launch configuration
- --spring.profiles.active=local ==> active된 profile 설정으로 실행
▪️ 빌드된 파일 실행 시에는
- java -jar jar파일명.jar --spring.profiles.active=local
◾ 애플리케이션 배포
▪️ 전통적인 배포 방법
- scp, sftp 등 표준 유닉스 툴
▪️ 클라우드 서비스 이용
- PaaS (Cloudy foundry, Heroku 등)
- IaaS (AWS Elastic Beanstalk, Code Deploy 등, Azure Spring Cloud, Google Cloud 등)
▪️ CI/CD 플랫폼 Github Actions, Circle CI 등
◾ 실습
▪️ mysql 연동해보기
- build.gradle에 implementation 'mysql:mysql-connector-java' 추가
- application(-server).yml 설정
spring:
datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:{PORT}/{DB}?serverTimezone=Asia/Seoulusername: {USERNAME}password: {PASSWORD}
💨 하루를 마치며
1. 실습 후기
연동은 크게 어렵지 않았지만 예상 외로 다른 곳에서 에러가 났었다...🥲

멤버 컨트롤러 테스트쪽에서 자꾸 같은 에러가 났따.

memberStatus가 자꾸 null이라 json 변환에 실패했다.


페어님의 코드와 비교해보니 mapper가 다르게 생성되어있었다!!
원인은...
내가 Response에 @NoArgsConstructor를 붙여놓아서였다ㅠㅠ

제대로 돌아왔고 동작도 멀쩡하게 잘 되었다🤭 데이터도 확인할 수 있었다.
(페어님 감사합니다....😇)
2. 원래 maven 프로젝트로만 작업을 했었는데, 빌드는 비슷했다.
mvn clean해주고, mvn build -> jar파일을 배포했었다. (war도 있었다...)
3. 배포는 sftp, ssh로 작업했는데 그래서 클라우드 배포를 얼른 제대로 배우고 싶다ㅎㅎ
강의 보면서 aws로 이게 맞나.. 이게 맞나 했던 경험들 뿐이라서 학습할 게 기대된당
'공부기록 > TIL' 카테고리의 다른 글
2023/01/18 TIL | JWT 인증(Authentication) (0) | 2023.01.18 |
---|---|
2023/01/12 TIL | 인증/보안 기초 (0) | 2023.01.12 |
2023/01/06 TIL | API 문서화 (1) (0) | 2023.01.06 |
2023/01/05 TIL | Mockito, TDD (0) | 2023.01.05 |
2023/01/14 TIL | 테스팅 (2) 슬라이스 테스트 (0) | 2023.01.04 |
댓글