[2018. 2] GDG Campus Korea Meetup

Google Development Group Campus Korea Meetup

“함께 일하고 싶은 개발자 - 나름 큰 회사에서 반년동안 배운 것” - 한재엽님(NAVER)

현업에서 배운 ‘개발’이란 것과 ‘코딩’을 보다 좁은 범위로 정의하고 ‘코딩은 무언가를 개발하는 과정의 일부분에 불과하다’라고 느꼈던 부분에 대한 내용을 기반으로 ‘함께 일하고 싶은 개발자’로 나아가기 위한 방향에 대해 이야기할 예정이다.

개발 프로세스 : 이슈 발생 - 스펙 분석 - 일정산정 - 코딩 - 문서화

1. 이슈 발생 = 할 일, task

  • 신규, 유지보수, hotfix, 디자인 개편 등
  • Zenhub을 통한 이슈 관리를 하고 있는데 자신의 일정을 고려하여 할당한다.
  • 이슈를 할당하기 전에 고려해야 할 점은 ‘내가 감당할 수 있는 이슈인가’, ‘현재 진행 중인 이슈와 연관이 있는가’이다.
  • 자신의 실력을 객관적으로 판단할 수 있는 개발자가 함께 일하고 싶은 개발자다.
  • tip. 사수랑 친해져서 사서랑 함께 프로젝트에 들어가는 것이 좋다.


2. 스펙 분석 : 스펙(구현해야 하는 기능)은 생물이다.

  • 스펙 분석을 위한 문서들, 기획서, 피피티 파일 등으로 스펙 분석을 한다.
  • 실제 사례 예시
    1. view 기반 컴포넌트 분리
    2. 성능적인 부분 고려 (이미지 lazy loading, 부드러운 애니메이션)
    3. 백엔드, 웹 개발자와 인터페이스 협의 필요
    4. UX적인 부분 고려
    5. 각 기능 구현 고려
  • 스펙(구현해야 하는 기능)은 ‘메타몽’이다. 스펙 협의 회의에서 많은 커뮤니케이션을 해야 한다.
  • 꼼꼼한 스펙 분석을 할 줄 아는 개발자가 함께 일하고 싶은 개발자다.


3. 일정 산정 : 자신이 assign한 이슈 일정을 산정하는 것

  • 배포 일정 및 예측 가능한 팀 내 리소스 관리를 위해 일정 산정을 해야 한다.
  • 계획 오류 : 작업을 완료하는 데 필요한 시간을 낙관적으로 예상하는 것을 말한다.
  • 90 대 90 법칙 : 기존 프로젝트에 신규 기능이 추가될 경우를 위해 일정을 잘 산정해야 한다.
  • 일정 : 할당된 이슈를 어느 날짜에 시작해서 어느 날짜에 마칠지 따지는 것.
  • 공수 : 이 이슈를 해결 및 완료하는데 하루 n시간 기준 몇 일이 소요되는지 따지는 것
  • 우리는 업무 외에도 정말 많은 일을 하기 때문에 회사에서 실제로 개발에만 사용하는 시간을 따져봐야 한다. (ex. 5시간)
  • 신뢰 가는 일정을 공유할 수 있는 개발자가 함께 일하고 싶은 개발자다.


4. 코딩

  • 가독성이 좋은 코드, 모듈화를 통한 재사용성이 높은 코드가 좋다.


5. 커뮤니케이션

  • 웹프론트엔드는 서버개발자, 마크업개발자, 로그관리자, QA, 디자이너, 기획자들과 커뮤니케이션 해야한다.
  • 개발 용어는 가능하면 사용하지 않는 것이 좋다.
  • 커뮤니케이션할 때는 스크린샷을 첨부하면서 ‘어떤 디바이스에서 어떤 부분이 깨진다.’ 라고 명시해주는 것이 좋다. 코드의 경우에는 하이라이팅 처리하여 메일을 보내는 것이 좋다.
  • 대화가 잘 통하는 개발자가 함께 일하고 싶은 개발자다.


6. 문서화 : 양날의 검, 코드 내 주석. 정돈된 코드와 함께 잘 작성해두자.

  • github 프로젝트의 얼굴. 마크다운 파일을 통해 기본적인 discription을 파악할 수 있다.
  • 정돈된 commit history가 중요하다.
  • 수많은 best practice, commit log가 배포되어 있으니 살펴보자.
  • hit hook을 사용하여 commit message를 관리할 수도 있다.
  • version에 따른 release 기능을 활용할 수 있다.
  • jsdoc을 통한 API document를 관리할 수 있다.
  • .github 파일을 만들어서 문서를 관리할 수 있다.
  • 프로젝트를 시작할 때부터 협의하여 꾸준히 하는 것이 좋다.
  • 문서화를 체계적으로 잘하는 개발자가 함께 일하고 싶은 개발자다.


7. suggestion

  • 혼자보다는 함께 프로젝트 하는 것이 좋다.
  • 프로젝트 하나를 완주하는 것이 좋다.
  • 유지 피드백 받아보는 것이 좋다.
  • 기술 스택에 대한 이유를 생각해보는 것이 좋다. (왜 이 라이브러리를 사용했고, 왜 이 프레임워크를 사용했는지 생각해보자.)
  • 이 기술을 왜 썼는지 항상 면접에서 물어본다. 따라서 고민해보고 공부해는 것만으로도 가치가 있다고 생각한다.


8. Question

Q. 스터디는 어떤 스터디를 하는지?
A. 주로 점심시간에 rx.js, react, angular, vue, webpack 스터디를 진행하고 있다.


9. 발표자료

Share