강의PM·SRE를 위한 소프트웨어 엔지니어링
PM·SRE를 위한 소프트웨어 엔지니어링 트랙

개발자의 언어로 협업하는 PM·인프라 엔지니어

프레임워크·런타임 같은 개발 용어부터 애자일·CI/CD·아키텍처까지, 코드를 짜지 않아도 개발 조직과 통하는 리터러시를 다룹니다.

27시간📦 38개 모듈💬 한국어🆓 전체 무료초급 10중급 25고급 3
무료· 회원가입 없이 바로
📅 지속 업데이트 중
🎓 수료증 발급 예정
📱 모바일·태블릿 학습 지원

🎯 완료 후 할 수 있는 것

프레임워크·런타임·아키텍처 등 개발 용어를 이해하고 쓸 수 있다
애자일·스크럼·칸반 등 개발 프로세스를 설명할 수 있다
요구사항·견적·릴리스를 개발팀과 같은 언어로 논의할 수 있다
CI/CD·버전관리·코드리뷰의 흐름을 이해한다
백엔드·API·DB·관측성 용어를 맥락과 함께 안다

📋 커리큘럼

38개 모듈

01

[SW Eng] 프레임워크·라이브러리·런타임·SDK — 개발자 용어 구분하기초급
40

02

[SW Eng] 컴파일·인터프리터·빌드·런타임 — '빌드한다'는 게 뭔가초급
45

03

[SW Eng] 프론트엔드·백엔드·렌더링 — 화면은 어디서 그려지나초급
45

04

[SW Eng] 기술스택 읽기 — 채용공고·아키텍처 문서의 용어 해독초급
40

05

[SW Eng] SDLC — 기획에서 운영까지, 소프트웨어 생애주기 전체 지도초급
45

06

[SW Eng] 개발 조직의 역할 — 누가 무엇을 책임지나초급
40

07

[SW Eng] 애자일과 스크럼 — 스프린트·백로그·세리머니의 리듬초급
45

08

[SW Eng] 칸반 vs 스크럼 vs 워터폴 — 언제 무엇을 택하나중급
40

09

[SW Eng] 요구사항 정의 — PRD·유저스토리·인수 기준초급
45

10

[SW Eng] 추정과 우선순위 — 스토리 포인트·RICE·MoSCoW중급
45

11

[SW Eng] 로드맵과 이슈 트래킹 — 우선순위를 시간 축과 보드에 올리기중급
40

12

[SW Eng] Git 기본 흐름 — 커밋·브랜치·머지를 PM·인프라의 언어로초급
45

13

[SW Eng] 브랜치 전략 — Git Flow vs Trunk-based, 무엇을 택하나중급
40

14

[SW Eng] PR과 코드 리뷰 — 머지 전 품질 관문이 만드는 것중급
40

15

[SW Eng] CI/CD 파이프라인 — 머지부터 배포까지 자동화의 길중급
45

16

[SW Eng] 릴리스 전략 — 블루그린·카나리·롤링·기능 플래그중급
45

17

[SW Eng] 시맨틱 버저닝 — 버전 숫자가 말하는 호환성중급
40

18

[SW Eng] 모놀리식 vs 마이크로서비스 — 구조의 트레이드오프중급
45

19

[SW Eng] API와 계약 — REST·GraphQL·스키마로 서비스가 대화하는 법중급
45

20

[SW Eng] 12-Factor App — 환경에 흔들리지 않는 앱의 원칙고급
45

21

[SW Eng] 동기 vs 비동기 — 메시지 큐와 이벤트 기반 구조고급
45

22

[SW Eng] 테스트 전략 — 피라미드·커버리지·QA의 역할중급
45

23

[SW Eng] 기술 부채와 리팩터링 — PM이 이해해야 할 '보이지 않는 비용'중급
40

24

[SW Eng] SLO·에러버짓·포스트모템 — 신뢰성을 지표와 문화로고급
45

25

[SW Eng] 용어사전 — Backend / Java / Spring중급
50

26

[SW Eng] 용어사전 — DB / SQL / 데이터 처리중급
45

27

[SW Eng] 용어사전 — API / 연동 / 인증중급
45

28

[SW Eng] 용어사전 — Server / WAS / Linux 운영중급
45

