이전 글에서 GitHub Actions를 활용한 CI를 다룬 데 이어, 이번에는 Elastic Beanstalk에 배포하는 방법과 내가 겪은 트러블슈팅을 공유하고자 한다. 작고 간단한 트러블슈팅은 이 포스트에 포함할 예정이며, 내용이 많고 복잡한 트러블슈팅은 별도의 포스트로 작성할 계획이다. (참고) 이전 글 : [GitHub Actions][Spring Boot] CI 시도하기 + build 실패 트러블슈팅 [GitHub Actions][Spring Boot] CI 시도하기 + build 실패 트러블슈팅👀 GitHub Actions를 이용한 CI + 문제 상황프로젝트의 루트에 .github 폴더를 만들고, 그 안에 workflows 폴더를 만든다.하위에 ci를 담당하는 ci.yml 파일을 만든다.그리..
HHH000489: No JTA platform available이 오류는 Hibernate가 JTA(Java Transaction API) 플랫폼을 찾지 못할 때 발생한다. 이 문제를 해결하기 위해서는 hibernate.transaction.jta.platform 설정을 추가해야 한다. application.ymlspring: jpa: properties: hibernate.transaction.jta.platform: org.hibernate.service.jta.JtaPlatform application.yml에 해당 부분을 추가하니 해결되었다.
애플리케이션의 데이터베이스 비밀번호나 API 키와 같은 민감한 정보를 평문으로 저장하면, 누구나 접근할 수 있어 보안상 위험하다. GitHub의 공개 레포지토리에 업로드하기 위해 Jasypt를 활용하여 민감한 정보들을 암호화했는데, 그 과정을 작성해보고자 한다.0. Jasypt란?Jasypt(Java Simplified Encryption)는 Java 애플리케이션에서 간편하게 추가할 수 있는 암호화 라이브러리다. 특히, 애플리케이션의 설정 파일이나 환경 변수 등에 포함된 민감한 정보를 암호화하여 보호하는 데 유용하다.1. Jasypt 라이브러리 추가build.gradle에 jasypt 의존성을 추가한다. build.gradledependencies { // jasypt - 데이터 암호화 라이브러리 ..
1. 새 프로젝트 생성하기 인텔리제이의 상단 메뉴에서 파일 > 새로 만들기 > 프로젝트... 를 선택한다. 프로젝트의 이름과 경로를 지정해준다.언어는 Java, 빌드 시스템과 JDK 버전은 원하는 것으로 선택한다. 원하는 JDK 버전이 없다면 다운로드할 수 있다. 나는 빌드 시스템은 Gradle, JDK 버전은 17버전으로 선택했다. (본 글은 Gradle 기준으로 작성할 것이다.) 설정을 마치면 생성 버튼을 눌러 프로젝트를 생성한다. 2. 스프링 부트 플러그인과 의존성 추가하기Gradle 프로젝트가 생성되었다. 스프링 부트 프로젝트로 만들기 위해 의존성을 추가해야 한다. 공식 문서(링크)를 참고하여 스프링 부트 프로젝트로 만들어보자. build.gradle 파일을 열어 수정한다.plugins { ..
1. 설정 파일 복사 및 이름 변경우선 기존의 application.yml 파일을 src/test/resources 디렉토리 아래에 복사한다.그리고 파일의 이름을 application-{프로파일명}.yml로 변경해준다.여기서 {프로파일명}은 사용할 프로파일의 이름을 넣으면 된다.예를 들어 테스트용 프로파일의 이름을 test로 정했다면 파일 이름은 application-test.yml이 된다.2. 테스트용 데이터베이스 정보 수정복사한 설정 파일에서 테스트에 사용할 데이터베이스 정보를 수정한다.예를 들어, H2 데이터베이스를 사용하기 위해서는 다음과 같이 변경할 수 있다.application-test.ymlspring: jpa: database-platform: org.hibernate.dialect..
테스트 코드란 소프트웨어 개발 과정에서 코드가 예상대로 작동하는지 확인하기 위해 작성하는 코드다. 특히 백엔드 개발에서는 서버, 데이터베이스 등 다양한 요소와 상호작용하기 때문에, 테스트 코드 작성은 매우 중요하다. 1. 테스트 코드 1. 테스트 코드의 중요성 버그 발견 용이: 코드 변동 시 실시간으로 버그를 찾아낼 수 있다. 리팩토링 용이: 기능 변경이나 코드 구조 변경 시 기존 기능이 올바르게 작동하는지 확인할 수 있다. 개발 속도 향상: 오류를 빠르게 찾아 해결함으로써 개발 속도가 향상된다. 2. 테스트 코드 작성 시 주의 사항 독립성 유지: 각 테스트는 다른 테스트와 독립적으로 실행되어야 한다. 명확한 목적: 한 번에 하나의 기능만을 테스트해야 한다. 자동화: 모든 테스트는 수동 개입 없이 자동으..