2023/01/10 TIL | 빌드/실행/배포

    반응형

    💭 오늘의 학습 전략

    # 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.Driver
           url: jdbc:mysql://localhost:{PORT}/{DB}?serverTimezone=Asia/Seoul
           username: {USERNAME}
           password: {PASSWORD}
     
     

    💨 하루를 마치며

    1. 실습 후기
    연동은 크게 어렵지 않았지만 예상 외로 다른 곳에서 에러가 났었다...🥲

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

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

    여기 같았다.
    memberMapperImpl이다.

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

    @NoArgsConstructor 제거하고 실행했을 때,,

    제대로 돌아왔고 동작도 멀쩡하게 잘 되었다🤭 데이터도 확인할 수 있었다.
    (페어님 감사합니다....😇)
    2. 원래 maven 프로젝트로만 작업을 했었는데, 빌드는 비슷했다.
    mvn clean해주고, mvn build -> jar파일을 배포했었다. (war도 있었다...)
    3. 배포는 sftp, ssh로 작업했는데 그래서 클라우드 배포를 얼른 제대로 배우고 싶다ㅎㅎ
    강의 보면서 aws로 이게 맞나.. 이게 맞나 했던 경험들 뿐이라서 학습할 게 기대된당

    반응형

    댓글