본문 바로가기

내일배움캠프28

내일 배움 캠프 최종 프로젝트 - git actions CI/CD 앞 선 글들을 통하여 CI/CD 를 구축하기전 준비로 앱을 실행시킬 서버와 뒤에 받쳐줄 DB 와 캐싱 까지 구축 그리고 개발 서버에 맞는 application.yml 설정까지 맞췄다. 이로인해 배포를 하게 되면 서버에서 앱을 동작할 수 있는 단계 까지 왔다. 이제는 그럼 CI/CD를 구축할 차례가 되었다. 이 글들을 쓸때부터 CI/CD란 것을 구축하기위해 이러한 글들을 써온 것인데 그러하면 CI/CD란 무엇인가? CI/CD란 Continuous Integration/Continuous Deployment(Delivery)의 약자로, 지속적인 통합과 지속적인 제공을 의미 기본 개념 지속적인 통합(Continuous Integration) : 코드의 지속적인 통합 자동화된 빌드와 자동화된 테스트를 제공 안정.. 2024. 4. 11.
내일배움캠프 최종 프로젝트 - applicaton.yml 관리 submodules 사용 이제 개발서버에 백엔드 앱을 올릴 준비를 하게 되었으니 앱을도커컨테이너에 올리게 동작 시켰을 시 서버 환경에 맞게 DB와 Redis 연결 설정을 만들어 주어야 한다. 기본적으로 application.yml 이나 applicaton.properties 파일들은 민감한 정보이므로 github repo에 올리지 않는다. 앱을 배포를 하기 위해선 앱을 빌드를 해야하고 앱을 빌드할때는 꼭 필요한 설정파일이 application 설장파일이다. 이것들을 관리하는 방법 또 한 여러가지 방법이 있다. 그 중에 나는 git의 submodules 기능을 이용하여 application.yml을 관리 하는 방법을 택 했다. git submodules이란? 저장소 안에 다른 저장소를 원하는 디렉토리를 복제하는 기능이다. 예를 들.. 2024. 4. 11.
내일 배움 캠프 최종 프로젝트 - 스프링부트 서버를 컨테이너로 올리기 전 준비(도커 설치) CD를 구상했을때 서버에 배포하는 방식을 jar파일로 빌드 후 도커파일 이미지로 만들어 도커허브에 레포지에 업로드 후에 vm에서 도커이미지를 받아 컨테이너를 올려서 서버에 스프링부트 앱이 동작하는 방식으로 구성을 하였다. 그리고 초기 아키텍처 구상에 따라 하나의 서버에 데이터를 저장할 RDBSM인 MySql과 캐싱 및 동시성제어를 위한 redis를 컨테이너를 docker compse가 아닌 개별적으로 구성을하여 관리 할 수 있도록 구상을하였다. 그러기 위해선 vm 인스턴스에 도커를 설치하여 컨테이너를 올릴 수 있는 환경을 만들어 주어야 한다. 도커를 설치 해주기 위해 ssh 접속을 통하여 인스턴스 접속 해준다. 윈도우 였다면 간편하게 도커 데스크톱을 통해 도커를간단하게 설치할 수 있지만, 이곳 서버는 l.. 2024. 4. 11.
내일 배움 캠프 최종 프로젝트 - GCP VM mobaXterm 접속 전 글에 서버를 올리기위하여 vm 을 만드는 것을 해왔다. 매번 브라우저 를통해 인스턴스에 접속하는 것이 불편하니 ssh 접속을 로컬에서 바로 접속 할 수 있도록 ssh 접속에 필요한 키페어를 만들고 인스턴스에 퍼블릭 키를 등록하여 프라이빗 키를 통해 mobaXtrem의 putty접속을 해보겠다. 먼저 ssh 연결을 위한 키페어를 만들어야한다. mobaXterm이라는 프로그램을 설치 후 실행시키고 Tools라는 탭에 MobaKeyGen이라는 SSH key generator가 있을 것이다. 이 화면 을 통해 generate 버튼을 눌러서 no key. 밑 빈 공간을 마우스 커서를 계속 움직이면 랜덤한 RSA 방식의 공개키가 생성된다. 이 생성된 공개키에 key 코멘트를 나는 GCP에 연결한 google 계.. 2024. 4. 10.