본문 바로가기

더 괜찮은 개발자가 되기위한/시스템 개발하기

효율적으로 코딩하기

□ 효율적으로 코딩하기


○ 샘플 프로그램 만들기


고급 개발자에 의한 샘플 프로그램 만들기


유지보수가 효율적인 프로그램을 만들기 위해서는 코딩 표준을 참조해서 동일한 명명 규칙과 코딩 스타일을 적용해야 한다. 하지만 프로그램을 만들 때 개발자는 문서를 잘 읽지않는 경향이 있다. 읽고 공부하는 것보다 따라하고 옆 사람에게 물어보는게 훨씬 수월하기 때문이다. 프로젝트에서는 개발 효율을 높이고 코딩 품질을 높이기 위해 고급 개발자에게 샘플 프로그램을 먼저 개발하게 하는 경우가 많다. 표준을 준수하고 효율적으로 잘짜여진 샘플 프로그램이 주어 진다면 다른 개발자들은 고품질의 프로그램을 손 쉽게 만들 수 있다.

 

○ 코드 리뷰


코드 리뷰


코드 리뷰는 작성자가 여러 사람 앞에서 자신이 만든 코드를 직접 설명하는 방식으로 진행된다. 개발자에 따라서는 다소 부담이 될 수 도 있지만 자신이 보지 못한 개선점을 다른 사람이 발견해 줄 수 있는 아주 좋은 기회이다. 코드 리뷰를 자주하는 것은 프로젝트 일정상 불가능한 일이므로 1~2회 정도 적당한 시기를 골라 진행해야 한다. 개발이 어느정도 진행된 다음에 코드 리뷰를 하면 수정해야할 오류가 많기 때문에 개발 초기에 리뷰를 수행해서 올바른 개발 방향을 설정할 수 있도록 지원하는 것이 좋다.

 

○ 패어 프로그래밍


패어 프로그래밍


패어 프로그래밍(Pair Programming)XP(eXtreme Programming)에서 제시한 개발 방식으로써 2명이 한 쌍으로 개발을 진행하는 방식이다. 주니어 개발자인 드라이버는 소스코드 타이핑을 하고 시니어개발자인 네비게이터는 실시간으로 코드를 리뷰하고 조언을 해준다패어 프로그래밍은 주니어가 시니어의 지식을 공유할 수 있다는 장점이 있다. 아무래도 경험이 부족한 주니어 개발자 보다는 시니어 개발자가 효율적인 알고리즘과 방법론을 알고 있기 때문이다. 혼자 프로그램을 하다 보면 문제가 잘 안 풀릴 경우 많은 스트레스를 받고 해결책을 찾기도 싶지 않다. 하지만 같이 프로그램을 할 경우 서로에게 기댈 수 있고 의견을 나누다 보면 의외로 문제가 쉽게 해결되기도 한다. 컴퓨터만 보고 프로그램을 하다 보면 자칫 쉬는 시간 없이 몇시간이고 코딩을 하는 경우가 많다. 처음에는 생산성이 높다고 생각할 수 있지만 이런 일상이 반복되다 보면 쉽게 집중도가 떨어지는 경우가 많다. 시니어 개발자와 같이 대화하면서 코딩하면 개발 중간에 오가는 대화가 피로도를 떨어뜨리고 상대방으로부터 듣는 칭찬과 조언이 활력소가 되기도 한다. 시니어의 조언에 따라 개발하다 보면 당연히 코드 품질이 높아지고 개발 중간에 오가는 대화는 팀원들 간 커뮤니케이션을 향상시키게 된다.


하지만 패어 프로그래밍이 장점만 있는 것이 아니다. 두 명을 같은 일에 투입되다 보니 자연스레 생산성이 떨어질 수 있고 주니어 개발자 미숙함을 참다 못한 시니어 개발자가 직접 개발에 참여하는 일이 잦아질 수 있는 위험도 있다. 마음이 맞지 않는 두 사람이 같이 일하다 보면 서로 감정 상할 수도 있다. 하루 종일 같이 대화한다는 것은 다양한 장점이 있지만 혼자 일하는 것보다 에너지 소모가 심할 수 있다.

패어 프로그램은 장점과 단점을 모두 가지고 있는 개발 방식이기 때문에 프로젝트 특성에 알맞게 변형해서 사용하는게 좋다. 패어 프로그래밍을 시스템 개발 전 과정에 적용하기 보다는 개발 전반부에 사용해서 코드 품질을 일정 수준 이상으로 높여 놓는 것이 좋다. 주니어 개발자도 후반부에 가면 개발 능력이 향상되고 앞에서 배운 기술을 활용하기 때문에 계속 패어 프로그래밍을 하지 않아도 된다. 패어 프로그래밍을 선택적으로 적용하는 것도 하나의 방법이다. 개발자 중 개발 능력이 떨어지는 사람만 패어로 개발하는 것이다.