웹 백엔드 4기

Thoughts & Records

우아한테크코스 레벨3 팀 프로젝트 복기

프로젝트에 기여한 내용 프로젝트 코드 관련 Slack 메시지 생성 이벤트 대응 Slack 워크스페이스 최초 참여 이벤트 대응 로그인 시 토큰과 함께 최초 로그인 여부를 반환하도록 구현 여러 검색 조건에 대응하는 조회 API 구현을 위해 QueryDSL 도입 동적 검색 조건 관련 BooleanBuilder를 활용한 리팩터링 테스트 격리를 위한 DatabaseCleaner 구현 logback 을 활용한 로깅 기능 구현 local, dev 환경에서만 CORS가 허용되도록 구현 JpaRepository 대신 Repository를 사용하도록 설득 인프라 관련 Nginx 리버스 프록시를 활용한 CORS가 불필요한 서버 아키텍처 구현 Github Actions를 활용한 CI 테스트 자동화 Jacoco, SonarQu..

Server & Infra

SonarQube with Github Actions (PR Decoration)

EC2 인스턴스 생성부터 SonarQube 호스팅과 PR 데코레이션까지! 한 시간 내로 뚝딱! 전체 오퍼레이션 과정은 아래 영상을 참고해주세요 https://www.youtube.com/watch?v=5uS4yyl_WCE SonarQube, SonarCloud 둘 다 정적 분석 도구입니다. 차이점은 직접 호스팅을 해야하는지 여부입니다. 직접 서버를 구축해야 하는 SonarQube는 Community Edition은 오픈소스입니다. 이미 구축되어 있는 서버를 이용하는 SonarCloud는 제한된 기능까지 무료로 사용 가능합니다. 처음엔 SonarCloud를 사용하고 싶었는데요, woowacourse-teams 라는 하나의 Organization 안에 있는 하나의 Repository의 Collaborator..

Server & Infra

t4g 인스턴스와 ARM 아키텍처

우아한테크코스 4기 레벨3 진행 과정에선 EC2 인스턴스 유형으로 t4g 를 사용해야 합니다. 그로인해 Sonarqube 도커 이미지 등 일부 호환되지 않는 부분이 있었는데요, t4g는 무엇이고, ARM 아키텍처는 무엇인지 살짝 알아보겠습니다. EC2 인스턴스 중 T 패밀리의 발전사 AWS에선 지속적으로 시장의 수요에 맞춰 인스턴스 유형을 제공하려 노력해오고 있습니다. 2010년 T1 이후, 2014년의 T2는 성능을 세분화하였고, 2015년엔 가장 작은 nano 유형을 출시하였습니다. 2017년엔 Unlimited 유형을 출시하였고, 2018년엔 T3를, 그리고 2020년엔 T4g를 내놓기에 이릅니다. t4g는 5가지 인스턴스 패밀리 중 범용 목적 인스턴스에 속하는데요, t3 대비 성능은 40% 향상되..

Server & Infra

Jacoco with Github Action

Jacoco를 이용해 코드 커버리지 리포트를 만들어봅시다! Jacoco와 정적 코드 분석 JaCoCo is a free code coverage library for Java Jacoco는 테스트 코드 커버리지를 분석해주는 자바 진영의 무료 라이브러리입니다. 정적 코드 분석이란 소스 코드의 실행 없이, 소프트웨어 품질 관리에 도움을 주는 분석 기법인데요, 테스트 코드 커버리지가 낮은 지점에 대해 탐지해주고 알려준다면 이 또한 품질 향상에 도움을 줄 수 있다고 생각이 됩니다. 그래서 Jacoco 도 정적 코드 분석에 포함될 수 있을 것 같아요. 결과물 미리보기 이번 포스팅에선 Gradle 작업으로 생성되는 html 형식의 리포트와 Github Actions를 이용해 생성되는 코멘트 형식의 리포트 두 가지를..

Server & Infra

CORS 설정이 불필요한 서버 아키텍처 (Same-Origin, @Profile)

3차 데모데이를 앞둔 현 시점 기준, 줍줍 팀의 서버 아키텍처와 고민했던 지점을 공유합니다. 3차 데모데이 시점, 줍줍의 서버 아키텍처 개발환경, 운영환경에 대해서만 나누어 구성을 완료하였습니다. Github Actions를 이용해 CI를 구성하였고, Git Flow 브랜치 전략을 채택하였으며, develop, main 브랜치에 merge가 발생할 경우, Jenkins에서 이 이벤트를 받아 테스트, 빌드를 수행하여 각각 개발, 운영 환경으로 배포하게 구성했습니다. 추후 운영 환경 백엔드 WAS에 대한 로드 밸런싱을 위해 추가적인 NGINX가 도입될 수도 있을 것 같습니다. CORS 설정이 불필요한 아키텍처 위와 같은 구성을 수행하며 가장 아쉬웠던 것은, 가장 앞에 있는 하나의 NGINX 였습니다. 백엔드..

리차드
'웹 백엔드 4기' 태그의 글 목록 (4 Page)