INFCON 2023 후기
·
3min
·
clemado1
Table of Contents
어느 날 고민 많은 주니어 개발자가 찾아왔다 2탄: 주니어 시절 성장과 고민들
- 지금 해야하는 게 있다면 회사의 기술을 먼저 공부하는 것이 중요
- 비즈니스 업무 파악이 1순위이고 개발을 잘해도 퍼즐 조각에 지나지 않음
- 그 다음은 비슷한 기업의 기술을 공부
- 마지막으로 최신 기술을 공부
- 개발자들의 공통 고민 '최적화'
- 제일 간단하게 시작해서 살을 더 붙이는게 중요
- 최적화를 미리한다고 무리하게 코드짜는 것은 좋지 않다.
점진적 추상화
- 소프트웨어 발전 방향과 일치하지 않는 추상화는 오히려 개발 유지보수가 힘들 수도 있다. (방향을 초기에 예측하기 어렵다)
- 그렇기 때문에 추상화의 범위가 중요하다.
- 너무 넓은 범위를 추상화할 경우 오히려 수정할 범위가 커지기 때문에 인터페이스의 추상화는 필요한 만큼만 진행할 것
- 함수 단위로 잘 쪼개져있는 날것의 코드가 좋은 인사이트를 주기도 함
- 좋은 추상화는 좋은 맥락에서 이루어짐
- 인터페이스 추출은 비용이 비싼 행동이기 때문에 클래스 추출에서 멈추는 것도 방법
- 처음부터 인터페이스를 추출하지 말고 응집해본다음 적절한 시기를 찾아서 추상화를 해야한다.
DevOps를 가속화하는 플랫폼 엔지니어링
플랫폼 엔지니어링
클라우드 네이티브 시대에 소프트웨어 엔지니어링 조직이 셀프 서비스 기능을 사용할 수 있도록 툴체인과 워크플로를 설계하고 구축하는 분야. 애플리케이션의 전체 수명주기에 필요한 운영 요구사항을 포괄하는 내부 개발자 플랫폼 IDT를 제공한다.
DevOps
Dev | Ops |
---|---|
빠른 변경, 다양한 시도 | 안정적, 적은 변경, 점진적 변경 |
- 개발팀이 개발을 하고 운영팀에게 넘기는 것을 '담장 위로 넘긴다' 라고 하는 경우도 있음
Feedback Loop
Plan - Create - Verify - Package - Release - Configure - Monitor
- DevOps가 편한가 물어보려면 먼저 DevOps가 제대로 실행되고 있는지 봐야하는데 대부분 제대로 실행되고 있지 않음
- 이유로 높은 인지부하.
- 현실에서 하려면 각 서비스 엔지니어링 개발자들의 인지부하가 너무 높음, 복잡도가 높음
- 예를 들어 CNCF를 보면 개발자들이 배워야할게 너무 많음
- 높은 인지부하가 업무 부하, 번아웃으로 이어짐
- 이유로 높은 인지부하.
- 현실에서는 Feedback Loop가 아닌 Shadow Operation이 이루어짐
- 운영이나 서버에 관심있는 소수의 인원이 운영이나 트러블 슈팅을 담당하고 있는 경우가 많음
- 이는 DevOps가 추구하는 가치에 동떨어짐
- 이러한 문제를 해결하려는 움직임이 플랫폼 엔지니어링
- 빅테크에서 연구하던 기술이 서서히 밖으로 드러나고 있음
- 넷플릭스 - Full Cycle 개발자
- 어떤 팀에서 도구를 만들거나 사서 각 도구들이 만들어져 있으면 낮은 인지부하로 풀 사이클을 돌릴 수 있게 하겠다
- 구글 - SRE 운영팀을 위한 소프트웨어
- 기본 원칙은 운영을 잘하는 것이 소프트웨어의 원칙이라는 것
- 쿠버네티스도 구글이 DevOps를 위해 만들었던 것
- SW 엔지니어가 인프라팀에 요청을 해서 인프라팀이 클라우드 내에서 작업하는 것이 일반적인 경우
- IDT는 인프라팀 대신 프로그램으로 이것을 대체하는 것. (티켓을 통해 요청하고 자동화를 통해 작업)
- SW 엔지니어가 알아야하는 부분은 노출하고 몰라도 되는 것은 숨겨서 기능을 만든다.
- 결국 소프트웨어로 문제를 해결하는 것임
- 플랫폼 엔지니어링은 DevOps를 더 잘 할 수 있게 해야 한다
- Feedback Loop를 돌리는 이유는 결국 더 좋은 소프트웨어를 만들기 위해
- Dev와 Ops의 경험을 함께 가져가야 더 좋은 소프트웨어를 만들 수 있다.
- Low Threshold High Celling - 진입점을 낮추고 천장을 높이는 것
- SW 엔지니어들의 인프라에 대한 이해도와 상관없이 동일한 기능을 사용할 수 있도록 한다.
- 플랫폼 엔지니어링은 사내 엔지니어링 팀이 고객이고 스타트업 제품을 만들듯이 해야함 = DevEx를 신경써야됨