- DEVOCEAN 테크 세미나 후기: Docker를 활용한 효율적 개발 및 Docker Scout를 이용한 보안 전략2024년 11월 04일
- 주사위 clice
- 작성자
- 2024.11.04.:00
반응형안녕하세요! 데보션 영 활동을 하다보면 데보션에서 주최하는 세미나에 관한 소식을 자주 접할 수 있습니다.
데보션 내 사람들 뿐만 아니라 외부인에게도 열려있는 테크세미나니, 관심 있는 분들은 다음 세미나를 노려보세요!
지난번 있던 세미나는 어느덧 데보션 37차 세미나로, 주제는 ‘Docker를 활용한 효율적 개발 및 보안전략’ 이었습니다.
Docker는 현대 개발 환경에서 필수적인 도구로 자리잡았습니다.
세미나에서는 흔히 사용되는 Docker의 핵심 기능을 보다 효율적으로 사용하는 방법을 소개해주셨습니다.
또한 개발자들이 속도와 보안을 개선할 수 있는 구체적인 기법들을 배워보았고, Docker Scout와 Build Cloud 같은 최신 기능들을 탐구해 보는 시간을 가져보았습니다.
발표자님 소개
염근철 전문가님
- 현) 당근 SRE팀 소속
- 현) Docker Captain 🐳
- 프로젝트
SKHynix : 사내 머신러닝 대회 플랫폼(If-Kaggle) 개발
우리은행 : AI서비스 허브 개발
세미나 내용
Docker와 Docker File
도커 파일은 도커에 의해 개발된 핵심 요소로, 현재까지 지속적으로 개선되고 있다.
많은 사람들이 도커 파일을 당연하게 생각할 수 있지만, 이는 도커의 발전과 함께 지속적으로 변화해왔다.
다양한 오픈소스 도구(카니코(Kaniko)나 BuildKit 등)로 Docker File을 사용해 Container Image를 빌드할 수 있지만, 이러한 도구가 항상 도커의 최신 기능을 지원하는 것은 아니다.
또한, 이러한 도구들은 도커에 비해 이미지 빌드 속도가 느릴 수 있으므로 도커 파일의 기능을 최대한 활용하려면 도커 자체를 사용하는 것이 더 효율적이다.
도커 파일로 컨테이너 이미지를 만들기 위해 기본 이미지 설정, 파일 복사, 실행 명령어 등을 순서대로 작성하면 된다.
도커 파일 외에도 JIB와 같은 다른 방법으로 도커 이미지를 생성할 수 있지만, 도커 파일은 범용성과 편리성 덕분에 널리 사용되고 있다.
도커 파일 작성을 위해서는 빌드 속도와 보안을 고려하는 것이 중요하며, 최신 기능을 적절히 활용하는 Best Practice(효율적이고 안전한 컨테이너 이미지를 만들기 위한 최적화된 방법)를 따르는 것이 중요하다!
실시간 개발 환경 최적화: Docker Compose Watch와 Build Cloud 기능
Docker Compose Watch 기능은 로컬 파일의 변경 사항을 실시간으로 모니터링하여, 컨테이너가 재시작되거나 파일이 동기화될 수 있게 도와주는 기능이다.
발표자님은 이 기능을 실제 개발 환경에서 어떻게 사용할 수 있는지 직접적인 예시와 함께 보여주셨다.
Watch 기능을 활용하면 코드를 저장하는 즉시 변경 사항이 반영되어, 개발 생산성을 높이고 디버깅 과정을 단축시킬 수 있다.Compose Watch는 세 가지 중요한 옵션
1. Sync 옵션: 파일을 단순히 동기화하여 컨테이너 내부에 반영함
2. Rebuild 옵션: 지정된 파일이 수정될 때 컨테이너를 재구축
3. Restart 옵션: 변경된 파일을 반영하기 위해 컨테이너를 재시작
실습 예제: Compose Watch의 활용
실습에서는 requirements.txt 파일과 app.py 파일을 대상으로 Watch 기능을 적용하였다. requirements.txt 파일이 변경되면 패키지를 다시 설치하고 컨테이너를 재구축하는 동작을 설정했고, app.py가 수정될 경우, 해당 파일이 컨테이너 내부에서 실시간으로 반영되어 즉각적으로 변화를 확인할 수 있었다.
특히, 파일 저장만으로도 컨테이너가 즉각적인 반응을 보여주는 것은 전통적인 서버 환경보다 훨씬 빠르게 피드백을 받을 수 있어, 개발에 매우 유용하다고 다가왔다.
만약 개발자가 코드 수정 후 수동으로 컨테이너를 재시작해야 하는 번거로움을 없애고 싶다면, Watch 기능을 적극적으로 활용할 수 있을 것 같았다
Docker Build Cloud 기능
Docker Build Cloud는 로컬 환경이나 특정 서버에서 빌드를 실행하는 대신, Docker가 제공하는 클라우드 환경에서 빌드를 수행할 수 있도록 하는 새로운 기능이다.
이 기능을 활용하면, 로컬 자원을 사용하지 않고 클라우드에서 빠르고 효율적으로 빌드를 진행할 수 있으며, 빌드 캐시를 클라우드에 저장하여 빌드 시간도 크게 단축시킬 수 있다
Docker Build Cloud의 장점
1. 캐시 공유: 클라우드 환경에서 빌드를 수행하면서 로컬과 CI 환경 간의 캐시를 공유하여, 빌드 속도를 대폭 향상시킨다.
2.아키텍처 지원: ARM과 같은 다양한 아키텍처를 지원하여, 로컬에서 M1, M2 환경에서의 빌드도 문제없이 수행할 수 있다.
3. 비용 절감: 과금이 발생할 수 있지만, 실제 CI/CD 환경에서 많은 빌드가 필요하다면 비용 대비 시간 절약 효과가 클 것으로 기대할 수 있다
발표자님은 Docker Build Cloud를 CI/CD 환경에 쉽게 적용할 수 있는 방법도 소개해 주셨다. Git 저장소와 직접 연결하여 코드를 클론하고, 즉각적으로 클라우드에서 빌드를 수행함으로써 GitHub Actions 또는 Jenkins와 같은 도구와 통합해 사용할 수 있다. 이를 통해 회사와 팀이 구축한 클라우드 환경에 빌드 작업을 분산시켜 로컬 자원을 절약하고, 개발 환경의 일관성을 유지할 수 있다.
자원과 시간을 줄이는 것이 곧 비용을 줄이는 문제이기 때문에 이 점이 무척이나 매력적으로 다가왔다.보안을 위한 Docker Scout
Docker Scout는 도커 이미지 내 패키지에 대한 보안 취약점을 파악하고 관리할 수 있는 도구이다.
이 기능은 단독으로 취약점을 검사하는 스캐너라기보다, 여러 보안 스캐닝 도구에서 제공하는 취약점 정보를 종합하여, 개발자가 쉽게 이해하고 대응할 수 있도록 돕는 도구이다.
Docker Scout의 핵심 기능
- 오픈소스 취약점 관리: 오픈소스 컴포넌트의 취약점을 체계적으로 관리하여 보안성을 높인다.
- 통합 취약점 정보 제공: 다른 보안 도구의 데이터를 취합하여, 취약점에 대한 상세한 정보를 제공한다.
- CI/CD 통합 가능성: CI/CD 환경에 Docker Scout를 통합해 빌드 및 배포 단계에서 발생하는 보안 위협을 관리할 수 있다.
발표자님은 실제로 Docker Scout를 통해 취약점을 확인하는 예시를 보여주며, Scout를 CI 환경과 통합하면 빌드 프로세스에서 발생하는 보안 취약점을 자동으로 감지하고 관리할 수 있다고 강조하셨다. 특히, Scout를 CI 파이프라인에 추가하면, 취약점이 심각한 경우 빌드를 중단하여 문제를 미리 방지할 수 있는 점이 큰 장점이라고 언급하셨다.
추가 유용 기능: Docker Extension
Docker Desktop에서는 Extension 기능을 통해 다양한 도구를 설치하여 Docker를 더욱 확장해서 사용할 수 있다!
전문가님은 Log Explorer와 https://hub.docker.com/extensions/docker/disk-usage-extension Disk Usage Analyzer와 같은 확장 기능을 추천해주셨다
Log Explorer는 컨테이너에서 발생하는 로그 데이터를 실시간으로 모니터링하고 분석할 수 있는 기능을 제공한다. 이를 통해 특정 컨테이너에서 발생하는 문제나 에러 로그를 빠르게 파악하여 디버깅을 효율적으로 수행할 수 있다. 다양한 필터링과 검색 기능을 통해 필요한 로그만 선택적으로 확인할 수 있는 점도 큰 장점이다.Disk Usage Analyzer는 Docker에서 사용 중인 디스크 공간을 분석하고 관리할 수 있도록 도와준다.
이미지, 컨테이너, 볼륨이 차지하는 용량을 시각적으로 표현해주기 때문에 불필요하게 차지하고 있는 저장 공간을 쉽게 식별하고 관리할 수 있다. 이를 통해 Docker 환경의 디스크 사용량을 최적화할 수 있다.
또한, 발표에서는 여러 오픈소스 확장 프로그램을 직접 설치하고 사용하는 방법을 시연하며, 실제 개발자들이 일상에서 유용하게 사용할 수 있는 다른 도구들을 소개해주셨다.
후기
이번 세미나는 Docker의 고급 기능을 효과적으로 활용하여 개발 생산성을 높이는 방법을 배울 수 있는 매우 유익한 시간이었다. 발표 중간중간 실습을 통해 각 기능이 어떻게 작동하는지 명확하게 이해할 수 있었고, 발표자님이 실시간으로 질문에 답변해 주시고 여러 예시를 들어주셔서 더욱 몰입할 수 있었다.
이러한 기능들을 실제로 프로젝트에 도입해 보면서, 로컬 및 클라우드 환경에서의 개발 경험을 개선하고, 팀원들과의 협업 과정에서 빌드와 보안의 효율성을 높일 계획이다. 특히 Docker Build Cloud와 Docker Scout 기능은 앞으로의 프로젝트에서 빌드 시간 단축과 보안 관리에 큰 도움이 될 것으로 기대된다!
바쁘신 와중에도 유익한 세미나를 준비해주신 염근철 전문가님과 DEVOCEAN YOUNG 테크 세미나 주최 측에 감사의 마음을 전하며, 앞으로 있을 테크 세미나를 기다리고 있겠습니다!
틀린 내용이 있다면 언제든지 댓글로 알려주시면 감사하겠습니다.
세미나 영상은 데보션에서 다시보기 영상으로 확인할 수 있습니다.
정말 유익하니 관심 있는 분들은 한번 들어보세요!
https://devocean.sk.com/vlog/20240926_docker.mp4https://devocean.sk.com/blog/techBoardDetail.do?ID=166851&boardType=techBlog
반응형'경험, 활동 > 데보션 영 3기' 카테고리의 다른 글
[데보션 영] SKT 컨테이너 솔루션 개발팀의 안승규 프로님 인터뷰 후기 (0) 2024.11.26 9월 영전용 세미나 후기: 취준생을 위한 현실적인 조언과 선배님들의 개발 경험 (0) 2024.11.05 [데보션 영] 8월 영전용 세미나 후기 (0) 2024.11.05 [데보션 영 SKT] 미리 만나는 미래 T.um 티움체험 후기 (0) 2024.08.12 [데보션 영] 3기 발대식 후기 (T타워, 자기소개, 김찬란님 웰컴 메세지, 회식) (3) 2024.03.25 다음글이전글이전 글이 없습니다.댓글