리액트 애플리케이션 도커파일 작성법

도커파일의 필요성 리액트 애플리케이션을 도커 컨테이너로 배포하면 다음과 같은 이점이 있다: 개발 환경과 운영 환경의 일관성 유지 빌드, 테스트, 배포 프로세스의 표준화 확장성과 유연성 향상 환경 변수 관리 용이성 기본 도커파일 구조 가장 단순한 형태의 도커파일은 다음과 같다. 1 2 3 4 5 6 7 8 FROM node:18 WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build EXPOSE 3000 CMD ["npm", "start"] 이 방식은 동작하지만 최적화되지 않았다. 이미지 크기가 크고 빌드 시간이 길다. ...

2월 17, 2025 · 2 분 · 389 단어 · In-Jun Hwang

도커 이미지 레이어의 이해

레이어의 개념과 구조 도커 이미지는 여러 개의 읽기 전용 레이어로 구성된다. 각 레이어는 도커파일의 명령어로 인한 파일 시스템의 변경사항을 저장한다. 이는 Git의 커밋과 유사하다. 변경된 내용만을 저장하여 효율성을 높인다. 도커는 유니온 파일 시스템을 사용하여 여러 레이어를 하나의 파일 시스템으로 마운트한다. 마지막 레이어 위에는 읽고 쓸 수 있는 컨테이너 레이어가 추가된다. 이는 마치 여러 장의 투명 필름을 겹쳐놓은 것과 같다. 레이어의 동작 방식 도커파일의 각 명령어는 새로운 레이어를 생성한다. 간단한 예시를 통해 살펴보자. ...

2월 17, 2025 · 3 분 · 451 단어 · In-Jun Hwang

리눅스 클러스터 4가지 유형

리눅스 클러스터 시스템은 기업과 연구소에서 폭넓게 활용되는 핵심 인프라다. 목적과 용도에 따라 크게 4가지로 분류되는데, 각 유형별 특징과 실제 활용 사례를 살펴보자. 클러스터 시스템이란? 클러스터 시스템은 여러 대의 컴퓨터를 네트워크로 연결해 하나의 시스템처럼 동작하게 만든 것이다. 고성능, 고가용성, 부하분산 등 다양한 목적으로 구축할 수 있다. 1. 고가용성(HA) 클러스터 365일 24시간 멈추지 않고 서비스를 제공해야 하는 기업의 핵심 시스템에서 사용된다. 주요 특징 장애 발생 시 자동으로 다른 시스템으로 전환된다 Active-Active 또는 Active-Standby 구성이 가능하다 실시간 모니터링으로 시스템 상태를 감시한다 구축 사례 금융권 코어뱅킹 시스템 전자상거래 플랫폼 기업 메일 서버 2. 베어울프 클러스터 일반 PC를 연결해 슈퍼컴퓨터급 성능을 구현하는 저비용 고성능 클러스터다. ...

2월 16, 2025 · 1 분 · 207 단어 · In-Jun Hwang

Golang 패키지 컨벤션

이 글은 Go 블로그의 “Package Names"과 여러 Go 패키지 컨벤션 자료들을 참고하여 작성했습니다. 패키지 컨벤션의 핵심 Go의 패키지 컨벤션은 디렉토리 구조나 아키텍처에 대한 엄격한 규칙을 제시하지는 않는다. 대신 다음과 같은 핵심 원칙들을 제시한다. 1. 책임 중심 패키지 구성 모든 타입을 interface나 model과 같은 하나의 패키지에 넣는 것을 지양한다. 대신 “Organize by responsibility” 원칙에 따라 각 도메인의 책임을 기준으로 패키지를 구성한다. 예를 들어: user 패키지: 사용자 관리 책임 order 패키지: 주문 관리 책임 2. 패키지 경로의 활용 Go는 패키지 경로 자체를 표현 수단으로 활용한다. 이는 여러 Go 공식 패키지에서도 확인할 수 있다: ...

2월 15, 2025 · 1 분 · 155 단어 · In-Jun Hwang

GitOps 배포 전략: Push vs Pull 완벽 비교

GitOps란? GitOps는 2017년 Weaveworks에서 처음 소개한 개념이다. 클라우드 네이티브 환경, 특히 Kubernetes 기반 시스템에서의 지속적 배포(CD)에 초점을 맞추고 있다. 모든 인프라 구성과 애플리케이션 설정을 코드로 관리하며, Git 저장소를 통해 이를 버전 관리한다. Push 방식의 배포 전략 Push 방식은 전통적인 CI/CD 파이프라인과 유사하게 작동한다. 주요 특징과 프로세스는 다음과 같다. 빌드 및 배포 프로세스 빌드 단계 개발자의 코드 Push로 CI 파이프라인이 시작된다 CI 서버에서 빌드, 테스트를 수행한다 컨테이너 이미지를 생성하고 레지스트리에 등록한다 배포 단계 ...

2월 14, 2025 · 2 분 · 315 단어 · In-Jun Hwang