DevOps 시대의 새로운 Role — Full Cycle Developer

Changhoon Hyun
Apr 30 · 6 min read

안녕하세요. HBSmith의 개발자 현창훈 입니다. 일본 JAWSDAY 에서 발표한 Full Cycle Developer 에 대해 소개 드립니다.

클라우드 시대의 개발자

개발자에게 더 많은것을 요구 합니다.

  • Cloud Native Application
  • Architecture
  • Infrastructure as Code
  • QA, 운영 업무 등에 대한 자동화
  • 모니터링
  • 성능 튜닝

한때 위에 언급된 것들을 모두 자세히 알아야 하지 않을까 생각 했고 평생 공부만 해야 하는것 아닐까 하는 걱정도 들었습니다.

하지만 스타트업에서 여러 분야에 대해 일 하다 보니 중요한것은 빠르게 개발하고 QA와 운영에 대한 공수를 줄여서 지속적으로 유지 가능한 제품을 만드는게 핵심이라고 생각 했고, 전문적인 것은 위임하고 할 수 있는 것만 집중 해야겠다는 생각을 했습니다. 바로 Netflix 의 Full Cycle Developer 처럼 말입니다.

거지같이 만들면 고생 하는건 너야 :)

넷플릭스는 본인이 개발한 것은 본인이 운영 하는 정책이 있습니다.

개발자 + 운영자 + DevOps의 지식이 필요 합니다.

Full Cycle Developer 가 필요한 이유는 개발 전체 사이클에 대한 이해가 있어야 그것에 대한 인사이트를 기반으로 더 품질 높은 결과물을 낼 수 있기 때문입니다.

https://ko.atlassian.com/devops

예를 들어, 단순히 개발만 다른 팀에 넘긴 뒤 그 결과물에 대해 핑퐁 하는것 보다는 개발하고 테스트 코드를 작성하면서 운영을 고려해서 자동화 하는 것이 더 효율적이고 높은 품질을 보장 합니다.

넷플릭스는 각 분야에 대한 스페셜 리스트들이 확장성과 생산성을 갖춘 도구를 만들고 다른 직원들이 그것을 활용한다고 합니다.

하지만, 우리 팀에는 Specialist가 없습니다.

개발 사이클

  • Development: 테스트 코드를 작성하고 컨테이너, Infrastructure as Code 를 활용해서 QA, 운영 환경과 동일한 환경에서 개발 합니다.
IaC를 이용한 인프라 찍어내기
항상 AWS를 띄우는것 보다는 vagrant를 활용 합니다. SQS 같은 종량제 서비스만 따로 사용합니다.
  • QA: 단순, 반복적인 테스트는 자동화 하는게 좋습니다. TDD도 좋지만 비즈니스 로직보다 테스트 코드가 훨씬 많아지는 경우가 많아서 핵심적인 기능이 아니라면 백엔드의 API 단위 Test, 프론트엔드에서 End To End Test만 합니다.

End To End 테스트란?

  • Operation: Metric과 Log, Alarm을 직접 관리하고 배포 후 어떻게 개발해야 덜 피곤해 지는지, 어떤 부분이 자동화 가능한지에 대해 경험하고 고민하는게 중요한 것 같습니다. 또한 보통 성능 튜닝에 들어갈 때는 DB에 의한 병목현상을 해결하기 위한 경우가 많은데, AWS의 Aurora의 performace insight는 DB Log와 Metric에 대한 DBA 역할을 대신 해줍니다.

도구의 선택

그냥 잘 만든것 쓰세요.

저희 HBSmith의 경우 스타트업 이기 때문에 도구 까지 직접 개발할 여유가 없습니다. 돈 주고 잘 만든 도구들을 사용합니다. 특히 AWS는 인프라 뿐만 아니라 확장성과 생산성을 위한 도구로도 좋은 선택입니다.

CI / CD
Deploy

DB는 Aurora를 추천 드립니다. Disk를 관리할 필요가 없어서 운영의 부담을 줄여주고 performance insight로 DBA가 없어도 쉽게 insight를 얻을 수 있는 이 이점은 개발자들에게 큰 영향을 주고 있다고 생각합니다.

Full Cycle Development에 대해서 간단히 설명 드렸습니다. 나중에 시간 내서 하나씩 더 자세히 설명 드릴 수 있으면 좋겠습니다. 아래는 JAWSDAY에서 발표한 slideshare 입니다. 감사합니다.

HardBoiledSmith Stories

DevOps & QA 자동화 전문 스타트업 HBSmith의 Blog - https://hbsmith.io

Changhoon Hyun

Written by

HardBoiledSmith Stories

DevOps & QA 자동화 전문 스타트업 HBSmith의 Blog - https://hbsmith.io