채널톡 아이콘

실제 해킹 사고로 배우는 Spring Boot·Express 시큐어 코딩

AI로 자동화된 해킹 시대, 살아남는 개발자가 되는 실전 강의입니다. 오픈소스 쇼핑몰 코드에서 직접 취약점을 찾아 내고 한 건씩 막습니다. OWASP Top 10:2025 전체와 목록 밖 위험 20가지를 102개 수업으로 다루고, 취약점 37개를 모두 막은 최종 소스와 방어 부품·탐지 규칙·사고 대응 문서를 가져갑니다.

1명 이 수강하고 있어요.

난이도 초급

수강기한 무제한

해킹사고
해킹사고
시큐어코딩
시큐어코딩
owasp
owasp
개인정보보호
개인정보보호
해킹사고
해킹사고
시큐어코딩
시큐어코딩
owasp
owasp
개인정보보호
개인정보보호

수강 후 이런걸 얻을 수 있어요

  • 내 서비스 코드에서 OWASP Top 10:2025 열 항목과 목록 밖 위험 20가지를 찾아내는 눈

  • 취약점 37개를 모두 막은 쇼핑몰 최종 소스(내 서비스의 기준 코드로 사용)

  • 공격을 재연해 [레드]를 확인하고, 고친 뒤 [그린]과 시험 통과로 막혔음을 증명하는 습관

  • Spring Boot에서 소유권 검사·입력 검증·속도 제한·키 회전·시크릿 저장소를 직접 구현하는 능력

  • 공격 징후 로그와 Grafana 경보 규칙으로 유출을 일찍 알아채는 탐지 설계

  • 망 분리·이그레스 프록시·시크릿 저장소·불변 백업까지 구조를 바꾸는 제안서를 쓸 수 있는 근거

  • 유명 오픈소스(Spring Boot mall · Express EverShop)의 실제 결함을 찾아 고치며 키운, 남의 코드에서 취약점을 찾아내는 눈

  • 뉴스에 나온 사고를 보고 "우리 서비스라면 어디서 막나"를 30분 안에 정리하는 방법

  • 자동화된 공격(비밀번호 대입·봇·스캐너)의 패턴을 알고 미리 막아 두는 방법

  • 보안 리뷰·구조 제안·사고 대응까지, 시니어·리드로 레벨업하는 실무 경험과 면접에서 말할 수 있는 사례

  • 사고 대응 런북 6종, 점검·보고 양식 7종, 60문항 온라인 점검표, 교재 PDF

당신이 관리하는 사이트도, 지금 공격당하고 있습니다

[함께 읽으면 좋은 글]

- velog 연재 「해킹 방식 VS 방어 방법」: https://velog.io/@bumicklee/series/defense


인터넷에 열린 서버에는 자동화된 스캐너와 봇의 요청이 매일 들어옵니다. 로그인 페이지에는 유출된 비밀번호가 쉬지 않고 대입되고, 누군가는 주문 번호를 하나씩 바꿔 가며 남의 주문을 열어 봅니다.

문제는 공격이 오느냐가 아닙니다. 지금 이 순간에도 오고 있습니다. 진짜 질문은 세 가지입니다.

  1. 그 요청이 통하나요? 200이 돌아온 줄은 이미 뚫린 것입니다.

  2. 알아챌 수 있나요? 새벽 3시, 아무도 로그를 보고 있지 않습니다.

  3. 막혔다고 증명할 수 있나요? "고쳤습니다"가 아니라 시험 결과로요.

이 강의는 세 질문에 코드로 답합니다.


AI 해킹 자동화 시대, 살아남는 법

2026년 10월, 서울경찰청은 AI를 활용한 해커가 90여 곳에서 약 820만 건의 정보를 빼낸 연쇄 침해를 발표했습니다(수사 중이라 수치는 바뀔 수 있습니다).

