분류 전체보기 14

ci cd와 배포 파이프라인

내 코드가 서비스가 되기까지 — CI/CD와 Docker 배포 파이프라인지금까지 우리는 프론트엔드, 백엔드, DB, 서버 인프라를 하나씩 배웠어요. 근데 정작 "내가 짠 코드가 어떻게 실제 서비스가 되는 걸까?" 하는 부분은 아직 안 다뤘죠? 오늘은 그 마지막 퍼즐 조각, CI/CD 파이프라인을 편하게 정리해볼게요.코드를 푸시하면 무슨 일이 벌어질까?개발자가 코드를 푸시하면, 그 안에는 두 가지가 같이 들어가요.비즈니스 코드: 실제 기능을 담은 코드테스트 코드: 그 기능이 제대로 동작하는지 검증하는 코드이 코드가 실제 서비스로 나가기까지, 크게 세 단계를 거쳐요. 빌드(CI) → 배포(CD) → 운영. 하나씩 따라가 볼게요.1단계: 빌드 (CI, Continuous Integration)**CI(Cont..

카테고리 없음 2026.09.21

서비스가 느려지지 않게 하려면 — CORS, 스케일링, 캐시 편하게 정리

서비스를 운영하다 보면 꼭 마주치는 문제들이 있어요. "왜 요청이 막히지?", "왜 갑자기 느려지지?" 오늘은 이런 문제를 해결하는 핵심 개념들 — CORS, 스케일링, 캐시를 편하게 정리해볼게요.CORS — 다른 주소끼리 대화하게 해주는 규칙**CORS(Cross Origin Resource Sharing)**는 주소가 다른 요청자랑 제공자끼리 통신이 되게 해주는 규칙이에요.예를 들어 a.com에서 실행되는 프론트엔드가 b.com에 있는 백엔드 API를 호출하려고 하면, 브라우저는 기본적으로 "어? 다른 주소인데?"라면서 막아버려요. 이때 CORS 설정을 해줘야 이 둘이 정상적으로 통신할 수 있게 돼요. 프론트엔드랑 백엔드를 따로 개발할 때 자주 마주치는 이슈라서 꼭 알아두면 좋아요.브라우저 캐시 — ..

카테고리 없음 2026.09.16

트래픽이 몰려도 안 죽는 이유 — 네트워크 아키텍처와 로드밸런싱

인기 많은 서비스는 사용자가 한꺼번에 몰려도 잘 버텨야겠죠? 그 비결이 되는 네트워크 구조랑 로드밸런싱을 오늘 편하게 풀어볼게요.3티어 구조 — 가장 기본이 되는 뼈대서비스를 만들 때 가장 기본이 되는 구조가 **3티어(3-tier)**예요. Frontend — Backend — DB WEB — WAS — DBWEB 서버: 정적 리소스를 가지고 있는 서버WAS(Web Application Server): 실제 로직을 처리하는 서버DB: 데이터가 저장되는 곳정적 리소스가 뭐냐면요정적 리소스는 변하지 않는 리소스를 말해요. HTML, JavaScript, CSS, 이미지나 영상 같은 것들이 여기 해당돼요. WEB 서버에서 이런 정적 리소스를 내려받아 화면에 표시하는 과정을 우리는 렌더링이라고..

카테고리 없음 2026.09.16

서버는 어떻게 진화해왔을까 — 베어메탈부터 컨테이너까지

우리가 만든 앱이 실제로 '사는 땅'이 있어요. 바로 서버, 그리고 그 서버들이 모인 인프라예요. 오늘은 서버가 시대별로 어떻게 발전해왔는지, 그리고 인프라의 기본 구성 요소들을 편하게 정리해볼게요.백엔드 레이어, 이름부터 알아두기본격적으로 들어가기 전에, 백엔드 코드를 나눌 때 쓰는 레이어 이름부터 짚고 갈게요.비즈니스 로직 계층 — services데이터 접근 계층 — repositories프레젠테이션 계층 — api, controller이렇게 역할별로 이름을 나눠두면 코드를 볼 때 "아, 이건 DB 접근하는 부분이구나", "이건 실제 로직 처리하는 부분이구나" 하고 딱 감이 오겠죠.서버는 어디에 있을까?서버를 보관하는 곳을 **렉(Rack)**이라고 불러요. 그 안에 트레이처럼 생긴 게 바로 서버예요..

카테고리 없음 2026.09.16

프론트랑 백엔드는 어떻게 대화할까 — API와 REST 편하게 정리

데이터베이스에 데이터가 아무리 잘 저장돼 있어도, 프론트엔드(화면)랑 백엔드(서버)가 서로 대화할 방법이 없으면 소용없겠죠? 그 대화 규칙이 바로 API예요. 오늘은 API랑 REST를 편하게 풀어볼게요.API가 뭐냐면요**API(Application Programming Interface)**는 백엔드한테 요청하기 위한 규약이에요. "이렇게 물어보면 이렇게 답해줄게"라는 약속이라고 보면 돼요.API 주소는 이렇게 생겼어요 /api/[{version}]/{documents}/{document}예를 들면 이런 식이에요. /api/v1/users/1API 주소를 지을 때 원칙이 하나 있어요. 주소는 명사형으로 짓는다는 거예요. 동사형(예: /api/getUser)보다는 명사형(/api/users/1)으로 지..

카테고리 없음 2026.09.16

데이터는 다 어디에 저장될까 — 데이터베이스 기초 편하게 정리

앱이든 웹사이트든 결국 데이터를 어딘가에 저장해야 하죠. 오늘은 그 "어딘가"에 해당하는 데이터베이스에 대해 편하게 알아볼게요.데이터베이스가 뭐냐면요데이터베이스는 말 그대로 데이터가 저장되는 곳이에요. 근데 데이터 성격에 따라 저장 방식이 여러 가지로 나뉘어요. 하나씩 볼게요.1. 관계형 데이터베이스 (RDB) — 가장 흔한 방식**RDB(Relational Database)**는 데이터를 테이블(표) 모양으로 저장하는, 제일 흔하게 쓰이는 방식이에요. 테이블끼리 서로 관계를 맺을 수 있어서 '관계형'이라는 이름이 붙었어요.이 RDB에서 데이터를 CRUD(생성·조회·수정·삭제)하려면 **SQL(Structured Query Language)**이라는 정형화된 문법을 써요.대표적인 관계형 데이터베이스 제품..

카테고리 없음 2026.09.16

IT 기초개념 리소스관리와 객체지향

개발자들이 항상 하는 말 — 리소스 관리, 프레임워크, 객체지향 기초 편하게 정리이번 편은 AI보다는 좀 더 넓은 IT/개발 기초 개념들을 정리해볼게요. 개발자랑 얘기하다 보면 자주 듣게 되는 용어들이라, 알아두면 대화가 훨씬 편해질 거예요.리소스는 어떻게 관리될까?소프트웨어 개발에서 코드나 파일 같은 자원(리소스)은 보통 이런 계층으로 관리돼요. registry (전체 저장소) └ organization (조직/그룹) └ repository (저장소, 프로젝트 단위) └ branch/version/tag (리소스 성격에 따라 이름이 달라짐)가장 큰 단위인 registry부터 시작해서, 그 안에 organization(조직)이 있고, 그 안에 다시 repository(저장소)가..

카테고리 없음 2026.09.08

hook 심화와 프롬프트 인젝션 방어

AI 작업에 브레이크 달기 — Hook 이벤트 종류랑 프롬프트 인젝션 방어법 전에 플러그인 얘기하면서 "Hook은 특정 이벤트가 발생했을 때 자동으로 실행되는 프로그램"이라고 살짝 언급했었죠? 오늘은 그 Hook을 좀 더 깊게 파보면서, AI 작업 중간중간 어떻게 '브레이크'를 걸 수 있는지 알아볼게요.먼저, command랑 Hook 차이부터command는 스킬의 구버전이라고 생각하면 돼요. 그럼 Hook은 뭐냐면요, 특정 이벤트가 발생했을 때 어떤 처리를 하는 프로그램이에요.여기서 중요한 포인트! Hook은 룰 기반의 결정론적 처리기예요. 이게 무슨 말이냐면, AI처럼 상황 봐가면서 판단하는 게 아니라, "이 조건이면 무조건 이렇게 처리해"라고 딱 정해진 대로 움직이는 코드라는 거예요. 예전 글에서 다..

카테고리 없음 2026.09.08

리눅스 cli 기초

터미널이 처음이라면 — 리눅스 CLI 기초 명령어 편하게 정리AI 도구들(클로드 코드 등)을 제대로 다루려면 터미널(명령줄) 사용법을 좀 알아야 해요. 처음엔 낯설게 느껴지겠지만, 몇 가지 명령어만 알아도 충분히 시작할 수 있어요. Git Bash로 리눅스 명령어랑 슬슬 친해져 봐요!CLI가 뭐냐면요**CLI (Command Line Interface)**는 마우스로 클릭하는 대신, 터미널 명령줄에 글자를 입력해서 컴퓨터랑 소통하는 방식이에요.명령어의 기본 구조claude [options] [command] [prompt]파라미터(prompt): 명령을 수행하기 위한 추가 정보 (arguments라고도 불러요)options: - 또는 --로 시작하는 부가 옵션-: 자주 쓰는 명령의 축약형 (예: -c, ..

카테고리 없음 2026.08.13

스킬 서브 에이전트 플러그인

반복 작업 좀 편하게 하고 싶어서 — 스킬, 서브 에이전트, 플러그인매번 똑같은 형식의 프롬프트를 새로 쓰는 거, 진짜 비효율적이죠. 오늘은 자주 하는 작업을 재사용 가능한 형태로 만드는 세 가지 방법 — 스킬, 서브 에이전트, 플러그인을 편하게 정리해볼게요.스킬(Skill)이 뭐냐면요스킬은 자주 반복해서 쓰는 프롬프트를 하나의 단위로 만들어서 편의성을 높인 거예요. 스킬을 만들 때는 특정 프로젝트에서만 쓰기보다, 다른 프로젝트에서도 재사용할 수 있게 범용적으로 만들어두면 훨씬 편해요.스킬의 구조: Frontmatter + 본문스킬 파일은 크게 두 부분으로 나뉘어요.Frontmatter (설정 칸): 이 스킬을 언제 쓸지, 어떤 기능을 하는지 요약 정보를 적는 곳이에요. 특히 description(설명)..

카테고리 없음 2026.08.11