29

[SW Eng] 용어사전 — 네트워크 / 보안중급
45

30

[SW Eng] 용어사전 — Docker / Kubernetes / 클라우드 네이티브중급
45

31

[SW Eng] 용어사전 — CI/CD / Git / 배포중급
40

32

[SW Eng] 용어사전 — Observability / 장애 분석중급
45

33

[SW Eng] 용어사전 — 대량 처리 / 배치 / 비동기중급
40

34

[SW Eng] 용어사전 — Cache / 성능 / 세션중급
40

35

[SW Eng] 용어사전 — SaaS / 멀티테넌트 / 권한중급
40

36

[SW Eng] 용어사전 — 파일 / 문서 / 전자서명중급
40

37

[SW Eng] 용어사전 — Config / 환경 차이 / 운영 이슈중급
40

38

[SW Eng] 용어사전 — 프론트엔드 / UX·UI초급
40

🧪 실습 Labs

개념을 익혔다면 직접 손으로 해보는 시간. 서버에서 따라하고 verify.sh로 검증하세요.

Labs 전체 보기 →

Git 기본 흐름 — 커밋·브랜치·머지·충돌을 손으로

초급

로컬에 저장소를 만들어 커밋을 쌓고, 브랜치를 갈라 작업한 뒤 머지하고, 일부러 충돌을 내서 해결한다. PR·리뷰·CI를 이해하기 위한 손의 기초를 만든다.

45📋 3단계💻 직접 환경

브랜치 전략 선택 — 우리 팀에 Git Flow가 맞나, Trunk가 맞나

중급

팀의 배포 주기·규모·릴리스 방식을 진단해 Git Flow / GitHub Flow(트렁크 기반) / GitLab Flow 중 하나를 근거 있게 고르고, 브랜치 역할·수명·보호 규칙을 문서로 확정한다.

55📋 3단계💻 직접 환경

PR 코드리뷰 — 무엇을 보고 어떻게 승인·변경요청하나

중급

PR을 리뷰 가능한 크기로 만드는 판단부터, diff를 보는 우선순위(정확성·경계조건 > 테스트 > 설계 > 가독성 > 스타일과 상시 보안 렌즈), 차단·제안을 구분한 존중하는 코멘트와 approve/request-changes 결정 기준까지 코드리뷰의 실무 기준을 세운다.

50📋 3단계💻 직접 환경

추정과 우선순위 — 스토리 포인트·RICE·MoSCoW

초급

백로그 항목을 스토리 포인트로 상대 추정하고, RICE로 우선순위를 점수화해 정렬한 뒤, MoSCoW로 팀 용량에 맞는 이번 릴리스 범위를 근거 있게 확정한다.

50📋 3단계💻 직접 환경

릴리스 전략 — 블루그린·카나리·롤링과 기능 플래그

고급

배포 리스크(롤백 속도 요구·트래픽 규모·상태 유지 여부·DB 마이그레이션 동반)를 진단해 블루그린 / 카나리 / 롤링 중 하나를 근거 있게 고르고, 에러율·지연 지표 게이트로 자동 롤백을 설계하며, 기능 플래그로 "배포"와 "릴리스"를 분리한다.

55📋 3단계💻 직접 환경

API 계약 설계 — 리소스·상태코드·버저닝·에러 형식

중급

REST API의 리소스·메서드·상태코드를 설계하고, 일관된 에러 응답·페이지네이션·버저닝 규칙을 세운 뒤, 계약 우선(contract-first)으로 프론트·백이 합의하고 호환성 깨는 변경을 판단한다.

55📋 3단계💻 직접 환경

컴파일·빌드·런타임 — 빌드한다는 게 뭔가

초급

"빌드 깨졌다", "런타임 에러다", "내 컴에선 되는데"라는 한 줄 알림을 정확히 해석한다. 소스에서 빌드 산출물, 실행까지의 단계를 구분하고, 각 용어가 무엇을 가리키는지 식별하며, 환경 차이로 생기는 실패를 어디서부터 봐야 하는지 판단한다.

45📋 3단계💻 직접 환경

프론트엔드·백엔드·렌더링 — 화면은 어디서 그려지나

초급

