유지보수하기 좋은 코드를 구현하는 개발 문화 어떻게 만들 것인가? by 박재성님
1. 변화를 어떻게 가져오는가
- 의지력이 아닌 환경. 환경(상황)을 바꿔라
- 퇴근 후 다른 곳(스터디 카페)으로 퇴근한다
- 티비를 버린다, 폰을 버린다. 앱을 삭제한다.. 등
- 책임감
- 삶이 앞으로 나아가는데 필요한 견인력
2. 의식적인 연습
- 그냥 한다고 다 되는건 아닌건 아니다. 목적이 있는, 의식이 있는 연습이 필요하다.
- comfort zone을 벗어난 지점에서 진행, 자신의 현재 능력을 살짝 넘어가는 작업을 지속적으로 시도
- 명확하고 구체적인 목표를 가지고..
- 신중하고 계획적으로, 온전히 집중하고 의식적으로 행동할 것을 요구
- 피드백과 피드백에 따른 행동 변경
2-1. 요즘 제일 비싼 비용은? 인건비!! => 가독성이 제일 중요; 읽기 좋은 코드
- 인덴트를 줄이고
- else를 없애고
- stream을 써보고
- 메서드 분리!
- 모든 원시값과 문자열을 포장한다.
- 일급 콜렉션
- 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
- 함수의 인자 수를 줄인다. 3개 이상은 가급적 피한다.
- 클래스 분리
3. 리팩하려면 테스트 코드가 기반이 되어야 함
4. 개인 -> 동료로 영향력 확대 => 힘든게 당연하다.
변화를 만들려면 리더쉽을 발휘하고 감정 노동을 해야한다.
리더쉽 / 감정 노동은 AI 시대에 가장 필요한 역량이다...ㅋ
- 사람은 변화를 거부해
- 팀은 더 거부해
- 대부분의 사람들은 변화에 실패해봤어
4-1. 시작
묵묵히 혼자 진행!! 내가 맡은 기능에는 적용. 나를 위해서
-> 관심있는 사람이 생기면 전파
-> 작은 성공 경험
4-2. 리팩기준(레이어드 아키텍처)
서비스의 로직을 도메인으로...
-> TDD하기 쉬움
- 서비스 : 도메인 객체 생성, 메세지 보내는 역할, 외부에 전달 only
- 도메인에 로직 구현하면 mock할게 없으니까 테스트가 쉽다는거임..
5. 리더/시니어로서 만들고 싶은 개발 문화
거창한 포부! 야 우리 같이 성장하쟈???
* 아웃사이드 인 접근 방식: 외부에, 과거에 좋았다고 한 것들을 그대로 도입(탑다운)
-> 실패의 지름길
* 인사이드 아웃 접근 방식: 팀원들의 의견에 의한 변화; 시간이 오래걸림(바텀업)
- 리더가 하자고하면 싫어함(뭘 듣고 왔다냐)
- 팀원들은 침묵을 선택한다. 나한테 이득이 어딧나
- 팀원들 말문이 트어야 한다.
- 어떤 의견을 제기해도 벌을 받거나 보복당하지 않을 거라고 믿는 조직
- 팀원들과의 신뢰 형성이 우선
- 1:1 면담
- 어떻게 하면 될까? 너라면 어떻게 할래? -> 해답을 스스로 제시하도록
- 잘 듣고 힘들겟구나 공감하고, 반문
- 이 중 우선순위 높고, 가장 효과있을 것 하나 골라서 시작, 익숙해질 때 까지 집중
- 하나만 성공하도록 -> 성공 경험이 중요; 한번에 한 가지에 집중 -> 작은 성공
- 1:1 면담
> 도서 "두려움 없는 조직" 추천
- 심리적 안정감! 이 필요
정리
- 새로운 문화를 정착하기 위해 가장 중요한 것은 리더의 인내심의 용기
- 새로운 문화를 만들면서 초기 학습 비용 등으로 인해 생산성 저하
- 안정화하는데 최소 1년 이상의 시간을 투자해야 한다는 마음으로 믿고 기다려야 함
- 현재보다 조금씩 나아지고 있다는 방향성이 중요
- 중요한 것은 지금 어떤 practice를 적용하는가가 아님
- 문화를 만들고 변화를 만드는 일은 리더만의 책임이 아니다.
- 누구도 대체할 수 없는 존재가 되고 싶으면 지금 당장 도전
- 좋은 회사는 실패해도 같이 도전하는 사람을 원한다.
- 실패의 책임을 묻는다면 그만둔다. 굳
사람에 대한 존중, 신뢰, 심리적 안정감이 기반되어야 한다.
'architecture > knowledge' 카테고리의 다른 글
[http] http 기본 지식 (0) | 2022.05.19 |
---|---|
웹브라우저 요청 흐름 (0) | 2022.05.19 |
[webwork] struts? webwork? xwork? (0) | 2022.01.17 |