배달의 민족 IT개발문화의 큰 줄기가 협업과 지식공유인 것 같다.
최근 들어 많은 회사들도 협업툴을 활용해 업무생산성을 높이려고 하고 있다.
그리고 질문을 두렵게 하지 않는 문화 책임을 추궁하지 않고 다 같이 해결하려는 문화를 만들려는 노력이 느껴졌다.
추천사
지식노동자의 커뮤니티에서는 자신의 지식, 정보, 생각을 잘 정리하는 것이 매우 유용한 일입니다.
그래서 미래의 나와 업계의 동료들에게 내 지식을 효과적으로 전달하고 퍼뜨리고 확장할 수 있죠.
커뮤니티에서 많이 공헌할수록 역량을 인정받고 더 큰 영향력을 발휘하며 더 좋은 지식을 쌓고 퍼뜨릴 기회를 얻는 선순환이 이루어집니다.
1. 배민다움 만들기
파일럿 프로젝트 목표
- 위키/지라/제플린을 활용한 협업 방식 파악하기
- 기술 선택/설계/개발 단계에서 팀원에게 피드백받기
- 실제 서비스에 활용되는 API를 활용하고 이를 바탕으로 한 페이지 개발로 도메인 파악하기
End2End테스트
- 소프트웨어 테스트 방법의 한 종류로 사용자 관점에서 처음부터 끝까지 시스템의 흐름을 테스트하는 방식
우아한 형제들의 많은 시스템이 스프링부트로 이루어져 있습니다.
모두 그레이들(빌드 도구) 기반 멀티 모듈 구조를 가지고 있습니다.
또한 모든 프로젝트에서는 JPA(자바 진영의 ORM)를 사용합니다.
코드 리뷰 도구로 업소스를 사용합니다.
인텔리제이에 플러그인을 설치해서 사용할 수도 있기 때문에 리뷰로 요청된 소스와 변경 지점을 쉽게 파악하고 의견을 나눌 수 있습니다.
배포에서 저희 팀은 깃 플로 전략을 사용합니다.
새로운 기능, 수정에 대한 요구사항이 생기면 제일 먼저 지라 티켓을 생성합니다.
테스트라이브러리는 주로 JUnit4, 스팍 신규 프로젝트에는 JUnit5를 사용합니다.
젠킨스로 테스트도 돌리고 빌드, 배포도 하지만 이 외에도 여러 용도에 마르고 닳도록 사용합니다.
결제시스템팀은 신규 입사자가 있으면 팀에서 운영 중인 서비스와 관련된 과제를 주고 약 2주일 동안 개발합니다.
기존에 팀에서 사용하고 있는 지라, 깃, 스프링부트, JPA, Vue.js를 기본적으로 사용합니다.
시니어로서의 발걸음 시작
- 주어진 일만 잘해야지 생각했는데 조금씩 동료와 팀이 잘하는 것까지 신경 쓰게 되었을 때
- 나무가 아닌 숲을 보게 되었을 때
- 일을 잘하기 위한 틀을 만드는 것에도 관여하게 될 때
우리는 시니어의 성장을 주변에 주는 영향력으로 정의하기로 했습니다.
시니어의 성장포인트는 얼마나 다른 사람의 성장에 도움이 되느냐라고 생각합니다.
우리 회사는 각자의 서비스에만 집중하는게 아니라 공유와 협업이 매우 잘되는 분위기라서 좋은 분들이 좋은 영향력을 줄 수 있는 기회도 많다고 생각한다.
우리 개발 문화 DNA는 바로 공유였어요.
각 팀에서는 문제를 해결한 히스토리를 위키나 전사 슬랫을 통해 다 같이 공유하고 같은 문제를 겪지 않기 위해 서로의 노하우를 축적해나가고 있습니다.
놓치는 부분을 줄이고 더 활발히 공유할 수 있도록 코드 리뷰 및 페어프로그래밍을 팀규칙으로 삼고 있습니다.
피트스탑이란 1년에 한 번 2주간 진행하고 있는 과제를 멈추고 팀 상황을 재정비하고 그동안의 기술 부채를 해결하는 우아한 형제들만의 제도입니다.
책임을 묻는 것보다 다 같이 해결하려고 노력하고 다시 발생하지 않게 하는데 집중합니다.
KPT 회고
- Keep - 잘하는 점. 계속했으면 좋겠다 싶은 점
- Problem - 뭔가 문제가 있다 싶은 점. 변화가 필요한 점
- Try - 잘하는 것을 더 잘하려면, 문제가 있는 점을 해결하려면 우리가 시도해 볼 것들
우리팀에서 경계하는 것 중의 하나가 반복되는 같은 질문에 신경질적인 반응을 보이는 것입니다.
질문하길 꺼리는 분위기가 생기면 그로 인해 중요한 문제를 괜히 질문해서 한소리 듣지 말자 식으로 확인 없이 그냥 배포했다가 바로 장애로 이어지는 일이 발생합니다.
문제의 초점을 질문을 하는 사람에서 질문을 받는 사람으로 돌립니다.
질문하는 사람에게 왜 자꾸 질문해요? 나무라는게 아니라, 왜 자꾸 같은 질문이 나올까? 내가 질문을 덜 받으려면 어떻게 해야 할까라고 생각해 보는 것이지요
.
젠킨스와 소나큐브(코드 정적 분석 도구) 간 상호연동 할 수 있습니다.
우리가 올바로 가고 있는지 수많은 팀이 올바르게 사태를 이해하고 의사소통을 하는지를 확인하려면 통합시연이 효과적입니다.
2. 프론트엔드 개발자로 성장하기
전사 기술 스택인 리액트와 타입스크립트, 처음 사용해 보는 상태 관리 라이브러리, UI라이브러리 등의 기본적인 사용법을 자연스럽게 익혔습니다. 코드 외적으로도 사내위키에 문서를 작성하고 지라의 이슈 단위로 업무일정을 관리하는 등 입사 전 경험해보지 못한 프로젝트 관리 방식까지 함께 습득할 수 있었어요.
전에 호미부대TF라는 조직에 있었는데 사용자의 편의성을 높일 목적으로 소소한 변경 사항을 개발하는 조직이었습니다.
만드는 사람이 수고로우면 쓰는 사람이 편하고 만드는 사람이 편하면 쓰는 사람이 수고롭다.
여러 탭 UI(편의성 매력적)
- 성능이슈 - 열려있는 탭이 많아질수록 DOM에 추가되는 엘리먼트도 증가
- 상태관리 복잡도
- 탭 간 정보 동기화
입력중인 상태 보호, 편집됨
- 편집중이라면 알림창이 나타나 사용자에게 정말 닫을 것인지 확인합니다.
'독서 공부' 카테고리의 다른 글
[책 요약] 배달의 민족의 IT이야기, 요즘 우아한 개발(3편) (0) | 2024.02.12 |
---|---|
[책 요약] 배달의 민족의 IT이야기, 요즘 우아한 개발(2편) (0) | 2024.02.03 |
[책 요약] 돈은 그렇게 버는게 아니다!, 레버리지(4편) (2) | 2024.01.21 |
[책 요약] 돈은 그렇게 버는게 아니다!, 레버리지(3편) (0) | 2024.01.14 |
[책 요약] 돈은 그렇게 버는게 아니다!, 레버리지(2편) (1) | 2024.01.13 |