요청 흐름에서 프론트엔드와 백엔드의 경계를 식별하고, 화면이 어디서 그려지는지(CSR·SSR·SSG)를 판단하며, 두 영역이 API로 어떻게 대화하는지를 정리해 "성능·보안 문제를 어느 쪽에서 고칠지"를 근거 있게 짚는다.

45📋 3단계💻 직접 환경

기술스택 해독 — 채용공고·아키텍처 문서를 읽는 법

초급

채용공고와 아키텍처 문서의 기술스택 나열을 층위로 분해해 각 항목의 역할을 읽고, 요청 흐름을 텍스트로 재구성하며, 스택에서 팀 성격과 학습 우선순위를 근거 있게 판단한다.

45📋 3단계💻 직접 환경

SDLC — 기획에서 운영까지 산출물과 게이트 매핑

초급

소프트웨어 생명주기(SDLC)의 각 단계에서 무엇을 만들고(산출물), 무엇이 있어야 다음 단계로 넘어가는지(게이트)를 매핑하고, 결함 비용이 뒤로 갈수록 커지는 원리로 앞 단계 게이트의 가치를 이해한 뒤, 팀 상황(순차형 vs 반복형)에 맞게 SDLC를 재단한다.

45📋 3단계💻 직접 환경

개발 조직의 역할 — 누가 무엇을 책임지나

초급

프론트엔드·백엔드·PM·QA·DevOps·디자이너·데이터 역할이 각각 무엇을 산출하고 무엇을 책임지는지 구분하고, 역할 간 핸드오프 지점과 주고받는 산출물을 계약으로 정의한 뒤, RACI로 작업별 책임을 명확히 해 "누구 일도 아닌 일"과 "모두가 책임지면 아무도 책임 안 짐"을 없앤다.

45📋 3단계💻 직접 환경

스프린트 설계 — 백로그·계획·세리머니·벨로시티

중급

제품 백로그를 INVEST로 정제하고 스프린트 목표를 한 문장으로 세워 스프린트 백로그를 확정한다. 4개 세리머니(계획·데일리·리뷰·회고)를 목적으로 설계하고, 벨로시티·번다운으로 흐름을 관리하되 벨로시티를 성과지표로 오용하지 않는 스프린트 운영 규칙을 문서로 확정한다.

55📋 3단계💻 직접 환경

방법론 선택 — 스크럼 vs 칸반 vs 워터폴

중급

프로젝트의 요구 변동성·납기 확정성·규제/감리 여부·작업 흐름 특성을 진단해 스크럼 / 칸반 / 워터폴 중 하나를 근거 있게 고르고, 팀에 맞게 조정하며 "형식만 도입" 안티패턴을 경계한다.

50📋 3단계💻 직접 환경

요구사항 정의 — PRD·유저스토리·인수기준

중급

모호한 한 줄 요구를 유저스토리(로서·원한다·왜냐하면)로 다시 쓰고, 인수기준(Given-When-Then)으로 "완료"를 검증 가능하게 정의하며, 범위·우선순위·가정·열린 질문까지 못 박아 요구를 글로 다스리는 미니 PRD를 완성한다.

55📋 3단계💻 직접 환경

로드맵과 이슈 트래킹 — 우선순위를 시간축과 보드에

초급

팀의 로드맵을 now/next/later(또는 분기 테마)로 구성하고, 워크플로우를 반영한 이슈 보드(칼럼·WIP 제한·라벨·에픽)를 설계한 뒤, 로드맵 테마에서 에픽·이슈로 우선순위를 시간축과 보드에 연결한다.

45📋 3단계💻 직접 환경

CI/CD 파이프라인 설계 — 단계·게이트·배포 자동화

중급

커밋에서 배포까지 흐르는 CI/CD 파이프라인을 설계한다. 단계(체크아웃·빌드·테스트·정적분석·아티팩트·배포)가 각각 무엇을 보장하는지 정하고, 통과 못하면 막는 품질 게이트를 걸고, 환경 승격·승인·자동 롤백까지 재현 가능한 흐름으로 확정한다.

55📋 3단계💻 직접 환경

시맨틱 버저닝 — 버전 숫자가 말하는 호환성

중급

