웹 서비스를 만들다 보면 항상 나오는 말이 있어요.
바로 “정적(Static)” 과 “동적(Dynamic)” 입니다.
이 두 가지 개념은 단순히 기술 용어를 넘어서, 서비스가 어떻게 배포되고, 어디에서 실행되고, 어떤 속도로 사용자에게 전달되는지를 결정짓는 중요한 요소예요.
정적 자원은 말 그대로 바뀌지 않는 파일을 의미합니다.
📦 이런 파일들은 한 번 빌드/업로드되면 내용이 바뀌지 않아요.
사용자가 요청하면 서버가 계산을 하지 않고, 그대로 파일만 전달해주면 끝!
👉 그래서 정적 자원은 보통 S3 같은 저장소에 넣고, CDN(CloudFront) 으로 전 세계 어디서든 빠르게 제공할 수 있어요.
(사용자가 서울에 있든, 미국에 있든, 가까운 CDN 엣지에서 바로 응답해줌)
동적 자원은 요청할 때마다 결과가 달라지는 데이터를 의미합니다.
예를 들어:
이런 요청들은 단순히 파일만 주는 게 아니라, 서버가 계산을 해서 결과를 만들어줘야 해요.
👉 그래서 동적 자원은 보통 서버(EKS, Node.js, Spring 등) 가 실행되는 리전에 고정되어 있고, 사용자의 요청은 항상 그 서버로 전달됩니다.
제가 개발한 프로젝트에서는 이렇게 나눠져 있어요 👇
동적 자원 (API, Keycloak 등)
정적 자원 (UI, JS/CSS/HTML 등)
| 구분 | 정적(Static) | 동적(Dynamic) |
|---|---|---|
| 예시 | JS, CSS, HTML, 이미지 | 로그인, DB 조회, 주문 처리 |
| 저장 위치 | S3, CDN | 서버(EKS, EC2 등) |
| 응답 방식 | 파일 그대로 전달 | 요청마다 계산 후 응답 |
| 속도 | 전 세계 어디서든 빠름 (CDN) | 서버 리전에 따라 지연 발생 가능 |
💡 결론