고전 보안 트라이어드. 솔로 개발자 대부분이 기본적으로 C ("새지 마") 신경 쓰고, 가끔 A ("크래시 나지 마") 생각하고, I ("아무도 데이터 조용히 안 바꿈") 는 거의 명시적으로 생각 안 해. 셋 다 명명하는 게 추론을 정직하게 유지해.
| 글자 | 속성 | 솔로 개발자 실패 | 방어 |
|---|---|---|---|
| Confidentiality | 승인된 눈만 데이터 봐 | 열린 admin; /static 의 로그; repo 의 .env | auth, HTTPS, 파일 권한, secret manager |
| Integrity | 데이터 변조 안 됨 | HTTP (S 없음) + 카페 = injected JS; SQL injection | HTTPS, parameterized query, signed 쿠키, hash |
| Availability | 필요할 때 서비스 쓸 수 있음 | 열린 Ollama 포트 = 누구나 VRAM DOS | rate limit, queue cap, backup, monitoring |
trade-off 는 진짜야
셋 다 공짜로 max 못 해; 각자 다른 둘에 비용 있어.
- C 더 = A 비용 — 더 엄격한 auth = 더 많은 마찰, 가끔의 lockout (네가 자기 lockout 시키는 게 availability 실패).
- A 더 = C 비용 — "어디서나 항상 로그인" 은 uptime 인식 max 인데 분실 디바이스 confidentiality 악몽.
- I 더 = A 비용 — 강한 audit logging 이 write 느리게; integrity check 가 read 느리게.
숨겨진 글자: Auditability
일부 실무자는 CIA 를 CIAA 로 확장 — 두 번째 A 가 auditability, *뭔 일 있었는지* 알 수 있는 능력. 솔로 작업한테는 "내 폰 없어진 거 알아챔" 과 "어떤 session 과 IP 가 언제 active 였는지 증명 가능" 의 차이. Track 8 의 admin dashboard 가 auditability layer.