AI가 새로운 마법을 부린 것은 아닙니다. 해커가 예전엔 못 찾던 약한 곳을 빨리 찾아 줄 뿐입니다. 자동화된 공격에도 패턴이 있고, 노리는 곳은 예전과 같습니다. 그 패턴을 알고 미리 막아 두면, AI가 아무리 빨리 찾아도 찾아낼 약한 곳이 줄어듭니다.

뉴스 속 해킹 사고, 우리 코드라면 어디서 터졌을까요?


SK텔레콤 유심 정보 유출, 쿠팡 3,367만 건 개인정보 유출, 티빙 접속키 노출, 롯데카드 해킹, GS리테일 크리덴셜 스터핑, 바이낸스 64억 달러.

사고 소식은 매주 들려옵니다. 그런데 기사를 아무리 읽어도 "그래서 내 코드에서는 어디를 고쳐야 하지?"라는 질문에는 답이 나오지 않습니다.

이 강의는 그 질문에 코드로 답합니다. 실제 오픈소스 쇼핑몰을 내 PC에 띄우고, 사고 22건이 이 코드의 어디서 터지는지 직접 재연합니다. 그리고 한 건씩 막고, 막혔는지 시험으로 확인합니다.

유명한 오픈소스도 안전하지 않습니다

이 강의는 장난감 예제가 아니라 GitHub 별이 수만 개인 실제 오픈소스 쇼핑몰로 실습합니다. Spring Boot 쇼핑몰 mall(별 8만 개 이상)과 Express 쇼핑몰 EverShop(별 1만 개 이상)입니다.

그런데 이 유명한 소스를 처음 점검하자 74건의 문제가 나왔습니다. Spring Boot 쪽 48건, Express 쪽 26건입니다. 그중에는 이런 치명적인 문제도 있었습니다.

  • 주문 번호만 바꾸면 남의 주문이 열린다

  • 로그인한 회원 누구나 「결제 완료」를 직접 찍을 수 있다

  • SMS 인증 번호가 API 응답에 실려 온다

  • 서명 없는 토큰도 통과한다

오픈소스를 가져다 쓰는 순간, 그 결함도 우리 서비스로 들어옵니다. 이 강의는 이 점검표를 따라 Spring Boot와 Express 코드를 한 건씩 고치며 방어 능력을 키웁니다. 남이 만든 코드에서 문제를 찾아내는 눈이 곧 내 회사 코드를 지키는 힘이 됩니다.(점검표에는 원본 코드에서 확인한 결함, 데모 기본 설정, 실습을 위해 더한 운영 설정 실수가 함께 들어 있습니다.)

Spring Boot와 Express, 모두 다룹니다


  • Spring Boot(본편): 15개 섹션 96개 수업에서 재연 → 수정 → 시험 → 탐지 로그까지 직접 손으로 고칩니다.

  • Express: 본편 수업마다 Express의 같은 자리 수정 diff를 보여 주고, Docker 없이 Node.js만으로 도는 Express 미니 실습 18개에서 같은 공격을 직접 막습니다. 섹션 16에서 설치부터 실습 한 바퀴까지 영상으로 따라 합니다.

  • 팀에 두 스택이 섞여 있어도 걱정 없습니다. 막는 원리는 같고, 같은 시험으로 막혔는지 확인합니다.

Express 개발자를 위한 추가 강의: 섹션 16

Express를 쓰는 분을 위해 섹션 16 「Express로 실습 시작하기」(6편)를 따로 만들었습니다. Docker도, DB 서버도 필요 없습니다. Node.js 24만 있으면 됩니다.

섹션 16을 마치면 Express 미니 실습 18개를 진행합니다. 본편과 같은 수업 번호로 남의 주문 조회, 열린 관리자 주소, 대량 할당, SSRF, SQL 인젝션, XSS, 비밀번호 대입, 토큰 수명, 기본 비밀 값, 오류 응답, 감사 기록, 로그 가리기, 쿠폰 동시 사용을 Express 코드로 직접 막습니다. 명령과 실제 결과는 「Express 따라하기 PDF」에, 원리와 수정 전후 그림은 「Express 초보자판 강의교재 PDF」에 정리해 드립니다.

