architecture/knowledge

[개발문화] 유지보수하기 좋은 코드를 구현하는 개발 문화 어떻게 만들 것인가?

방푸린 2023. 4. 24. 15:52
반응형

유지보수하기 좋은 코드를 구현하는 개발 문화 어떻게 만들 것인가? 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년 이상의 시간을 투자해야 한다는 마음으로 믿고 기다려야 함
  • 현재보다 조금씩 나아지고 있다는 방향성이 중요
    • 중요한 것은 지금 어떤 practice를 적용하는가가 아님
  • 문화를 만들고 변화를 만드는 일은 리더만의 책임이 아니다.
  • 누구도 대체할 수 없는 존재가 되고 싶으면 지금 당장 도전
  • 좋은 회사는 실패해도 같이 도전하는 사람을 원한다.
  • 실패의 책임을 묻는다면 그만둔다. 굳

 

사람에 대한 존중, 신뢰, 심리적 안정감이 기반되어야 한다.

728x90
반응형