본문 바로가기

반응형

전체 글

(189)
GitHub Actions 동작 원리 — 액션, 잡, 러너, 샤드와 서버 배포(셀프 호스티드 러너, SSH) 한 줄 요약GitHub Actions는 이벤트가 생기면 잡을 대기열에 올리고, 조건에 맞는 러너가 그 잡을 가져가 실행하는 구조예요. 러너는 내 서버에 직접 설치할 수도 있고, GitHub 러너에서 SSH로 서버에 접속해 배포할 수도 있어요.1. 핵심 개념워크플로, 잡, 스텝의 기본 구성은 이전 글(GitHub Actions 기초)에서 다뤘어요. 이 글은 각 요소가 실제로 어떻게 맞물려 동작하는지에 집중해요.1.1 액션(Action)액션은 워크플로에서 반복되는 작업을 묶어 둔 재사용 가능한 작업 단위예요. 코드 내려받기, 언어 설치, 클라우드 인증 같은 일을 대신해요.GitHub 공식 문서는 직접 만드는 액션을 세 가지 형태로 구분해요.형태 설명JavaScript 액션러너에서 JavaScript 코드로 ..
hosts 파일과 DNS의 관계 — DNS에 등록한 IP 대신 hosts의 IP로 접속되는 이유 한 줄 요약컴퓨터는 도메인을 IP로 바꿀 때 내 PC의 hosts 파일을 DNS보다 먼저 확인해요. 그래서 hosts 파일에 적힌 IP가 있으면, DNS에 등록한 IP가 아니라 hosts의 IP로 접속돼요.1. 핵심 개념1.1 먼저 알아야 할 용어용어 한 줄 설명도메인(domain)사람이 기억하기 쉬운 서버 이름이에요 (예: example.com)IP 주소네트워크에서 컴퓨터를 찾는 실제 번호예요이름 해석(name resolution)도메인을 IP 주소로 바꾸는 과정이에요DNS도메인과 IP 정보를 전 세계에 나눠 저장하고 알려 주는 시스템이에요A 레코드DNS에 저장하는 "이 도메인은 이 IPv4 주소" 라는 정보예요hosts 파일내 PC 안에 도메인과 IP를 직접 적어 두는 텍스트 파일이에요리졸버(reso..
쿠버네티스(Kubernetes) 입문 — 도커와 무엇이 다른지 쉽게 정리 한 줄 요약쿠버네티스는 여러 서버에 걸쳐 컨테이너를 배치하고, 정해 둔 상태를 자동으로 유지해 주는 오픈소스 플랫폼이에요. 도커가 컨테이너를 만들고 실행한다면, 쿠버네티스는 많은 컨테이너를 운영하고 관리해요.1. 핵심 개념1.1 쿠버네티스란쿠버네티스 공식 문서는 쿠버네티스를 컨테이너화된 워크로드와 서비스를 관리하는, 이식성과 확장성을 갖춘 오픈소스 플랫폼으로 정의해요. 선언적 구성과 자동화를 지원해요.줄여서 K8s라고도 불러요. K와 s 사이에 글자가 8개라서예요.구글이 2014년에 오픈소스로 공개했어요.워크로드: 쿠버네티스 위에서 실행되는 애플리케이션이에요.선언적 구성: "어떻게 하라"가 아니라 "이런 상태여야 한다"를 적어 두는 방식이에요. 1.2 주요 기능공식 문서가 소개하는 쿠버네티스의 기능은 이..
배포 전략 비교 — 롤링, 블루-그린, 카나리 배포 차이 정리 한 줄 요약배포 전략은 새 버전을 사용자에게 내보내는 방식이에요. 한 번에 바꿀지, 나눠서 바꿀지, 일부에게 먼저 보여 줄지에 따라 위험과 비용이 달라져요.1. 핵심 개념 1.1 배포 전략이란배포 전략은 이전 버전에서 새 버전으로 트래픽을 옮기는 방법이에요. 같은 코드라도 어떤 배포 전략을 쓰느냐에 따라 서비스 중단 시간과 문제 발생 시 영향 범위가 달라져요.트래픽: 서비스로 들어오는 사용자 요청의 흐름이에요.롤백(rollback): 문제가 생겼을 때 이전 버전으로 되돌리는 작업이에요. 1.2 대표적인 배포 전략AWS 공식 문서 기준으로 정리하면 이래요.전략 설명일괄(All-at-once)모든 대상을 한 번에 새 버전으로 바꿔요롤링(Rolling)일부 서버씩 순서대로 새 버전으로 바꿔요블루-그린(Blue..
책 속의 지식이 삶의 희로애락으로 완성될 때 AI가 우리의 미래를 어떻게 바꿀지에 대한 영상을 보다가, 예전에 아버지와 나누었던 대화가 떠올랐다. 그래서 여기에 기록으로 남겨본다.우리는 그 어느 때보다 많은 정보와 지식을 접하며 살고 있다. 그런데 왜 우리는 여전히 직접 경험해보고 싶어 할까?당시 아버지는 내가 이해하기 쉽게 학문의 의미를 이렇게 정리해 주셨다. "누군가가 50년, 100년에 걸쳐 시행착오를 겪으며 배운 걸 정리해둔 것." 우리가 배우는 이유결국 우리가 배움을 이어가는 데는 두 가지 이유가 있다.개인적으로는 — 시행착오를 줄이고 삶을 더 효율적이고 실용적으로 살아가기 위해서.사회적으로는 — 타인이 겪은 경험을 빠르게 흡수해 전달하고, 그 위에 새로운 가치를 만들어내기 위해서. 학문의 세 갈래인간이 쌓아온 지식은 크게 세 갈래로 ..
피드백이 온다는 것 피드백은 보통 결과물이 나온 다음에 온다. 노력을 얼마나 했든 평가는 내놓은 걸 보고 이루어진다. 회사도 그렇고 어디든 비슷한 것 같다.물론 경험이나 직급에서 나오는 말도 있다. 그런데 그보다는 볼 게 생겼기 때문인 경우가 더 많다고 생각한다. 만드는 일과 말하는 일직접 만들어보면서 알게 된 게 있다. 백지에서 시작하는 일이랑, 이미 나온 걸 보고 말하는 일은 서로 다른 일이라는 것.어려운 문제일수록 한 번에 풀린 적이 없었다. 예외 상황은 어떻게 처리할지, 어디까지를 범위로 볼지 하나씩 정해가야 했다. 그렇게 내린 작은 결정들이 쌓여서 결과물이 된다. 그게 나오고 나서야 이야기가 오간다. 피드백이든 조언이든 지적이든 볼 게 있어야 나오는 말이다.반대로 말하면, 아무것도 안 만들면 평가받을 일도 없다. ..
Spring Boot 도커 배포 실습 — Dockerfile 작성부터 서버 실행까지 한 줄 요약Spring Boot 앱을 도커 이미지로 만들면 서버 환경과 상관없이 같은 방식으로 실행할 수 있어요. 공식 문서의 계층 추출 방식을 쓰면 이미지 캐시도 효율적으로 활용할 수 있어요.1. 핵심 개념 1.1 Spring Boot를 도커로 배포한다는 것Spring Boot 앱은 보통 실행 가능한 jar 파일 하나로 빌드돼요. 이 jar와 Java 실행 환경을 함께 이미지로 묶으면, 서버에 Java를 따로 설치하지 않아도 앱을 실행할 수 있어요.uber jar: 앱 코드와 모든 의존 라이브러리를 하나로 묶은 jar 파일이에요. Spring Boot가 기본으로 만드는 형태예요. 1.2 왜 계층(layer)을 나누나요Spring Boot 공식 문서는 uber jar를 그대로 이미지에 넣는 방식의 단점을..
GitHub Actions로 도커 이미지 빌드·푸시하기 — GHCR 자동 업로드 파이프라인 만들기 한 줄 요약GitHub Actions 워크플로를 만들면 코드를 push할 때마다 도커 이미지가 자동으로 빌드되어 GitHub Container Registry(GHCR)에 올라가요.1. 핵심 개념 1.1 무엇을 자동화하나요지금까지 손으로 하던 아래 과정을 GitHub Actions가 대신해요.코드 push → 이미지 빌드 → 태그 부여 → GHCR 업로드GitHub Actions의 기본 구성(워크플로, 잡, 스텝)은 이전 글에서, CI/CD 개념은 CI/CD란 무엇인가? 글에서 다뤘어요. 1.2 사용하는 공식 액션공식 문서 예시는 Docker가 제공하는 액션을 사용해요.액션 역할actions/checkout저장소 코드를 러너로 내려받아요docker/login-action레지스트리에 로그인해요docker/..

반응형