MAJOR.MINOR.PATCH가 무엇을 약속하는지 정하고, 변경을 등급으로 분류하는 규칙·의존성 범위(캐럿/틸드)와 lockfile 정책·배포 태그와 체인지로그 연결까지, 버전 숫자가 호환성을 신뢰성 있게 말하도록 버저닝 규칙을 설계한다.

45📋 3단계💻 직접 환경

모놀리식 vs 마이크로서비스 — 구조 선택

고급

팀 규모·도메인 경계의 명확성·배포 독립성 요구·운영 성숙도를 진단해 모놀리식 / 모듈러 모놀리스 / MSA 중 하나를 근거 있게 고르고, 분해 경계와 그에 따르는 분산 트랜잭션·데이터 일관성·관측성 비용을 어떻게 관리할지 설계로 확정한다.

55📋 3단계💻 직접 환경

12-Factor App — 환경에 흔들리지 않는 앱의 원칙

중급

설정을 코드에서 분리하고, 프로세스를 무상태로 만들며, 빌드·릴리스·실행 분리와 dev/prod 패리티로 배포를 일관되게 만들어, 어느 환경에 놔도 똑같이 도는 앱으로 12-Factor 관점에서 항목별 진단·정비한다.

50📋 3단계💻 직접 환경

동기 vs 비동기 — 메시지 큐와 이벤트 기반 구조

고급

주문 흐름의 각 호출을 즉시 응답 필요·결합도·소요시간 기준으로 동기/비동기로 가르고, 비동기로 뺄 작업에 메시지 큐(재시도·DLQ·멱등성·순서)를 설계하며, 이벤트 기반 구조로 갈 지점과 그 대가(최종 일관성·복잡성)를 근거 있게 판단한다.

55📋 3단계💻 직접 환경

테스트 전략 — 피라미드·커버리지·무엇을 테스트하나

중급

테스트를 어느 레벨(단위·통합·E2E)에 얼마나 둘지 피라미드로 설계하고, 무엇을 어느 레벨에서 테스트할지·커버리지의 의미와 함정·CI 연동과 플래키(불안정) 테스트 관리를 근거 있게 확정한다.

50📋 3단계💻 직접 환경

기술 부채와 리팩터링 — 보이지 않는 비용 다루기

중급

기술 부채를 원인(의도적/우발적)과 형태(코드·설계·문서·테스트)로 식별해 백로그로 가시화하고, 영향×변경 빈도로 상환 우선순위를 세운 뒤, 양극단(전용 스프린트 vs 방치)을 피한 지속적 리팩터링 실행 전략을 문서로 확정한다.

50📋 3단계💻 직접 환경

SLO·에러버짓·포스트모템 — 신뢰성을 지표와 문화로

고급

서비스 신뢰성을 SLI/SLO로 숫자로 정의하고, 에러버짓으로 기능 출시와 안정성의 갈등을 중재하며, blameless 포스트모템으로 장애를 학습으로 바꾸는 세 축을 근거 있게 설계한다.

55📋 3단계💻 직접 환경

용어 식별 — Backend / Java / Spring

초급

백엔드 자바·스프링 실무 용어를 실제 장애 로그·대화 문구와 짝지어 식별한다. DB 접속·커넥션 풀(HikariCP), 스프링 핵심(DI·IoC·AOP·Bean)·계층 구조, 메모리·GC·배포 산출물(OOM·Full GC·WAR/JAR) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — DB / SQL / 데이터 처리

초급

DB·SQL 현업 용어를 실제 증상·로그·대화 문구와 짝지어 식별한다. 트랜잭션·잠금, 성능(인덱스·실행계획·N+1), 가용성(복제·샤딩·백업) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — API / 연동 / 인증

초급

API·연동·인증 현업 용어를 실제 에러 메시지·상태코드·대화 문구와 짝지어 식별한다. API 구조·형식(HTTP 메서드·직렬화), 인증·인가·브라우저 보안(토큰·CORS·CSRF·401/403), 연동 안정성(멱등성·레이트리밋·재시도·Webhook·폴링) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — Server / WAS / Linux 운영

초급

서버·WAS·리눅스 운영 용어를 실제 증상·로그·명령과 짝지어 식별한다. Web Server·WAS·미들웨어, 프로세스·시그널·종료, 로그·자원한도·진단명령 세 묶음에서 "이 증상은 무슨 용어인가"를 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — 네트워크 / 보안

