본문 바로가기

전체글109

Github Actions으로 Sonar Cloud와 Slack 알림 설정하기 목차개요시나리오 소개사전 작업 구성워크플로우 구성마치며1. 개요Github Actions를 이용하여 CI/CD 파이프라인 구성에 대한 이해를 해보려고 한다.Github Actions는 Github 레포지토리를 이용해 간단하게 설정하고 사용하기 쉽다. 별도의 서버나 외부서비스를 구축할 필요 없이 Github에서 제공하는 기능으로 CI를 실행할 수 있기에 Github Actions를 선택하였다.2. 시나리오 소개요구사항특정 path 에 대해서만 실행 (multi-board에 src/**)main branch로 PR이 생성 & 동기화 될 때 테스트 작업 실행 (CI)PR이 main으로 merge 되면 배포 (CD)배포 성공 여부 슬랙으로 전송위에 요구사항을 반영한 대략적인 플로우는 다음과 같다.main bra.. 2025. 1. 23.
운영환경에서 안전하게 테이블 칼럼을 추가하려면 어떤 방법이 좋을까? 목차개요한 번에 처리하는 방법왜 3단계로 나눠서 작업해야 할까?결론1. 개요진행하고 있는 프로젝트는 게시판 프로젝트인데, 한 번에 생각으로 설계하고 만드는 것이 아닌 요구사항이 추가된다고 생각하고 점진적인 게시판을 만드는 프로젝트이다. 기본적인 게시판에 필요한 API를 만들었고 해당 테이블의 칼럼은 아래와 같다.  post 테이블의 식별자인 id, 제목인 title, 내용인 content 만 가지고 있었다. 근데 클라이언트 측에서 조회 수 기능이 있으면 좋겠다고 하면서 요구사항을 던져주셨다. Client : “post 테이블에 조회수 칼럼 넣어주세요~”Server : “네~”Server : 뚜따뚜따 “ALTER TABLE post ADD COLUMN view_count”Server : “반영했습니다~”C.. 2025. 1. 12.
2024년 개인 회고 올 한해는 내가 했던 결정들에 대해 다시 되돌아 보는 일이 많았다.0. 퇴사2023년 12월말 다니던 회사에 희망퇴직을 했고 1년이 지났다.퇴사 직후, 2024년의 시작은 고민과 설렘이 함께 공존했다. “개발자로써 지금 잘하고 있는 걸까?”“퇴사를 선택한 것은 좋은 선택이었을까?”“올해는 내 자신이 더 성장할 수 있을까?”등등..1. 생활여행여러가지 복합적인 생각을 하며 1월에 제주도로 계획없이 여행을 떠났다.제주도 가면서 저가비행 위주로 탑승하였고 이번에 처음으로 아시아나를 타봤는데 확실히 달랐다. 앞 의자에 스크린이 있었고, 비행시간이 짧은데도 쥬스를 챙겨주었다. 제주도 비행하면서 쥬스를 처음 먹어봤다..(진에어, 티웨이, 제주항공 등등.. 제주도가면서 쥬스를 먹은적이…?)제주도에 도착하자 먹으러 갔.. 2025. 1. 3.
DTO는 어느 레이어까지 사용하는 것이 좋을까? 목차개요[AS-IS] Controller ↔ Service 레이어간 동일한 DTO[To-Be] Controller ↔ Service 레이어간 각각의 DTO결론1. 개요DTO(Data Transfer Object)는 레이어 계층 간 데이터를 전송하는데 사용되는 객체로 많은 사람들이 사용하고 있다. 이유는 다음과 같이 간단하다.DTO를 이용해 각 계층이 필요한 데이터만 전달 받아 처리할 수 있다.시스템의 결합도를 낮추고 유지보수성을 향상시킨다.따라서, “DTO를 사용할 때 어느 레이어까지 사용하는 것이 좋을지”에 대해서는 프로젝트 과정에서 반드시 고려해야 할 요소이다. 이를 통해 개발자는 유연하고 확장 가능한 시스템을 구축하고 더 나은 서비스를 제공해 줄 것이다.이번에 게시글을 작성하면서 DTO에 대한 레이.. 2024. 12. 29.
[IntelliJ] Dependency Analyzer & Dependency Diagram 의존성 확인하기 목차개요Dependency AnalyzerDependency Diagram1. 개요프로젝트를 진행하면서 코드리뷰를 달던 중에 spring-boot-starter-web 이 spring-boot-starter을 따로 추가한 코드를 보고 다음과 같이 댓글을 달았다. 댓글 답변과 같이 spring-boot-starter-web 의존성이 spring-boot-starter를 가지고 있기에 spring-boot-starter-web 의존성만 가지고 있어도 충분하다.이 리뷰를 계기로 “IntelliJ내에서 디펜던시의 종속 관계를 알아보는 방법이 없을까” 라고 생각했고 알아봤던 내용을 작성해보려고 한다. IntelliJ가 의존성을 어떻게 분석하는데 도움이 될 수 있는지 살펴보자.2. Dependency Anal.. 2024. 12. 4.
파일마다 EOL(EndOfLine) 넣어야 하는 이유는 무엇일까? 목차개요EoL은 무엇인가?파일 마지막게 개행을 왜 해야할까?IDE 설정으로 해결하기.editorconfig 파일로 해결하기결론1. 개요프로젝트 진행중에 코드리뷰를 받았던 내용 중 다음과 같이 EoL을 설정해주는게 좋다는 리뷰를 받았다.예전부터 파일마다 개행을 넣어야 한다고는 들었으나, ‘왜 넣어야 하는지?’ 에 대한 의문만 가지고 관행적으로 넣었었다.이번 기회를 통해 무심하게 생각했던 내용에 대해서 정리해보려고 한다.2. EoL은 무엇인가?EOL(End Of Line)은 “줄의 끝” 이라는 의미로 주로 프로그래밍 파일 형식에서 운영 체제에 따라 서로 다른 방식으로 표현되어진다.3. 파일 마지막게 개행을 왜 해야할까?이유는 POSIX 기반의 규칙에 기반한다. 많은 프로그램이 이 규칙에 따라 구현되어 있으면.. 2024. 11. 29.