[AI] 개발자의 딥러닝 입문기 #1
개발자의 딥러닝 입문기 시리즈
웹 개발부터 IoT 데이터 파이프라인까지 다뤄 온 개발자가 딥러닝을 처음 배우는 과정을 기록합니다. 각 단계를 클릭하면 해당 포스팅으로 이동하실 수 있습니다.
- 개발 환경 준비와 numpy 기초
- 핵심: PyTorch 환경 구축 + “배열이 곧 데이터”라는 감각
- 주요 내용: venv/torch 설치, shape·axis·브로드캐스팅·정규화, 그리고 에러 없이 조용히 틀리는 첫 버그
-
PyTorch 기본 — 학습 루프 5줄이 전부 (예정)
-
CNN 과 오토인코더 — 라벨 없이 학습하기 (예정)
- 군집·시각화와 입문기 회고 (예정)
왜 시작했나
지반 투과 레이더 데이터를 분석하는 AI 프로젝트를 준비하게 되었다. 원시 신호와 단면 이미지를 학습해 지중의 이상 패턴을 찾는 것이 목표인데, 문제는 내가 AI 개발이 처음이라는 것이다.
Java/Node 백엔드와 React 프론트엔드, MQTT→Kafka 데이터 파이프라인과 AWS/Docker 인프라까지 두루 다뤄 왔지만, 텐서·학습 루프·과적합 같은 단어는 남의 세계 이야기였다. 그래서 무작정 코드부터 짜는 대신, 착수에 필요한 최소 지식을 정의하고 단계별로 검증하며 학습하기로 했다. 이 시리즈는 그 기록이다.
📌 일반 개발과 다른 세 가지 (멘탈 모델)
학습을 시작하기 전에 정리한, AI 개발이 기존 개발과 근본적으로 다른 지점이다.
| # | 차이 | 의미 |
|---|---|---|
| 1 | 로직을 코드로 쓰지 않고, 데이터에서 배우게 한다 | 지금까지는 규칙을 코드로 명세했다면, ML 은 입출력 예시를 주고 규칙을 모델이 찾게 한다. 코드 품질만큼 데이터 품질이 결과를 좌우한다 |
| 2 | 틀려도 에러가 나지 않는다 | 버그가 예외/크래시가 아니라 “그럴듯한 숫자”로 나온다. 데이터가 오염돼도 학습은 잘 돌고 지표는 오히려 좋아 보인다. 방어 습관(검증 분리, 시각화로 눈 확인)이 테스트 코드만큼 중요하다 |
| 3 | 실행이 비결정적이다 | 같은 코드를 두 번 돌리면 결과가 다르다(랜덤 초기화·셔플). seed 고정과 실험 기록이 git commit 같은 역할을 한다 |
특히 2번은 이 시리즈 2편에서 바로 실감하게 된다. 미리 말하자면 — 좌우 반전인 줄 알았던 코드가 색상을 뒤집고 있었다.
🗺️ 학습 로드맵 (Stage 0~6)
“필요한 만큼만” 배우는 것이 목표라, 딥러닝 전반이 아니라 첫 목표(오토인코더 기반 이상탐지)에 필요한 지식으로 범위를 좁혔다. 깊은 수학(역전파 유도 등)은 범위 밖이다 — “미분 = loss 를 줄이는 방향 찾기” 직관이면 충분하고, 계산은 프레임워크가 한다.
| Stage | 내용 | 소요 |
|---|---|---|
| 0 | 환경 준비 — venv, PyTorch 설치 확인 | 0.5h |
| 1 | numpy — 배열/shape/axis/정규화 | 0.5~1일 |
| 2 | PyTorch 기본 — Tensor, Dataset, 학습 루프 | 1일 |
| 3 | CNN 직관 — 수식 말고 그림으로 | 0.5일 |
| 4 | 오토인코더 실습(MNIST) — 본 프로젝트의 미리보기 ★ | 1일 |
| 5 | k-means/UMAP + 프로젝트 특화 함정 정리 | 0.5일 |
| 6 | (선택) 회귀·전이학습·MLOps — 나중에 | — |
총 3~5일(파트타임) 분량이다.
스스로 검증하는 학습법
각 Stage 에는 확인 과제가 있고, 과제 통과가 곧 완료 기준이다. 여기에 더해 AI 에이전트(Claude)에게 검증을 맡겼다:
- 산출물 점검 — 과제 코드·결과물이 요구를 충족하는가
- 실행 재현 — 코드를 직접 실행해 결과가 재현되는가
- 함정 리뷰 — 초보가 흔히 밟는 실수(데이터 누수, eval 모드 누락, seed 미고정 등) 코드 리뷰
- 이해 질문 — 암기가 아니라 원리를 확인하는 열린 질문 2~3개. 막히면 그 항목만 보충 후 재확인
혼자 공부할 때 가장 어려운 것이 “내가 제대로 이해했는지 모른다”는 점인데, 이 구조가 그 문제를 해결해 줬다. 실제로 2편의 버그도 이 검증 과정에서 잡혔다.
마무리
다음 편에서는 Stage 0~1 — 환경 구축과 numpy 기초를 다룬다. 그리고 “에러 없이 조용히 틀리는 버그”를 처음 만난 이야기도 함께.
댓글남기기