본문으로 건너뛰기
코드룸CODE ROOMTENMO ↗

기술 블로그

웹과 앱을 만들며 남긴 기록 447편입니다.

Pull Request란? 협업과 코드 리뷰의 핵심

Pull Request란 무엇인가요? Pull Request(PR)는 GitHub에서 개발자들이 새로운 코드를 기존 코드베이스에 병합(Merge)하기 전에 팀원들에게 변경 사항을 검토하고 피드백을 제공받을 수 있는 기능입니다. PR은 협업 개발 환경에서 코드 품질을 높...

Docker와 GitHub를 이용한 CI/CD 파이프라인 구축 가이드

1. Dockerfile 작성 프로젝트 루트에 Dockerfile을 생성합니다. 일반적으로 Dockerfile은 확장자를 사용하지 않습니다. 즉, 파일 이름은 단순히 Dockerfile 이 됩니다. FROM node:14 WORKDIR /app COPY package*...

git push origin, Origin이란 무엇이고, 왜 사용하는가?

origin 이란 무엇인가요? origin 은 Git에서 원격 저장소(remote repository)에 대한 기본 이름입니다. 로컬 저장소(local repository)를 처음으로 클론(clone)할 때, Git은 원격 저장소를 origin 이라는 이름으로 자동으로...

Git 협업을 위한 브랜치 네이밍 규칙

Naming Convention이란? Naming Convention(네이밍 컨벤션)은 코드에서 변수, 함수, 클래스, 파일 이름 등을 일관되게 작성하기 위해 정해진 규칙을 의미합니다. 이는 코드의 가독성을 높이고, 팀 내에서 일관된 스타일을 유지하여 협업을 원활하게 ...

MongoDB Compass에서 자료 검색하기

MongoDB Compass에서 데이터를 검색할 때, 특정 패턴이 포함된 데이터를 찾는 경우가 자주 발생합니다. 이 문서에서는 정규 표현식을 사용하여 이러한 패턴을 찾는 방법에 대해 설명합니다. 1. 기본적인 쿼리 작성 일반적인 값 일치를 기반으로 문서를 찾기 위해서는...

Conflict란? Git에서의 충돌과 해결 방법

Conflict란 무엇인가요? Conflict(충돌)는 Git에서 두 개 이상의 브랜치가 동일한 파일의 동일한 부분을 서로 다르게 수정했을 때 발생하는 상황입니다. 이러한 충돌은 Git이 자동으로 병합(merge)할 수 없을 때 발생하며, 개발자가 수동으로 수정해야 하...

정적 분석이란? 코드 품질과 보안의 핵

정적 분석이란? 정적 분석(Static Analysis)은 프로그램을 실행하지 않고, 소스 코드나 바이너리 코드를 분석하여 잠재적인 버그, 코드 품질 문제, 보안 취약점을 발견하는 방법입니다. 이는 코드가 작성되거나 수정된 후에, 코드의 구조적, 문법적 오류를 조기에 ...

Merge란? Git에서의 통합 프로세스 이해하기

Merge란 무엇인가요? Merge는 Git에서 두 개 이상의 브랜치를 하나로 통합하는 과정입니다. 이는 다양한 개발자들이 개별적으로 작업한 코드를 하나의 통합된 코드베이스로 결합하는 데 필수적인 과정입니다. Git에서의 Merge는 협업 개발의 핵심이며, 여러 명의 ...

주요 정적 분석 도구에 대한 분석

1. SonarQube SonarQube 는 가장 널리 사용되는 정적 분석 도구 중 하나로, 30개 이상의 프로그래밍 언어를 지원합니다. 코드 품질, 보안 취약점, 코드 냄새 등을 자동으로 검토하고 리포트를 제공합니다. SonarQube는 CI/CD 파이프라인과 쉽게 ...

Docker Bridge 네트워크 가이드

Bridge 네트워크란? Bridge 네트워크는 Docker의 기본 네트워크 드라이버입니다. 이 네트워크는 같은 Docker 호스트 내에서 실행되는 컨테이너들이 서로 통신할 수 있게 해주는 소프트웨어 브리지를 생성합니다. 주요 특징: 컨테이너 간 격리 제공 호스트와 컨...

SonarQube란 무엇인가?

