Springboot 프로젝트에 SonarCloud 적용하기
본 포스트는 아래의 환경을 기준으로 작성되었습니다. Springboot 3.0.1 Java 17 Gradle 7.6 정적 코드 분석 정적 코드 분석이란 단어 그대로 소스 코드를 실행하지 않고 정적으로 코드를 분석하는 것입니다. 소스 코드의 품질을 높이기 위해 잠재적인 버그나 코딩 컨벤션에 어긋난 부분을 찾는 것을 의미하는데요. 정적 코...
본 포스트는 아래의 환경을 기준으로 작성되었습니다. Springboot 3.0.1 Java 17 Gradle 7.6 정적 코드 분석 정적 코드 분석이란 단어 그대로 소스 코드를 실행하지 않고 정적으로 코드를 분석하는 것입니다. 소스 코드의 품질을 높이기 위해 잠재적인 버그나 코딩 컨벤션에 어긋난 부분을 찾는 것을 의미하는데요. 정적 코...
docker compose를 사용할 때 발생할 수 있는 문제 docker compose란, 여러 개의 컨테이너로부터 이루어진 서비스를 구축, 실행하는 순서를 자동으로 하여 관리를 간단히 할 수 있도록 제공하는 기능입니다. 즉, docker compose를 사용하면 여러 컨테이너를 함께 연결하여 구동시킬 수 있습니다! 그러나 docker compose...
본 포스트는 아래의 환경을 기준으로 작성되었습니다. Springboot 3.0.1 Java 17 Gradle 7.6 API 문서화 도구의 필요성 다른 개발 팀원분들과 원활히 협업하기 위해서 API 문서화는 필수죠?! API 문서화를 위해서는 도구를 사용하거나 개발자가 API에 대한 내용을 직접 작성할 수도 있습니다. 그러나 개발자가 직...
본 포스트는 아래의 환경을 기준으로 작성되었습니다. Node 16.15.1 mysql 5.7 지속적 통합: CI(Continuous Integration) (1) Dockerfile 작성하기 Docker image 생성을 위해 Dockerfile을 작성해 줍니다. FROM node:16.15.1 RUN mkdir -p /app WORKDI...
본 포스트는 아래의 환경을 기준으로 작성되었습니다. Redis 7.0 데이터베이스 쿼리가 아닌 Redis를 사용한 이유는? 속도 차이 !!! 단순하게 생각해보면 랭킹 기능은 DB에 저장된 데이터를 count 하여 구현할 수도 있습니다. 하지만 그렇게 하면 데이터 양이 증가할수록 count를 계산하고 결과를 가져오는 시간이 오래 걸리기 때문...
NestJS를 사용하는 프로젝트를 진행하다가 사용자의 경로 데이터를 저장해야 하는 상황이 생겨 공간 데이터를 사용하게 되었습니다. 공간 데이터 활용을 위해 공부했던 내용을 정리하고자 합니다. 본 포스트는 아래의 환경을 기준으로 작성되었습니다. typeorm 0.3.0 Mysql 5.7 공간 데이터베이스란? 공간 데이터베이스란 말 그대로...
본 포스트는 아래의 환경을 기준으로 작성되었습니다. typeorm 0.3.0 typeorm-tracsactional 0.1.1 Transaction이란? 우선 트랜잭션(Transaction)이란 무엇일까요? 트랜잭션이란 데이터베이스의 상태를 변경시키기 위해 수행하는하나의 작업 단위를 의미합니다. 예를 들어 게시물에 태그를 달 수 있는...