전체 글141 [Key Word 개발기] Git submodule 배포하면서 개발을 하다보면 yml에 추가해야하는 설정들이 있다. 공개해도 되는 값이면 괜찮지만 공개하면 안되는 값들은 datasource: url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/${DB_DATABASE} 이런 형식으로 작성후 쉘스크립트에서 export하여 넣어주고 있다. 이러다보니 매번 쉘스크립트를 수정하는 것이 귀찮았다... 그래서 더 나은 방법이 없을까?? 찾아보니 git submodule이라는 방법이 있었다. 서브 모듈?? Git 레포지토리 내에 다른 Git레포지토리를 포함하는 방법이다. 상위 레포를 슈퍼 프로젝트, 하위 레포를 서브 모듈이라고 부른다. 서브모듈을 이용하면 어느 Git 레포에 하위 디렉토리로 사용가능하다. 보통 서브모듈의 경우 공통으로 사용되는 .. 2024. 1. 19. [Key Word 개발기] AWS 배포 - jenkins 지속적 배포 구축하기 간단하게 우리 협업프로젝트 CI/CD구조가 이러하다. 이번 게시글에서는 jenkins를 사용해서 어떻게 지속적 배포를 구축했는지 설명하겠다. 앞서 게시글에도 이야기했지만 github actions에서 우선 pr코드에 대한 검사를 진행한다. 그래서 오류가 발생시 병합을 불가능하게 하였다.(다만 지금 우리조는 restdocs관련해서 에러가 나고 있지만 그냥 파일이 없다는 간단한 문제라서 이부분은 pass하고 진행중이다) 이후 병합하면 webhook에서 jenkins로 이벤트 발생했다고 알려준다. 그럼여기서 jenkins는 이제 jar파일을 생성하여 ec2인스턴스에게 전달하여 스프링부트 어플리케이션을 실행하여야한다. 젠킨스에서 잡을 생성하는 방법에는 두가지가 있다. 1. 프리스타일 젠킨스에서 기본틀을 정해주고.. 2024. 1. 19. [Key Word 개발기] AWS 배포 - Github WebHook과 Jenkins 간단하게 우리 협업프로젝트 CI/CD구조가 이러하다. 이번 게시글에서는 github webHook과 jenkins를 어떻게 연결하는지 설명할 것이다. 일단 GitHub에서 PR을 올리면 Github Actions에서 정상적으로 빌드가 되는지, 테스트코드가 통과하는지 검사해준다. 만약 에러가 나온다면 설정한 브랜치로 merge가 불가능하게 해놨다. 그래서 만약 모든게 다 정상적으로 작동한다면 Webhook에서 Jenkins쪽으로 이벤트를 보낸다. 여기서 Webhook이란 특정 애플리케이션이 다른 애플리케이션으로 이벤트 정보를 실시간으로 제공하기 위한 방법이다. 젠킨스 쪽에서는 외부에 Webhook의 이벤트를 보낼 수 있는 url를 열어두고 Webhook에서 이벤트가 발생하면 해당 정보를 제공한다. 이후 j.. 2024. 1. 19. [Key Word 개발기] AWS 배포 - EC2에서 docker 활용한 jenkins 설치 간단하게 우리 협업프로젝트 CI/CD구조가 이러하다. 이번 게시글에서는 ec2에서 docker를 활용해서 어떻게 jenkins를 설치하는지 설명할 것이다. 다만 aws ec2 생성은 되어있다는 전제하에 진행하는 것이다. Jenkins 도입한 이유 다양한 CI/CD 도구가 있지만 Jenkins를 선정하였다. 그 이유는 우리 팀은 CI/CD를 잘 아는 팀원들이 없다. 그래서 생태계가 넓고 레퍼런스가 많은 도구를 사용하는 것이 좋다고 생각했다. 래퍼런스가 많으면 초기 학습 비용도 적게 들고 이슈가 발생했을때도 비교적 쉽게 해결가능하기 때문이다. Docker를 활용 EC2에 docker를 활용해서 Jenkins를 설치하였다. 그 이유는 jenkins를 직접 설치한다면 신경써야하는 환경설정들이 정말 많다. 그러나.. 2024. 1. 16. [Key Word 개발기] AWS 배포 - Github Actions 어쩌다보니 담당하게된 배포... 2주일정도 공부했지만... 사실 뭔말인지 모르고 대충 적용해봤었다...개인 레포에다가... 그래서 맨처음 1주일은 이걸 왜 이렇게 하는데?? 였지만 다행히 2주차 정도 되니까 아 그렇구나..정도까지 가게 되었다. 협업프로젝트 배포라서 걱정이 많았는데 다행히 성공하여서 천천히 어떻게 했는지 기록하려고 한다. CI / CD + DB 간단하게 배포 방식과 db를 어떻게 하였는지 이미지로 보여주자면 설명하자면 1. Github Actions를 통해서 PR올린 코드가 build(+test) 할때 에러가 없는지 확인한다. (만약 에러가 나온다면 merge못하게 설정가능하다) 2. 에러가 안나와 merge를 진행하게 되면 Github Webhook에서 jenkins쪽으로 알림을 보낸다.. 2024. 1. 16. 2023-01-14 일주일 회고록 협업 어렵네... 아무래도 온라인으로 진행되는 협업이다보니.. 뭐랄까 프론트와 백엔드 속도가 안맞는다고 할까?? 그리고 소통을 한다고 하는데도 정확하게 프론트가 어디까지 했는지 잘 모르니까..약간 불협화음이 생겼다. 그래도 뭐 잘 해결은 됬지만.. 앞으로 1주??정도 더 해야하는데 잘 마무리 됬으면.. 배포.. 협업하는 백엔들 분들께 배포 공부 조금씩 하시라고 말씀은 드렸는데 각자 기능을 구현에 몰입하다보니 배포공부를 잘 못하신거같아서... 일단 내가 하긴 했는데.. 이게 프론트 분들은 빨리 연동 테스트 하고 싶은신데 나는 또 가족 해외여행가서 밤마다 한다고 하긴했는데... 아.. 모르겠다... 일단 성공한 거같은데.. 진짜 여행가서 매일 2시까지 배포 시도한듯...ㅎㅎㅎㅎ 코테 코테가 너무 하기 싫어서.. 2024. 1. 14. 이전 1 ··· 8 9 10 11 12 13 14 ··· 24 다음 728x90