SonarQube는 오픈 소스 코드 품질 및 보안 분석 도구로, 소프트웨어 프로젝트의 소스 코드를 지속적으로 검사하고 분석하여 코드 품질을 개선하고 보안 취약점을 식별하는 데 도움을 줍니다. 다양한 프로그래밍 언어를 지원하며, 코드의 버그, 코드 냄새, 보안 취약점 등...

SEO를 위한 이미지 크롤링 최적화 가이드

1. 문제 상황 웹사이트의 /public/assets 폴더 내의 모든 이미지가 검색 엔진에 의해 크롤링되고 있습니다. 색인화가 불필요한 이미지까지 크롤링하기 때문에 경고로 표시 2. 목표 불필요한 이미지 크롤링 방지 중요한 이미지의 SEO 가치 유지 웹사이트 성능 최적...

Docker를 활용한 데이터 통합(공유)

분산된 마이크로서비스 아키텍처에서 다양한 서비스들이 동일한 데이터를 접근하거나 공유하는 상황이 빈번히 발생합니다. Docker를 활용하여 컨테이너 간 데이터를 효율적으로 공유하는 방법과 데이터베이스 공유와의 차이점에 대해 설명하겠습니다. 언제 사용하면 좋을까? 컨테이너...

Docker 볼륨과 데이터 관리

Docker 볼륨은 데이터를 효율적으로 관리할 수 있는 방법을 제공합니다. 1. Docker 볼륨이란? Docker 볼륨은 Docker 컨테이너 외부에서 데이터를 저장하고 공유할 수 있는 메커니즘입니다. 이는 컨테이너가 삭제되더라도 데이터가 유지될 수 있도록 도와줍니다...

[Clerk] Middleware를 사용하여 Next.js에 인증 통합하기

※ Clerk 5버전입니다. 기존 4버전과 달라졌습니다. Clerk Middleware 구성하기 프로젝트 루트 또는 src/ 디렉토리에 middleware.ts 파일을 생성하여 Clerk Middleware를 설정할 수 있습니다. ※ 아래 `middleware.ts` ...

Docker 네트워킹 및 포트 매핑 가이드

Docker 네트워킹이란? Docker 네트워킹을 이해하기 위해, 컨테이너를 아파트(호)로 생각하면 됩니다. 각 아파트(컨테이너)는 같은 건물(Docker 호스트) 안에 있지만, 서로 독립적인 공간입니다. 네트워킹은 아파트(호)들이 서로 소통하고, 외부(현관문)와 연결...

Docker 컨테이너 로그 확인 및 모니터링

컨테이너 관리를 위해서 로그 확인과 모니터링은 필수입니다. Docker 로그 확인 방법 1. docker logs 명령어 사용 Docker는 기본적으로 컨테이너의 표준 출력(stdout) 및 표준 에러(stderr) 스트림을 로그로 수집합니다. docker logs 명...

도메인 변경에 따른 리다이렉트 설정 가이드

Next.js 프로젝트에서 특정 URL 경로가 다른 도메인으로 변경되었을 때 사용자를 자동으로 새 도메인으로 리다이렉트시키는 방법에 대한 설명글입니다. 제거된 경로를 리다이렉트 시키는 것은 사용자 경험 향상에 도움이 됩니다. 1. 서버 리다이렉트 설정 서버 측에서 리다...

Next.js Routing이란? 페이지 네비게이션 가이드!

※ Next.js는 React 기반의 프레임워크로, 프론트엔드와 백엔드 기능을 모두 갖추고 있습니다. Next.js의 라우팅과 관련된 주제는 주로 프론트엔드와 관련이 있지만, 백엔드와의 상호작용도 고려할 수 있습니다. Next.js 14에서의 Routing 개요 Nex...

게슈탈트 이론으로 UI/UX 디자인 최적화하기

웹 개발과 디자인의 세계에서는 사용자의 경험을 향상시키는 것이 가장 중요합니다. 이를 위해 게슈탈트 이론은 매우 유용한 도구가 될 수 있습니다. 게슈탈트 이론의 주요 원칙을 살펴보고, 이를 웹 디자인에 어떻게 적용할 수 있는지에 대해 알아보겠습니다. 이러한 원칙들을 이...