
이 글은 인프런 강의 「백엔드 개발자를 위한 서버 보안 실무」의 일부를 입문자용으로 풀어 쓴 시리즈의 첫 글이에요.
처음으로 클라우드에 서버를 하나 띄웠다고 해 볼게요. 아직 도메인도 연결하지 않았고, 서비스를 아는 사람도 없습니다.
그런데 몇 분만 지나 인증 로그를 열어 보면 낯선 줄이 쌓이기 시작해요. root, admin, test 같은 흔한 계정 이름으로 로그인을 시도한 기록입니다. 사람이 아니라 전 세계를 쉬지 않고 훑는 자동화 도구가 두드리는 거예요.
공격자는 "이 회사가 유명한가"를 따지지 않습니다. 인터넷에 연결된 서버라면 누구든 대상이에요. 그리고 그 서버를 만든 사람은 대부분 보안 담당자가 아니라, 바로 우리 백엔드 개발자입니다.
뉴스에 나오는 대형 유출 사고는 복잡해 보이지만, 공격 경로를 따라가 보면 대개 네 칸으로 정리됩니다.

흥미로운 점은 이 네 칸이 대부분 코드와 설정의 문제라는 거예요. 퇴사자가 알던 서명키를 바꾸지 않았다거나, 한 계정이 하루에 수만 번 조회해도 아무 알림이 없었다거나요. 거꾸로 말하면, 네 칸 중 한 칸만 끊어도 피해는 크게 줄어듭니다.
게다가 사고 한 번의 비용도 계속 커지고 있어요. 개인정보 유출에 대한 과징금 기록이 연달아 깨지고 있고, 법도 중대한 위반을 더 무겁게 보는 방향으로 바뀌고 있습니다. 보안은 더 이상 "나중에 보안팀이 해 주겠지" 하고 미뤄 둘 항목이 아니에요.
방어하는 쪽은 보통 목록으로 생각합니다. 서버 몇 대, 포트 몇 개, 설정 몇 줄. 공격자는 경로로 생각해요. 어디로 들어와서, 무엇을 거쳐, 어디까지 갈 수 있는지를 봅니다.
그래서 이 시리즈는 내 서비스를 네 가지 칸으로 나눠 보는 것에서 출발해요.

집에 비유하면 입구는 현관문과 창문, 신뢰 경계는 택배를 받아 집 안으로 들이는 순간, 자산은 금고, 출구는 뒷문이에요. "열린 창문마다 왜 열려 있는지 설명할 수 있는가?" 이 질문 하나만 던져 봐도 생각보다 많은 빈칸이 보입니다.

서버의 기본 문을 닫는 것부터 시작해 코드, 데이터, 탐지와 대응 순서로 넓혀 갑니다.
| 편 | 주제 | 한 줄 요약 |
|---|---|---|
| 1 | 서버 하드닝 | 기본값이 제일 위험하다 |
| 2 | 입력 검증·인젝션 | 입력이 명령이 되는 순간 |
| 3 | SSRF | 서버의 손을 빌리는 공격 |
| 4 | 인증·인가 | 로그인 확인과 주인 확인은 다르다 |
| 5 | API 보안 | 응답과 브라우저 정책, 웹훅 |
| 6 | 데이터 보호 | 암호화는 어디서 하느냐가 중요 |
| 7 | 탐지·공급망 | 알림이 조용해도 안전하지 않다 |
| 8 | 클라우드·사고 대응 | 키 하나가 계정 전체가 될 때 |
| 9 | 72시간 반영 | 공지가 뜬 뒤의 운영 |
이런 분께 맞아요. 1~5년 차 백엔드 개발자, 보안팀 없이 서버를 직접 운영하는 작은 팀, "보안은 막연하게 어렵다"고 느끼는 분. 각 글은 명령어나 코드 없이 개념과 원리만으로 읽을 수 있게 썼어요.
강의에서는 이걸 직접 해 봅니다
「백엔드 개발자를 위한 서버 보안 실무」는 8개 섹션, 54개 수업으로 이 시리즈의 모든 주제를 실습 서버에서 직접 공격하고 고쳐 보는 강의예요.
- 실제 국내 대형 유출 사고를 공개 자료 기준으로 공격 경로를 따라 분석
- 내 서비스의 공격 표면 지도를 그리는 위협 모델링 실습
- Ubuntu·RHEL 서버, Spring Boot·Express 예제 서비스로 구성한 실습 환경
- 섹션별 체크리스트와 명령어 정리 자료
강의 보러 가기: https://inf.run/XvwyH