애매모호한 진한 협업 경험 LMS 안내문 맨 마지막에 남은 여섯 글자에 대한 원망이 자주 들었다. 협업의 정의는 무엇이고 어떠한 것이 진한 것이며 얼마나 진해야 진한 것인가. 모호함에서 오는 서로 다른 정의는 때론 당혹감을 때론 스트레스를 주었다. 프로젝트가 망해도 된다 앞에 계신 코치분들이 누차 강조해주신 말씀이었다. 하지만 가슴에 와닿진 않았다. '프로젝트가 망해? 어림도 없지 ㅋ' 2달이 지난 지금, 천재지변을 만난 우리 팀 프로젝트는.. 서비스 관점에서만 보자면 정말 망했다. Slack의 무료 워크스페이스 정책이 관대해지며 우리 서비스에 대한 수요가 사실상 없어졌기 때문이다. 프로젝트가 망해도 된다 라는 말씀이 오히려 위로가 됐고 맘편히 협업 경험 자체에 집중할 수 있게 됐다. 봉건제도와 자유, ..
Jacoco를 이용해 코드 커버리지 리포트를 만들어봅시다! Jacoco와 정적 코드 분석 JaCoCo is a free code coverage library for Java Jacoco는 테스트 코드 커버리지를 분석해주는 자바 진영의 무료 라이브러리입니다. 정적 코드 분석이란 소스 코드의 실행 없이, 소프트웨어 품질 관리에 도움을 주는 분석 기법인데요, 테스트 코드 커버리지가 낮은 지점에 대해 탐지해주고 알려준다면 이 또한 품질 향상에 도움을 줄 수 있다고 생각이 됩니다. 그래서 Jacoco 도 정적 코드 분석에 포함될 수 있을 것 같아요. 결과물 미리보기 이번 포스팅에선 Gradle 작업으로 생성되는 html 형식의 리포트와 Github Actions를 이용해 생성되는 코멘트 형식의 리포트 두 가지를..
3차 데모데이를 앞둔 현 시점 기준, 줍줍 팀의 서버 아키텍처와 고민했던 지점을 공유합니다. 3차 데모데이 시점, 줍줍의 서버 아키텍처 개발환경, 운영환경에 대해서만 나누어 구성을 완료하였습니다. Github Actions를 이용해 CI를 구성하였고, Git Flow 브랜치 전략을 채택하였으며, develop, main 브랜치에 merge가 발생할 경우, Jenkins에서 이 이벤트를 받아 테스트, 빌드를 수행하여 각각 개발, 운영 환경으로 배포하게 구성했습니다. 추후 운영 환경 백엔드 WAS에 대한 로드 밸런싱을 위해 추가적인 NGINX가 도입될 수도 있을 것 같습니다. CORS 설정이 불필요한 아키텍처 위와 같은 구성을 수행하며 가장 아쉬웠던 것은, 가장 앞에 있는 하나의 NGINX 였습니다. 백엔드..
이 포스팅에선 이론적인 내용에 보다는 구성 방법과 흐름에 대해서만 조망합니다. EC2 생성, NGINX 설치, 프록시 설정, 도메인 및 SSL 적용을 해본 적이 없거나 과정에 대해 모호한 부분이 있으시다면 이 포스팅이 도움이 될 겁니다. 😀 전체 과정을 10분 가량으로 녹화해보았습니다. 실제 적용 과정을 보고 싶다면 https://youtu.be/JMPCdfeA-bs 를 참고해주세요 1. 도메인 확보 및 타겟 설정 토이 프로젝트 목적이라면 가비아에서 값싼 도메인을 구해서 진행하셔도 되고, freenom 을 이용해 무료 도메인을 구해서 진행하셔도 됩니다. 저는 freenom 을 이용해 richplace.ga 라는 도메인을 구했습니다. 가장 윗줄의 설정을 살펴보자면 http://richplace.ga 로 주..
3차 데모 요구사항에 테스트 자동화가 있었습니다. 저희 팀은 Github Actions를 이용해 PR생성 시, 추가 Push 발생 시, merge 발생 시, Github에서 제공하는 기능을 이용하여 테스트 자동화를 시도하였습니다. 관련한 내용을 기록해봅니다. 학습 방법 가장 먼저 이전 기수 선배분들의 리포지토리를 탐색했습니다. .github/workflows 경로 내에 파일들이 관리되어야 하기 때문에, 각 팀의 리포지토리에 해당 경로에만 들어가면 어떻게 CI 테스트 자동화를 구성했는지, 어떤 이벤트에 대해 어떤 동작을 설정했는지 어렵지 않게 파악할 수 있었습니다. yaml 파일이기 때문에 Github Action에 대한 배경지식이 없더라도 대략적으로 어떤 상황일 때 어떤 동작을 하도록 구성했는지 파악할 ..