며칠 전, Linux OS 상에서 알 수 없는 이유로 데이터가 정상 처리되지 않는 문제가 발생했습니다.
물론 로그를 찍고 분석하면 해결할 수 있었겠지만, 단기적인 처방일 뿐이라는 생각이 들었습니다.
“왜 이런 문제가 생긴 걸까?”
“지금의 개발 환경은 이 문제를 사전에 막을 수 있었을까?”
이런 고민을 하다 보니 자연스럽게, 지금 내가 작업하고 있는 개발 환경(Windows PC) 자체에 대해 다시 생각하게 되었습니다.
도커 이미지로 말아버리기?
“도커 이미지로 그냥 말아버릴까?”
최근 참석한 BMW 밋업에서 도커 관련 이야기를 자주 들었습니다.
그 영향인지 문득 이런 생각이 들었습니다.
리눅스에서 문제가 발생한다면, 내 프로그램도 리눅스 환경에서 실행되도록 만들면
좀 더 본질적인 문제 파악이 쉬울지도 모릅니다.
dotnet API 템플릿에는 도커 설정이 포함돼 있고,
데이터 저장은 도커 볼륨 마운트를 통해 관리할 수 있으니 충분히 가능하죠.
하지만 이건 지금의 "장애 해결"에만 집중한 접근일 수 있다는 생각이 들었습니다.
장기적인 방향은 맞지만, 아직은 그 타이밍이 아니다라는 결론을 내렸습니다.
DevContainer라는 또 다른 해법
그러다 문득 떠오른 게 DevContainer입니다.
2년 전 BMW의 Blazor 피자 워크샵에서 처음 들었던 기술이었죠.
최근 옆 팀(Node.js 기반)에서도 사용하는 걸 보고,
“이거… 다시 한 번 해볼까?” 라는 마음이 생겼습니다.
왜 DevContainer인가?
제 현재 문제는 다음과 같습니다.
“타 OS(Linux)에서 내 프로그램을 동일한 개발 환경으로 실행해보고 싶은데,
디버깅이 어렵고 이슈 재현도 쉽지 않다.”
DevContainer는 이런 고민에 꽤나 적절한 솔루션입니다.
- VS Code에서 Docker 기반 개발 환경을 만들 수 있고
- Windows에서 작업하면서도 Linux 기반의 컨테이너 환경에서 개발 가능
- 실제 서비스와 동일한 OS 환경에서 디버깅, 실시간 테스트 가능
즉, 개발환경 차이로 인한 이슈를 줄이고
문제 발생 시에도 더 빠르게 원인을 파악할 수 있게 됩니다.
앞으로는?
지금은 DevContainer로 내 개발 환경을 통일하는 데에 집중하고 있지만,
향후에는 도커 이미지 배포 → CI/CD 자동화까지도 확장할 계획입니다.
마무리하며…
긴 글 읽어주셔서 감사합니다.
혹시 비슷한 고민을 해보셨거나, 다른 접근 방식이 있으시다면 댓글로 이야기 나눠요! ![]()