spring boot

1. AWS Lambda 생성   Lambda 콘솔에서 새 함수 생성을 해줘야함 백엔드 서버와 동일한 Java17 런타임은 AWS 콘솔에서 직접 코드 편집이 불가능하고 JAR 파일을 업로드 해야함또한, Lambda에서 요청을 보낼 CloudRun 환경이 Python flask server 이므로 Python 런타임을 선택해줌(나머지는 기본 설정 그대로이고 필요성에 맞게 알아서 선택하면됨)   생성한 함수를 클릭하고 콘솔에서 코드를 누르면 이렇게 lambda_handler 함수 코드를 살펴볼 수 있음   우선은 테스트용도이기에 별다른 로직은 작성하지 않고 statusCode를 202로 바꿔 잘 동작하는지 확인해보기로함 => 코드를 수정하였으면 왼쪽의 Deploy를 눌러야 반영됨!  또한, 현재 테스트에서는..
HTTPS를 설정하게 된 이유 세션 로그인을 구현하기위해 세션 쿠키를 사용하려면 SameSite = None과 Secure = true 설정이 필요함 하지만 계속 로그인이 안되길래 확인해보니... 위와 같은 설정을 하려면 HTTPS를 적용해야 한다는 것을 알게되었고 추후 프론트에서 녹음한 음성을 넘겨주는 로직을 구현할 때도 HTTPS가 필요하다는 것을 알게되어 HTTPS를 적용하기로 하였음 기왕이면 과금 때문에 무료로... 사용할 것들 NginX NginX는 오픈 소스 웹 서버 소프트웨어로 정적 콘텐츠 제공, 리버스 프록시, 로드 밸런서, HTTP 캐시 서버 등 다양한 기능을 수행할 수 있음 => 이벤트 기반 비동기 아키텍처를 사용하여 최소한의 리소스로 수천 개의 동시 연결을 처리할 수 있음 여기서는 H..
1. Github Secrets 설정  Github Actions를 적용할 Repo의 Setting에서 Secrets and variables에 들어가주면New repository secret로 환경 변수를 설정할 수 있음 DOCKERHUB_USERNAME=> Docker Hub 사용자 이름DOCKERHUB_PASSWORD=> Docker Hub 비밀번호EC2_HOST=> EC2 퍼블릭 IPEC2_USER=> EC2에 SSH로 접속할 때 사용할 사용자 이름임(우분투 EC2를 사용중이기에 ubuntu로 지정하였음)EC2_SSH_KEYhttps://hanjungyo.tistory.com/127 Jenkins을 이용한 Spring Boot 배포 자동화로컬에서 Spring Boot 빌드하고 docker imag..
로컬에서 Spring Boot 빌드하고 docker image 만들어서 docker hub에 올리고..EC2 들어가서 docker hub에 있는 이미지 pull 받아서 run 시키기... 개발을 하면 할수록 CI/CD의 중요성이 깊게 느껴지는 것 같다... 배포에 있어서 나와 같이 귀찮음 혹은 어려움을 느끼고 있는 다른 분들을 위해 기록을 남기려고한다  시작하기에 앞서 슬픈 사연 (Jenkins 도입기..) 일단 시작하기에 앞서 Jenkins을 도입하기까지의 슬픈 전설이 있다.. https://hanjungyo.tistory.com/126 코드가 변경될 때마다 빌드, 테스트, 배포 등의 작업을 자동으로 실행할 수 있음 Github" data-og-host="hanjungyo.tistory.com" dat..
Spring Boot에서 Supabase를 연동한 후 간단한 회원가입 로직 구현  Supabase가 뭔지 모른다면 밑의 글을 읽어보고 오자 https://hanjungyo.tistory.com/124 Supabase란? (with 어떤 DB를 선택해야할까?)Supabase 사용법을 말하기에 앞서  현재 개발중인 프로젝트를 간단하게 요약하면 보이스팩을 거래하고 구매한 보이스팩을 플랫폼 내부에서 사용할 수 있게해주는 어플리케이션이다. 어떤 DB를hanjungyo.tistory.com  우선 현재 프로젝트는 초기에 Supabase 무료 플랜을 사용하며 제공해주는 OAuth도 당장은 필요가 없음만약 추후에 아키텍처가 변경되면서 DB를 변경하게 될 가능성도 있기에 Supabase 종속성을 줄여야겠다고 생각했음(일..
알아보기 좋은 예외 처리를 위해 Spring Boot에서 Custom Exception을 설정해보자!! ErrorCode enum 생성 및 설정 springboot 에서 에러를 발생시켰을 때, 전달할 에러 코드를 관리하는 enum을 생성해준다! enum(열거형)은 서로 연관된 상수들의 집합을 정의할 때 사용하는 특별한 자료형임!=> 주로 몇 가지 값 중 하나만 선택해야 하는 경우에 사용됨(계절, 요일, 상태 등)  package berich.backend.exception;import lombok.RequiredArgsConstructor;import org.springframework.http.HttpStatus;@Getter@RequiredArgsConstructorpublic enum ErrorCo..
spring boot를 이용하여 프로젝트를 하게 되었는데MySQL을 처음 연동해보면서 기록을 남겨보겠습니다...   implementation 'org.springframework.boot:spring-boot-starter-data-jpa'runtimeOnly 'com.mysql:mysql-connector-j' 우선 build.gradle에 위 2개의 의존성을 추가해준다 📌implementation 과 runtimeOnly 의 차이는 뭘까 궁금증이 들었다!=> runtimeOnly는 컴파일 시점에는 필요없지만 실행 시점에는 꼭 필요한 라이브러리의 의존성을 추가할 때 사용한다고 한다   DB 연동을 위해서는 resources 디렉토리 안에 있는 application.properties를 설정해줘야 하..