🎯 완료 후 할 수 있는 것
📋 커리큘럼
총 38개 모듈01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
🧪 실습 Labs
개념을 익혔다면 직접 손으로 해보는 시간. 서버에서 따라하고 verify.sh로 검증하세요.
Git 기본 흐름 — 커밋·브랜치·머지·충돌을 손으로
초급로컬에 저장소를 만들어 커밋을 쌓고, 브랜치를 갈라 작업한 뒤 머지하고, 일부러 충돌을 내서 해결한다. PR·리뷰·CI를 이해하기 위한 손의 기초를 만든다.
브랜치 전략 선택 — 우리 팀에 Git Flow가 맞나, Trunk가 맞나
중급팀의 배포 주기·규모·릴리스 방식을 진단해 Git Flow / GitHub Flow(트렁크 기반) / GitLab Flow 중 하나를 근거 있게 고르고, 브랜치 역할·수명·보호 규칙을 문서로 확정한다.
PR 코드리뷰 — 무엇을 보고 어떻게 승인·변경요청하나
중급PR을 리뷰 가능한 크기로 만드는 판단부터, diff를 보는 우선순위(정확성·경계조건 > 테스트 > 설계 > 가독성 > 스타일과 상시 보안 렌즈), 차단·제안을 구분한 존중하는 코멘트와 approve/request-changes 결정 기준까지 코드리뷰의 실무 기준을 세운다.
추정과 우선순위 — 스토리 포인트·RICE·MoSCoW
초급백로그 항목을 스토리 포인트로 상대 추정하고, RICE로 우선순위를 점수화해 정렬한 뒤, MoSCoW로 팀 용량에 맞는 이번 릴리스 범위를 근거 있게 확정한다.
릴리스 전략 — 블루그린·카나리·롤링과 기능 플래그
고급배포 리스크(롤백 속도 요구·트래픽 규모·상태 유지 여부·DB 마이그레이션 동반)를 진단해 블루그린 / 카나리 / 롤링 중 하나를 근거 있게 고르고, 에러율·지연 지표 게이트로 자동 롤백을 설계하며, 기능 플래그로 "배포"와 "릴리스"를 분리한다.
API 계약 설계 — 리소스·상태코드·버저닝·에러 형식
중급REST API의 리소스·메서드·상태코드를 설계하고, 일관된 에러 응답·페이지네이션·버저닝 규칙을 세운 뒤, 계약 우선(contract-first)으로 프론트·백이 합의하고 호환성 깨는 변경을 판단한다.
컴파일·빌드·런타임 — 빌드한다는 게 뭔가
초급"빌드 깨졌다", "런타임 에러다", "내 컴에선 되는데"라는 한 줄 알림을 정확히 해석한다. 소스에서 빌드 산출물, 실행까지의 단계를 구분하고, 각 용어가 무엇을 가리키는지 식별하며, 환경 차이로 생기는 실패를 어디서부터 봐야 하는지 판단한다.
프론트엔드·백엔드·렌더링 — 화면은 어디서 그려지나
초급요청 흐름에서 프론트엔드와 백엔드의 경계를 식별하고, 화면이 어디서 그려지는지(CSR·SSR·SSG)를 판단하며, 두 영역이 API로 어떻게 대화하는지를 정리해 "성능·보안 문제를 어느 쪽에서 고칠지"를 근거 있게 짚는다.
기술스택 해독 — 채용공고·아키텍처 문서를 읽는 법
초급채용공고와 아키텍처 문서의 기술스택 나열을 층위로 분해해 각 항목의 역할을 읽고, 요청 흐름을 텍스트로 재구성하며, 스택에서 팀 성격과 학습 우선순위를 근거 있게 판단한다.
SDLC — 기획에서 운영까지 산출물과 게이트 매핑
초급소프트웨어 생명주기(SDLC)의 각 단계에서 무엇을 만들고(산출물), 무엇이 있어야 다음 단계로 넘어가는지(게이트)를 매핑하고, 결함 비용이 뒤로 갈수록 커지는 원리로 앞 단계 게이트의 가치를 이해한 뒤, 팀 상황(순차형 vs 반복형)에 맞게 SDLC를 재단한다.
개발 조직의 역할 — 누가 무엇을 책임지나
초급프론트엔드·백엔드·PM·QA·DevOps·디자이너·데이터 역할이 각각 무엇을 산출하고 무엇을 책임지는지 구분하고, 역할 간 핸드오프 지점과 주고받는 산출물을 계약으로 정의한 뒤, RACI로 작업별 책임을 명확히 해 "누구 일도 아닌 일"과 "모두가 책임지면 아무도 책임 안 짐"을 없앤다.
스프린트 설계 — 백로그·계획·세리머니·벨로시티
중급제품 백로그를 INVEST로 정제하고 스프린트 목표를 한 문장으로 세워 스프린트 백로그를 확정한다. 4개 세리머니(계획·데일리·리뷰·회고)를 목적으로 설계하고, 벨로시티·번다운으로 흐름을 관리하되 벨로시티를 성과지표로 오용하지 않는 스프린트 운영 규칙을 문서로 확정한다.
방법론 선택 — 스크럼 vs 칸반 vs 워터폴
중급프로젝트의 요구 변동성·납기 확정성·규제/감리 여부·작업 흐름 특성을 진단해 스크럼 / 칸반 / 워터폴 중 하나를 근거 있게 고르고, 팀에 맞게 조정하며 "형식만 도입" 안티패턴을 경계한다.
요구사항 정의 — PRD·유저스토리·인수기준
중급모호한 한 줄 요구를 유저스토리(로서·원한다·왜냐하면)로 다시 쓰고, 인수기준(Given-When-Then)으로 "완료"를 검증 가능하게 정의하며, 범위·우선순위·가정·열린 질문까지 못 박아 요구를 글로 다스리는 미니 PRD를 완성한다.
로드맵과 이슈 트래킹 — 우선순위를 시간축과 보드에
초급팀의 로드맵을 now/next/later(또는 분기 테마)로 구성하고, 워크플로우를 반영한 이슈 보드(칼럼·WIP 제한·라벨·에픽)를 설계한 뒤, 로드맵 테마에서 에픽·이슈로 우선순위를 시간축과 보드에 연결한다.
CI/CD 파이프라인 설계 — 단계·게이트·배포 자동화
중급커밋에서 배포까지 흐르는 CI/CD 파이프라인을 설계한다. 단계(체크아웃·빌드·테스트·정적분석·아티팩트·배포)가 각각 무엇을 보장하는지 정하고, 통과 못하면 막는 품질 게이트를 걸고, 환경 승격·승인·자동 롤백까지 재현 가능한 흐름으로 확정한다.
시맨틱 버저닝 — 버전 숫자가 말하는 호환성
중급MAJOR.MINOR.PATCH가 무엇을 약속하는지 정하고, 변경을 등급으로 분류하는 규칙·의존성 범위(캐럿/틸드)와 lockfile 정책·배포 태그와 체인지로그 연결까지, 버전 숫자가 호환성을 신뢰성 있게 말하도록 버저닝 규칙을 설계한다.
모놀리식 vs 마이크로서비스 — 구조 선택
고급팀 규모·도메인 경계의 명확성·배포 독립성 요구·운영 성숙도를 진단해 모놀리식 / 모듈러 모놀리스 / MSA 중 하나를 근거 있게 고르고, 분해 경계와 그에 따르는 분산 트랜잭션·데이터 일관성·관측성 비용을 어떻게 관리할지 설계로 확정한다.
12-Factor App — 환경에 흔들리지 않는 앱의 원칙
중급설정을 코드에서 분리하고, 프로세스를 무상태로 만들며, 빌드·릴리스·실행 분리와 dev/prod 패리티로 배포를 일관되게 만들어, 어느 환경에 놔도 똑같이 도는 앱으로 12-Factor 관점에서 항목별 진단·정비한다.
동기 vs 비동기 — 메시지 큐와 이벤트 기반 구조
고급주문 흐름의 각 호출을 즉시 응답 필요·결합도·소요시간 기준으로 동기/비동기로 가르고, 비동기로 뺄 작업에 메시지 큐(재시도·DLQ·멱등성·순서)를 설계하며, 이벤트 기반 구조로 갈 지점과 그 대가(최종 일관성·복잡성)를 근거 있게 판단한다.
테스트 전략 — 피라미드·커버리지·무엇을 테스트하나
중급테스트를 어느 레벨(단위·통합·E2E)에 얼마나 둘지 피라미드로 설계하고, 무엇을 어느 레벨에서 테스트할지·커버리지의 의미와 함정·CI 연동과 플래키(불안정) 테스트 관리를 근거 있게 확정한다.
기술 부채와 리팩터링 — 보이지 않는 비용 다루기
중급기술 부채를 원인(의도적/우발적)과 형태(코드·설계·문서·테스트)로 식별해 백로그로 가시화하고, 영향×변경 빈도로 상환 우선순위를 세운 뒤, 양극단(전용 스프린트 vs 방치)을 피한 지속적 리팩터링 실행 전략을 문서로 확정한다.
SLO·에러버짓·포스트모템 — 신뢰성을 지표와 문화로
고급서비스 신뢰성을 SLI/SLO로 숫자로 정의하고, 에러버짓으로 기능 출시와 안정성의 갈등을 중재하며, blameless 포스트모템으로 장애를 학습으로 바꾸는 세 축을 근거 있게 설계한다.
용어 식별 — Backend / Java / Spring
초급백엔드 자바·스프링 실무 용어를 실제 장애 로그·대화 문구와 짝지어 식별한다. DB 접속·커넥션 풀(HikariCP), 스프링 핵심(DI·IoC·AOP·Bean)·계층 구조, 메모리·GC·배포 산출물(OOM·Full GC·WAR/JAR) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — DB / SQL / 데이터 처리
초급DB·SQL 현업 용어를 실제 증상·로그·대화 문구와 짝지어 식별한다. 트랜잭션·잠금, 성능(인덱스·실행계획·N+1), 가용성(복제·샤딩·백업) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — API / 연동 / 인증
초급API·연동·인증 현업 용어를 실제 에러 메시지·상태코드·대화 문구와 짝지어 식별한다. API 구조·형식(HTTP 메서드·직렬화), 인증·인가·브라우저 보안(토큰·CORS·CSRF·401/403), 연동 안정성(멱등성·레이트리밋·재시도·Webhook·폴링) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — Server / WAS / Linux 운영
초급서버·WAS·리눅스 운영 용어를 실제 증상·로그·명령과 짝지어 식별한다. Web Server·WAS·미들웨어, 프로세스·시그널·종료, 로그·자원한도·진단명령 세 묶음에서 "이 증상은 무슨 용어인가"를 가려낸다.
용어 식별 — 네트워크 / 보안
초급네트워크·보안 용어를 실제 증상·문구와 짝지어 식별한다. 접근제어(방화벽·NAT·주소), 로드밸런서·TLS, DNS·CDN·웹보안 세 묶음에서 "안 되는 이유가 무슨 용어인가"를 가려낸다.
용어 식별 — Docker / Kubernetes / 클라우드 네이티브
초급컨테이너·K8s 현업 용어를 실제 증상·로그·상태 이름과 짝지어 식별한다. 컨테이너·이미지(Image·Container·Registry·Volume), K8s 오브젝트(Pod·Deployment·Service·Ingress), 운영·상태(Probe·HPA·CrashLoopBackOff·OOMKilled) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — CI/CD / Git / 배포
초급Git·CI/CD·배포 현업 용어를 실제 배포 회의 문구·파이프라인 로그·장애 증상과 짝지어 식별한다. Git 흐름(브랜치·머지·리베이스·충돌·PR), 파이프라인·아티팩트(빌드·테스트·배포·롤백), GitOps·테스트(ArgoCD·동기화·테스트 종류) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — Observability / 장애 분석
초급관측성·장애 분석 현업 용어를 실제 알람·증상·에러코드와 짝지어 식별한다. 관측성 세 기둥(메트릭·로그·트레이스), 핵심 지표(에러율·p99·처리량), 장애 분석(HTTP 4xx/5xx·RCA·포스트모템) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — 대량 처리 / 배치 / 비동기
초급배치·메시지큐·비동기 처리 용어를 실제 증상·로그·대화 문구와 짝지어 식별한다. 배치(Chunk·스케줄러·Bulk), 메시지큐(Producer/Consumer·Partition·Consumer Group·lag), 전달 보장(멱등·DLQ·Backpressure·at-least-once) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — Cache / 성능 / 세션
초급캐시·성능·세션 현업 용어를 실제 증상·로그·대화 문구와 짝지어 식별한다. 캐시(히트/미스·TTL·무효화·스탬피드), 세션·연결(세션 외부화·스티키·풀링), 성능(병목·처리량·지연·부하 테스트) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — SaaS / 멀티테넌트 / 권한
초급SaaS·멀티테넌트·권한 현업 용어를 실제 제보·로그·대화 문구와 짝지어 식별한다. 테넌트·격리(멀티테넌트·격리·프로비저닝), 권한(인증·인가·RBAC·ABAC·접근제어), 차등 제공(기능 플래그·킬 스위치·화이트라벨) 세 묶음에서 "이 증상은 무슨 용어이고 얼마나 심각한가"를 스스로 가려낸다.
용어 식별 — 파일 / 문서 / 전자서명
초급파일·문서·전자서명 현업 용어를 실제 증상·요건 문구와 짝지어 식별한다. 파일 저장·전송(presigned·오브젝트 스토리지), 문서·형식·인코딩(PDF·UTF-8·Base64), 전자서명·무결성(해시·인증서·타임스탬프) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — Config / 환경 차이 / 운영 이슈
초급Config·환경 차이·운영 이슈 현업 용어를 실제 증상·로그·대화 문구와 짝지어 식별한다. 설정(환경변수·프로파일·시크릿·Feature Toggle), 환경 차이(dev/stg/prod·타임존·하위호환), 운영 이슈(핫픽스·config drift·rotate) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — 프론트엔드 / UX·UI
초급프론트엔드·UX/UI 현업 용어를 실제 증상·요청 문구·대화와 짝지어 식별한다. 코드·성능(번들·상태관리·CSR/SSR·hydration), UX 설계(와이어프레임·정보구조·A/B), UI·접근성(디자인시스템·토큰·a11y·i18n) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.
용어 식별 — 프레임워크 / 라이브러리 / 런타임 / SDK
초급개발자 기초 용어를 실제 대화·공고 문구와 짝지어 식별한다. 라이브러리 vs 프레임워크(주도권), 런타임(실행 환경), API vs SDK(규약과 키트) 세 묶음에서 "이건 무슨 용어인가"를 가려낸다.