본문 바로가기

분류 전체보기139

[Key Word 개발기] @WebMvcTest 없이 테스트?? 부트캠프 협업프로젝트하면서 멘토님께 일주일에 한번씩 멘토링을 받는데 내 테스트 코드에 대한 멘토를 해주셨다. 해주시면서 하신 말씀이 이해가 안되어 찾아보니 내가 정말 아무생각없이 테스트코드 공장마냥 짜내고 있었구나...생각이 되었다. @WebMvcTest 없이 테스트 해봐유?? 멘토님께서 mocking테스트를 추천하지만 @SpringBootTest, @DataJpaTest, @WebMvcTest의 경우 어플리케이션을 실제로 띄운후 테스트하는 방식이기때문에 단순히 mocking만으로 테스트하는게 성능,시간 문제를 해결하고 테스트하고자하는 목적들을 달성할 수 있다. 라고 말씀하셨다. 엥?? 저 어노테이션 없이 어떻게 하라는 거죠..?? 테스트코드에는 저런 어노테이션이 필수 인거아닌가??라는 생각이 머리속으로.. 2024. 1. 6.
[Key Word 개발기] Flyway 적용기 부트캠프 협업프로젝트에서 flyway를 적용하기로 했다. 개인프로젝트때도 적용해보기도 했고 특히 협업프로젝트때 적용하면 좋을 것같아서 팀원들에게 적용하자고 말하게되었다. Flyway?? 이미 블로그에 flyway에 대해서 적은 적이 있다. 그럼에도 우리 프로젝트에 왜 flyway를 적용했는지 정리하고자 한다. 일단 flyway란 데이터베이스 마이그레이션 툴로서 데이터베이스 변경사항을 추적하고, 업데이트나 롤백을 보다 쉽게할 수 있도록 도와주는 도구이다. 데이터 마이그레이션이 필요한 이유는 프로젝트를 진행할때 위 그림처럼 여러 환경에서 데이터베이스가 존재한다. 팀원들이 각자 로컬에서 데이터베이스를 이용하기도 하고, CI, Test 할때도 각각 별도의 데이터베이스를 이용한다. 팀원들이 각자 로컬에서 개발을 .. 2024. 1. 5.
[Key Word 개발기] CI/CD 어떻게 할것인가... 협업프로젝트하면서 부트캠프 쪽에서는 CI/CD까지 완성하기를 바라시는 것같다. 물론 하면 좋긴한데... 나뿐만 아니라 우리 백엔드 팀원들이 배포를 해본 경험이 없어서... 잘할 수 있을지 걱정 가득.. 일단 어떻게 CI/CD를 할 것인지 구조는 대충 정해졌다. CI & CD CI는 GitHub Actions를 이용하기로 했다. CD는 Jenkins를 이용한다. CI에서 GitHub Actions를 이용한 이유는 PR과정에서 테스트코드가 작동되는지 확인하는 점이 프로젝트 배포과정에서 오류같은 이슈를 많이 줄것이라고 생각했다. CD에서 Jenkins를 이용한 이유는 처리속도가 Jenkins가 더 빠르다 사실 우리 조가 무중단 배포까지 구현할 수 있을지는 모르겠다. 다만 무중단 배포를 안할 경우 배포되는 시간.. 2024. 1. 2.
GitHub Actions 공부해보기 GitHub에서 제공하는 서비스로 build, test, deploy 파이프 라인을 자동화할 수 있는 CI와 CD 플랫폼이다. 깃 레포지토리에서 손 쉽게 CI/CD결과를 확인하고 관리할 수 있다. WorkFlow GitHub Actions의 기본 구성 단위이다. ".github/workflows/.yml"이라는 YAML파일에 정의된다. 워크플로우는 작업의 흐름으로 특정한 목적을 위한 푸시,풀 같은 이벤트 트리거, 환경, 기능들를 포함한다. 하나 코드 저장소에는 여러개의 워크플로우 파일이 존재할 수 있다. on: push: branches: - main - develop pull_request: branches: - backend/** on 속성을 통해 해당 워크플로우가 언제 실행될지 정의한다. 위의 예시.. 2023. 12. 31.
Github Actions CI 자동 빌드 및 테스트 하기 협업프로젝트 마지막 주에는 배포를 해야하는데.... 아는게 하나도 없어서 하나씩 공부중이다... 그래도 개인적으로 기본적 토대는 CI는 GitHub Actions로 하고 CD는 Jenkins를 통해 할 계획이다. 물론 AWS로 배포할 것이다. 그래서 오늘은 GitHub Actions로 빌드및 테스트하는 방법을 말할 것이다 CI/CD가 일단 뭔데? CI는 여러 개발자가 하나의 프로젝트에 같이 개발하게된다. 이때 발생하는 불일치를 최소화해주는 개념이다. 애플리케이션 변경 사항 반영할때 자동으로 빌드 및 테스트 되어 만약 테스트가 실패하거나 잘못된 코드가 있으면 공유되는 걸 방지한다. CD는 지속적 배포로 프로젝트의 변경사항을 가상환경에 자동으로 배포하는 것이다. 간단하게 말하자면 자동빌드 및 테스트 통해 코.. 2023. 12. 31.
2022-12-31 일주일 회고록 배포 어떡하냐.. 협업프로젝트 중인데 멘토님 말씀대로라면 배포를 지금부터 하는게 좋다고 하신다. 그러니까 프론트랑 백엔드가 잘 연결되는지 테스트해야하기때문에... 근데 우리 팀에서 아는 분들이 없다는 게... 나도 모름...그냥 모름... 젠킨스가 뭐하는 기술인지도 몰랐음...오늘 공부하긴 할껀데... 할수 있을런지... 멘토링때 어버버버버,..? 멘토링하면서 멘토님이 진짜 면접처럼 이 기술은 왜 사용하는지 에 대해서 물어보신다. 근데 어버버버법 하다가 끝났다. 그냥 대충 알아봤다가 한대 맞은 기분... 그래서 쓰려는 기술 다 알아보고 블로그 작성중이다. 다음 멘토링때는 질문하신거에 다 답변할 수 있었으면..ㅎ 코테 아 코테 하기 시러... 재미도 0ㅇ로 떨어짐 그러다보니 열정 0으로 떨어짐... 지금 .. 2023. 12. 31.
728x90