Express 수업 영상은 공개 뒤에도 늘어납니다. 섹션 17 「Express로 막아 보기」(13편)와 섹션 18 「Express 사용자를 위한 보강」(4편: 미들웨어 순서, 비동기 오류, 쿠키와 세션, npm 의존성)을 업데이트로 더할 예정입니다. 영상과 확인은 macOS에서 했습니다.


해킹은 이제 뉴스가 아니라 개발자의 업무입니다


  • 사고가 나면 가장 먼저 불려 가는 사람은 그 코드를 만든 개발자입니다. 막아 본 경험이 있는 개발자와 없는 개발자의 차이는 사고가 난 날 드러납니다.

  • AI가 코드를 빨리 써 주는 시대일수록, 그 코드가 안전한지 판단하고 증명하는 능력이 개발자의 값이 됩니다. 이 강의는 그 능력을 손으로 익히는 시간입니다.

이런 고민, 있으신가요?


  • "보안을 공부해야 하는 건 아는데, 어디서부터 봐야 할지 모르겠어요." → 섹션 1에서 사고 지도와 위협 모델링으로 내 서비스에서 먼저 볼 곳을 정합니다.

  • "OWASP Top 10은 읽어 봤는데, 우리 코드에서 그게 어떻게 생겼는지 모르겠어요." → 장난감 예제가 아닙니다. GitHub 별 8만 개가 넘는 Spring Boot 쇼핑몰 mall을 포크한 「다온마켓」 코드를 회사 코드처럼 고칩니다.

  • "고치긴 했는데, 정말 막힌 건지 자신이 없어요." → 같은 공격 재연이 [레드]에서 [그린]으로 바뀌고, 수업 시험과 점수판이 숫자로 확인해 줍니다.

  • "사고가 나면 뭘 해야 할지 몰라요. 보안팀도 없고요." → 탐지 규칙, 경보 대응 런북, 첫 한 시간 절차, 개인정보 유출 신고 판단까지 직접 연습합니다.

이 강의를 마치면 손에 남는 것

강의를 끝까지 따라 하면, 듣고 끝나는 지식이 아니라 회사 서비스에 바로 가져갈 수 있는 결과물이 남습니다.

1. 취약점 37개를 모두 막은 쇼핑몰 최종 소스

시작할 때 점수판은 「취약 37개」입니다. 섹션을 하나씩 지날 때마다 숫자가 줄어, 마지막 수업에서 0개가 됩니다. 다 막은 최종 소스는 내 서비스의 기준 코드로 씁니다. 소유권 검사는 어디에 두는지, 시크릿은 어떻게 읽는지, 결제 콜백은 어떻게 멱등하게 처리하는지 막힐 때마다 열어 보는 참고서가 됩니다.

2. 회사 서비스에 넣는 방어 부품 secure-kit

수업에서 손으로 고친 방어 코드를 막을 내용별 부품으로 정리했습니다. Spring Boot는 스타터 의존성과 설정으로, Express는 미들웨어로 넣습니다. 필요한 부품만 골라 켜면 됩니다.

3. 유출을 일찍 알아채는 탐지 규칙

막는 코드와 함께 공격 징후 로그를 같이 심습니다. 남의 주문 조회 시도, 대량 조회, 내부 주소로 나가는 요청 같은 신호를 로그로 남기고, Grafana 대시보드와 경보 규칙으로 바꿉니다. 쿠팡 사고는 유출을 알기까지 몇 달이 걸렸습니다. 이 강의에서는 알아채는 시간을 줄이는 법을 배웁니다.

4. 구조를 바꾸자고 말할 수 있는 근거

코드만 고치지 않습니다. 앱과 DB만 있던 시작 상태(A0)에 게이트웨이, 망 분리, 이그레스 프록시, 시크릿 저장소(OpenBao), 로그 경보(Loki·Grafana), 불변 백업(MinIO)까지 하나씩 더해 A11까지 키웁니다. 회사에서 "구조를 이렇게 바꾸자"는 제안서를 쓸 때 그대로 근거가 됩니다.