초급

네트워크·보안 용어를 실제 증상·문구와 짝지어 식별한다. 접근제어(방화벽·NAT·주소), 로드밸런서·TLS, DNS·CDN·웹보안 세 묶음에서 "안 되는 이유가 무슨 용어인가"를 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — Docker / Kubernetes / 클라우드 네이티브

초급

컨테이너·K8s 현업 용어를 실제 증상·로그·상태 이름과 짝지어 식별한다. 컨테이너·이미지(Image·Container·Registry·Volume), K8s 오브젝트(Pod·Deployment·Service·Ingress), 운영·상태(Probe·HPA·CrashLoopBackOff·OOMKilled) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — CI/CD / Git / 배포

초급

Git·CI/CD·배포 현업 용어를 실제 배포 회의 문구·파이프라인 로그·장애 증상과 짝지어 식별한다. Git 흐름(브랜치·머지·리베이스·충돌·PR), 파이프라인·아티팩트(빌드·테스트·배포·롤백), GitOps·테스트(ArgoCD·동기화·테스트 종류) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — Observability / 장애 분석

초급

관측성·장애 분석 현업 용어를 실제 알람·증상·에러코드와 짝지어 식별한다. 관측성 세 기둥(메트릭·로그·트레이스), 핵심 지표(에러율·p99·처리량), 장애 분석(HTTP 4xx/5xx·RCA·포스트모템) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — 대량 처리 / 배치 / 비동기

초급

배치·메시지큐·비동기 처리 용어를 실제 증상·로그·대화 문구와 짝지어 식별한다. 배치(Chunk·스케줄러·Bulk), 메시지큐(Producer/Consumer·Partition·Consumer Group·lag), 전달 보장(멱등·DLQ·Backpressure·at-least-once) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — Cache / 성능 / 세션

초급

캐시·성능·세션 현업 용어를 실제 증상·로그·대화 문구와 짝지어 식별한다. 캐시(히트/미스·TTL·무효화·스탬피드), 세션·연결(세션 외부화·스티키·풀링), 성능(병목·처리량·지연·부하 테스트) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — SaaS / 멀티테넌트 / 권한

초급

SaaS·멀티테넌트·권한 현업 용어를 실제 제보·로그·대화 문구와 짝지어 식별한다. 테넌트·격리(멀티테넌트·격리·프로비저닝), 권한(인증·인가·RBAC·ABAC·접근제어), 차등 제공(기능 플래그·킬 스위치·화이트라벨) 세 묶음에서 "이 증상은 무슨 용어이고 얼마나 심각한가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — 파일 / 문서 / 전자서명

초급

파일·문서·전자서명 현업 용어를 실제 증상·요건 문구와 짝지어 식별한다. 파일 저장·전송(presigned·오브젝트 스토리지), 문서·형식·인코딩(PDF·UTF-8·Base64), 전자서명·무결성(해시·인증서·타임스탬프) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — Config / 환경 차이 / 운영 이슈

초급

Config·환경 차이·운영 이슈 현업 용어를 실제 증상·로그·대화 문구와 짝지어 식별한다. 설정(환경변수·프로파일·시크릿·Feature Toggle), 환경 차이(dev/stg/prod·타임존·하위호환), 운영 이슈(핫픽스·config drift·rotate) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — 프론트엔드 / UX·UI

초급

프론트엔드·UX/UI 현업 용어를 실제 증상·요청 문구·대화와 짝지어 식별한다. 코드·성능(번들·상태관리·CSR/SSR·hydration), UX 설계(와이어프레임·정보구조·A/B), UI·접근성(디자인시스템·토큰·a11y·i18n) 세 묶음에서 "이 증상은 무슨 용어인가"를 스스로 가려낸다.

40📋 3단계💻 직접 환경

용어 식별 — 프레임워크 / 라이브러리 / 런타임 / SDK

초급

개발자 기초 용어를 실제 대화·공고 문구와 짝지어 식별한다. 라이브러리 vs 프레임워크(주도권), 런타임(실행 환경), API vs SDK(규약과 키트) 세 묶음에서 "이건 무슨 용어인가"를 가려낸다.

35📋 3단계💻 직접 환경