Docker를 2년간 모든 프로젝트에 써본 솔직한 후기

Docker를 2년간 모든 프로젝트에 써본 솔직한 후기

🤔 도커? 다커?

요즘 도커가 대세긴 대세다.

근데 재밌는 게 하나 있는데, 외국물 좀 먹은 사람들은 “다커”라고 하더라구요 ㅎㅎ Docker를 영어 발음대로 읽으면 “다커”가 맞긴 한데… 뭐 그냥 도커라고 부르면 된다. 한국에선 다 도커니까.

🔧 왜 도커를 쓰게 되었나

한 2년 전쯤부터 모든 프로젝트를 Docker 기반으로 제작하기 시작했다.

계기가 뭐였냐면… 프로젝트를 납품할 때마다 직접 서버에 가서 환경 세팅하는 게 너무 귀찮았던 거다. PHP 버전 맞추고, MySQL 버전 확인하고, 아파치 설정 만지고… 이걸 프로젝트마다 반복하고 있으니 현타가 오더라.

# 예전 납품 방식 (지옥)
ssh root@서버
apt-get install php7.2
apt-get install mysql-server
vi /etc/apache2/sites-available/000-default.conf
# ... 끝도 없는 설정

💡 써보니 이런 점이 좋았다

진입장벽이 낮다

도커의 가장 큰 장점은 진입장벽이 생각보다 낮다는 거다. Dockerfile 문법 자체가 직관적이라서 기존에 리눅스 명령어 좀 알면 바로 적응할 수 있다.

패키지화 배포가 편하다

이게 진짜 핵심인데, 몇 가지 스크립트만 만들어 놓으면 프로젝트 납품할 때 굳이 직접 갈 필요가 없다. 아무나 가서 몇 줄 타이핑만 하면 되니까.

# 지금 납품 방식 (천국)
docker-compose up -d

이 한 줄이면 끝이다. 웹서버, DB, 캐시 서버까지 전부 올라간다.

개발환경 통일

“내 컴퓨터에서는 되는데요?” 이 말 개발자라면 한 번쯤은 들어봤을 거다. 도커 쓰면 이 문제가 완전히 사라진다. 개발 환경이랑 운영 환경이 동일하니까.

⚠️ 단점은 없나?

가상화라는 단점이 존재하긴 한다. 네이티브 대비 약간의 성능 오버헤드가 있는 건 사실이다.

근데 장점에 비하면 미비한 수준이라… 특히 웹 서비스 돌리는 입장에서는 체감할 수준이 아니다.

한 가지 더 불편한 점은, 처음에 Dockerfile이랑 docker-compose.yml 작성하는 데 시간이 좀 든다는 거다. 근데 이것도 한 번 만들어 놓으면 계속 재사용하니까 초기 투자 비용이라고 생각하면 된다.

🎯 결론

Docker 안 써본 사람한테 하고 싶은 말이 있다면…

그냥 써봐라. 진입장벽 낮다. 한 번 맛보면 안 쓰던 시절로 못 돌아간다.

특히 프리랜서나 외주 개발 많이 하는 분들은 도커 도입하면 납품 프로세스가 확 줄어드는 걸 체감할 수 있을 거다. 난 2년간 써보고 확실히 느꼈다.