5. 사고가 났을 때 꺼내 쓰는 문서

  • 경보가 울렸을 때 위에서부터 따라 하는 런북 6종(사고 첫 한 시간, 대량 조회, 소유권 거부, 감사 로그 무결성, 파트너 대량 내보내기, 경보 대응)

  • 양식 7종(공격 표면 지도, 최초 점검 보고서, 사고 30분 정리, 유출 신고 판단, 유출 통지문, 캡스톤 타임라인, 회고)

  • 60개 질문으로 내 서비스를 점검하는 온라인 점검표

6. 사고를 보는 눈

강의가 끝나면 뉴스에 새 사고가 나왔을 때 "우리 서비스라면 어디서 막았을까"를 30분 안에 정리할 수 있습니다. 사고 22건을 같은 틀(무엇이 무너졌나 → 우리 코드의 어디인가 → 어떻게 막나 → 어떻게 알아채나)로 반복해서 보기 때문입니다.

커리어에 남는 것: 기능만 만드는 개발자에서 서비스를 지키는 개발자로

  • 포트폴리오: 고친 코드, 최초 점검 보고서, 사고 분석 정리가 내 작업 기록으로 남습니다.

  • 면접 답변: "보안 사고를 어떻게 막나요?"라는 질문에 실제 사고와 내 코드로 답할 수 있습니다.

  • 다음 단계: 위협 모델링, 구조 제안, 사고 대응은 시니어와 리드에게 요구되는 역량입니다. 이 강의는 그 세 가지를 모두 연습합니다.

이 강의를 꼭 들어야 하는 이유: 지금, 당신을 레벨업할 때입니다

꼭 들어야 하는 이유는 세 가지입니다.

  1. 공격은 이미 자동화됐습니다. 봇과 AI는 쉬지 않고 약한 곳을 찾습니다. 패턴을 알고 먼저 막아 두는 쪽이 살아남습니다.

  2. 사고가 나면 가장 먼저 불려 갑니다. 그 코드를 만든 개발자가 원인을 설명하고 고쳐야 합니다.

  3. 지키는 능력이 몸값이 됩니다. AI가 코드를 써 주는 시대, 안전한지 판단하고 증명하는 개발자가 귀합니다.

수업 하나는 다섯 단계로 진행합니다

모든 실습 수업이 같은 순서라, 몇 편만 따라 하면 흐름이 몸에 익습니다.

  1. 사고와 원리: 실제 사고 한 장면으로 무엇이 무너졌는지 봅니다.

  2. 재연(레드): make replay로 우리 쇼핑몰에서 같은 공격이 통하는 것을 확인합니다. 화면에 [레드] 취약이 뜹니다.

  3. 막기: Spring Boot 코드를 직접 고칩니다. 고칠 자리는 코드 안에 표시되어 있습니다.

  4. 확인(그린): 같은 재연이 [그린] 막힘으로 바뀌고, 수업 시험이 모두 통과하는지 봅니다. 정상 사용자는 그대로 쓸 수 있는지도 함께 확인합니다.

  5. 탐지: 막은 자리에 보안 이벤트 로그를 심고, 재연을 다시 돌려 그 로그가 남는지 봅니다.

다루는 실제 사고 22건

공식 조사 결과와 보도를 기준으로, 사고마다 "우리 소스에서는 여기"를 짚습니다.

  • 국내: SK텔레콤 유심 정보 유출, 쿠팡 개인정보 유출과 서명 키, 티빙 접속키 노출, 롯데카드 해킹, GS리테일 크리덴셜 스터핑, KT 소액결제와 펨토셀, 예스24·SGI서울보증 랜섬웨어, 업비트 해킹

  • 해외: MOVEit SQL 인젝션, Snowflake 고객 계정 탈취, Microsoft Storm-0558 서명 키, M&S·Change Healthcare 헬프데스크 공격, Salesloft Drift 연동 토큰, 바이낸스·바이비트 서명 사고, 캐피타, 재규어 랜드로버, Cloudflare·AWS 장애 등

