본문 바로가기

📚 전체글176

secret, config 파일 관리 방법 소개(feat. SpringBoot의 application.*) 잘못된 내용이나 다른 의견 있다면 편하게 말씀해주세요 🙏🏻 들어가며 SpringBoot 프로젝트를 GitHub public repo에서 작업 후 배포한다고 가정하자. SpringBoot의 설정 파일은 application.* 또는 DB 초기 설정을 위한. sql 등이 있다. application.* 파일에는 DB 접속 정보(url, username, password)나 secret key 관리 등 많은 파일이 들어있다. 이를 public repo에 공개하면 문제가 발생할 수 있다. 외부 노출을 막고 배포하는 방법을 알아보자 방법 방법 1 : 로컬 개발 환경에서 application.* 설정 파일 그대로 사용하고 외부 저장소 노출을 막기 위해. gitignore 설정, 배포 시 application.yml.. 2022. 7. 1.
Testcontainers에서 MySQL 사용해보기 (테스트 환경에서 자동으로 MySQL 컨테이너 띄우고 내리기) 이 글은 이전 글 Testcontainers 사용하기까지 에서 이어졌습니다. 잘못된 내용이나 의견 있다면 편하게 말씀해주세요 🙏🏻 Testcontainers 간단 소개 Testcontainers 라이브러리는 도커 컨테이너를 자바 코드로 조작할 수 있다. 다시 말해 자바 코드로 특정 도커 이미지를 실행하고 끌 수 있다. 일반 도커 컨테이너와 마찬가지로 네트워크 통신, 스토리지 조작, 환경변수 설정을 할 수 있다. 이를 DB 테스트 환경에 도입하면 다음과 같다. 인메모리 DB로 테스트하는 것이 아닌 실제 운영 DB와 동일한 환경을 외부 인스턴스에 띄우지 않고 로컬 도커 컨테이너에서 테스트할 때마다 DB 컨테이너를 띄우고 테스트가 끝나면 컨테이너를 내리는 작업을 자동화할 수 있다. CI 환경에 도커만 설치되어.. 2022. 6. 23.
[의사결정] Testcontainers 사용하기까지 잘못된 내용이나 의견 있다면 편하게 말씀해주세요 🙏🏻 사건의 개요 Spring 프로젝트를 했다. DB와 관련된 통합 테스트 작성하였고 모두 통과하였다. 실제 운영 DB 설정을 위해, 테스트 코드에서 작성한 더미 데이터 스크립트(. sql)를 사용하지 못해 재작성하였다. 사건의 원인 테스트 DB 환경 : 인메모리(H2) DB 실제 운영 DB 환경 : MySQL 8.0 테스트와 배포 DB 환경이 달랐다. JPA가 제공해주는 Dialet(방언) 기능을 사용하면 두 DB 간 문제가 없었지만, 방언 기능을 사용하지 않는 퓨어 .sql 스크립트에서 문제가 발생했다. (더미 데이터 .sql 스크립트 재사용 못함) 방언 기능을 사용하지 않는 SQL은 없었지만 만약 있었다고 한다면 문제가 발생할 수 있다.(사실 몇 문제.. 2022. 6. 21.
[프로젝트 회고] : 반찬가게 웹 애플리케이션 (미작성) SideDish (GitHub 저장소) 배운 것 AWS, Spring Data Jdbc, 협업 기간 22.04.18 ~ 22.04.29 (10일) 팀원 @쿠킴(BE), @루이(BE), @쥬(FE), @도리(FE) PR 1 프로젝트 초기 설정, DB, API, 배포 아키텍처 설계 / PR 1 PR 2 특정 음식 타입 조회 기능 / PR 2 PR 3 로그인 제외한 모든 API 기능, 배포 / PR 3 PR 4 배포 자동화 스크립트, Github OAuth 로그인 / PR 4 Reviewer @잭(guswns1659) SideDish 프로젝트는 프론트엔드와 협업하여 반찬가게 쇼필몰 웹 앱을 개발합니다. 프로젝트하며 배운 점 ⛓ Reference 2022.04.18 - [📝 회고/🗓 일일, 주간 회고] - [일.. 2022. 6. 19.
[의사결정, 일일회고] 22.06.15 - "백엔드(Spring) 배포와 아키텍처" 📚 배운 것 백엔드(Spring) 배포 방법 고민 어제는 FE 배포를 하였다. 오늘은 BE를 배포한다. 아직 초기 프로젝트 세팅만 하고 구현 코드는 없지만 CI/CD 자동화 배포를 구축한 뒤 프로젝트 기능이 추가될 때 마다 배포하고 싶어서였다. 제약 사항 - 비용(aws 프리티어) 고민한 배포는 아래와 같다. Case 1 : Docker + Docker hub 도커 이미지를 도커 허브에 올려 사용한다. 이전 프로젝트를 이 방법으로 배포했다. 장점 - 간단하다 - DockerFile만 만들면 끝난다. - Docker 환경이라 배포가 자유롭다. - 이미지 저장소 free 단점 - 무료로 사용하면 배포 이미지가 노출된다. - 단순 EC2 오토 스케일링을 한다면 모든 EC2에 도커가 설치된 뒤 그 위에 올라가.. 2022. 6. 16.