📚 FDE · 세션 · 개발 기초 · L04

개발환경과 운영환경

작성일자 2026-07-28  ·  수정일자 2026-07-28  ·  강의차수 L04  ·  예상소요 20분

목표 운영환경(prod)과 개발환경(dev)이 왜 나뉘고 무엇이 다른지 이해한다.

1. 환경과 서버

앞 강의 '비밀키와 환경변수'에서 비밀키를 환경마다 따로 둔다고 했습니다. 그 '환경'이 무엇인지부터 봅니다.

'환경'은 추상적인 말처럼 들리지만, 사실 각 환경은 별도의 서버(24시간 켜 두는 컴퓨터)를 뜻합니다. 서비스는 보통 두 개의 환경, 즉 두 개의 서버로 나뉩니다. 개발용 dev 서버와 운영용 prod 서버입니다. 그리고 서버마다 설정과 데이터베이스를 따로 가집니다.

prod · 운영환경진짜 고객이 사용별도 서버 + 별도 데이터배포dev · 개발환경우리끼리 시험·확인별도 서버 + 별도 데이터

그래서 prod 에 쌓인 데이터와 dev 에 쌓인 데이터는 완전히 별개입니다. dev 에서 만든 시험용 주문은 prod 고객에게 보이지 않고, 그 반대도 마찬가지입니다. 이 점을 알면 개발할 때 자주 듣는 말이 이해됩니다.

"내 dev 에선 되는데 prod 에선 안 돼."

두 서버는 설정도, 데이터도 다르기 때문입니다. dev 에는 있던 파일이 prod 에는 없거나, dev 데이터로는 잘 돌던 코드가 prod 의 진짜 데이터에서는 걸릴 수 있습니다. 물론 실무에서는 이런 차이를 줄이려고 두 서버를 사양부터 설정까지 되도록 똑같이 맞춥니다. 그래도 쌓이는 데이터는 다를 수밖에 없고, 작은 차이까지 완벽히 없애기는 어렵습니다. 그래서 dev 에서 됐다고 prod 에서도 된다는 보장은 없습니다. prod 에 올린 뒤에는 반드시 prod 에서 다시 확인해야 합니다.


2. prod 와 dev 는 무엇인가

그럼 prod 와 dev 는 각각 어떤 곳일까요?

  • 운영환경(prod): 진짜 고객이 접속해 실제로 쓰는, 살아 있는 서비스입니다. 흔히 '프로덕션'이라고도 합니다. 여기가 멈추면 고객이 바로 영향을 받습니다.
  • 개발환경(dev): 우리가 코드를 짜고 시험하는 곳입니다. 망가져도 진짜 고객은 모릅니다. 우리끼리만 봅니다.

왜 굳이 둘로 나눌까요? 진짜 고객이 쓰는 prod 에서 바로 실험하면, 잘못될 때 그 피해가 고객에게 그대로 가기 때문입니다. 새 기능을 확인하려다 고객 주문이 사라지면 큰 사고입니다. 그래서 prod 는 함부로 건드리지 않고, 마음껏 고치고 되돌릴 수 있는 dev 를 따로 두어 거기서 확인한 것만 prod 에 올립니다.


3. 만들고 확인하고 올리는 흐름

새 기능을 반영하는 순서는 이렇습니다.

  1. dev 에서 개발: 새 기능이나 수정을 dev 에서 먼저 작성합니다.
  2. dev 에서 검증: 직접 실행해 의도대로 동작하는지 확인합니다.
  3. prod 에 반영: 검증이 끝난 것만 prod 에 올립니다.

3번, 즉 dev 에서 만든 것을 prod 로 옮겨 진짜 고객이 쓸 수 있게 하는 것을 배포라고 합니다. "이 기능 prod 에 배포했어"라는 말은 이제 고객이 그 기능을 쓸 수 있게 됐다는 뜻입니다.


오늘 정리 + 다음

  • 정리: 각 환경은 사실 별도의 서버라 설정도 데이터도 따로여서 "dev 에선 되는데 prod 에선 안 돼"가 생깁니다. prod 는 진짜 고객이 쓰는 운영환경, dev 는 우리끼리 시험하는 개발환경이고, 흐름은 dev 에서 만들고 확인한 뒤 배포로 prod 에 올리는 것입니다.
  • 흔한 함정: 급하다고 prod 에서 바로 고쳐 실수가 고객 피해로 이어지는 경우, 그리고 dev 에서만 고치고 배포를 잊어 "분명히 고쳤는데" 고객 화면은 그대로인 경우입니다. 실험은 dev 에서, 검증된 것만 prod 에 올립니다.
  • 다음 시간: 우리가 다루는 프로젝트 폴더를 실제로 열어, 그 안에 무엇이(코드·설정·자원) 들어 있는지 Django 프로젝트의 구조부터 살펴봅니다.
이 강의를 학습하셨나요?