OWASP Top 10:2025 열 항목 전체와, 목록에 없지만 실제로 자주 터지는 위험 20가지(요청 밀반입, 캐시에 남는 남의 페이지, 쿠폰 동시 사용, 재시도 폭주, 카드 테스팅 등)도 모두 들어 있습니다.

구조까지 바꿉니다: A0에서 A11까지

다온마켓은 고객 앱, 관리자 앱, MySQL, MongoDB, Redis, RabbitMQ, MinIO로 이루어진 실제 쇼핑몰 구성입니다. 모두 Docker compose로 내 PC 한 대에서 돕니다. 섹션을 지날 때마다 이 구조에 방어 장치를 하나씩 더하고, 지도에서 무엇이 바뀌었는지 눈으로 확인합니다. 클라우드 계정은 필요 없습니다.

따라 하기 아주 쉽게 만들었습니다

보안 실습 강의에서 가장 많이 포기하는 이유는 "환경이 안 돼서"입니다. 그래서 따라 하기 쉽게 만드는 데 공을 들였습니다.

  • 아무 수업이나 그 시작 지점에서: make goto L=8-3 한 줄이면 앞 수업들의 정답이 적용된 8-3 시작 상태로 코드와 데이터가 바뀝니다. 앞 수업을 건너뛰어도 됩니다.

  • 다음에 칠 명령을 알려 줍니다: 며칠 쉬었다 돌아와도 make where가 지금 위치를, make next가 다음 명령을 보여 줍니다.

  • 안 될 때는 진단부터: make doctor가 Docker·메모리·디스크·설정·컨테이너를 점검하고 해결 방법을 한 줄씩 알려 줍니다.

  • 막히면 정답과 비교: make solution이 내 코드와 정답의 다른 줄을 보여 줍니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • Spring Boot나 Express로 API를 만들고 있는 1~7년 차 백엔드 개발자

  • 쇼핑·결제·포인트·회원 기능을 맡아 사고가 나면 가장 먼저 불려 가는 개발자

  • 보안 담당 없이 보안 리뷰와 점검 대응까지 맡게 된 개발 리드

  • 뉴스에 나오는 해킹 사고가 우리 코드에서는 어디인지 궁금한 분

  • 시큐어 코딩 점검 결과를 받았는데 코드로 어떻게 고칠지 막막한 분

선수 지식,
필요할까요?

  • Spring Boot 또는 Express로 간단한 API를 만들어 본 경험이 있으면 됩니다.

  • SQL의 SELECT·UPDATE를 읽을 수 있어야 합니다.

  • 터미널에서 명령을 실행할 수 있어야 합니다. Docker는 처음이어도 됩니다.

  • 보안 지식은 없어도 됩니다. OWASP와 사고 지도부터 섹션 1에서 함께 봅니다.

  • 본편 실습은 Docker·Python 3.11·make가 필요하고 메모리 16GB를 권장합니다. Express 실습은 Node.js 24만 있으면 됩니다.

안녕하세요
아프로 OG입니다.

커리어인증

IT 산업의 격변기였던 Y2K 시절, 서버 개발자로 첫발을 내디뎠다. 이후 다양한 업종의 현장에서 개발자와 인프라 엔지니어 역할을 넘나들며 기술의 기초부터 복잡한 인프라 생태계까지 온몸으로 체득했다. 수많은 시스템을 구축하고 다듬어온 경험을 발판 삼아, 최근에는 IT 보안 및 융합 기술 영역에서 새로운 가치를 만들어가고 있다.

커리큘럼

전체

103개 ∙ (8시간 27분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

아프로 OG님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

얼리버드 할인 중

월 ₩436,559

5개월 할부 시

25%

₩143,000

₩2,182,795

평생교육이용권 지원 강의