스터디

블랙커피 자바스크립트 스터디 - 오리엔테이션

와니's(Wani) 2020. 10. 7. 22:33

자바스크립트 스터디 (Black Coffe Study 3기) 시작 하기전

신입 개발자로 회사에 입사하고나서, 약 1년이 지난후, 혼자 성장하기에는 너무 벅차다고 느꼈습니다.
특히 새로운 개발 환경을 접해야 할때, 먼저 고민해준 사람이 없기 때문에 주먹 구구식으로 일을 하기 마련이였습니다.
누구나 성장하고 싶은 생각이 있겠지만, 개발자로서 더욱더 성장하고 싶은 마음이 컸습니다.
그래서 커뮤니티 그룹에 가입해서 도움도 요청하고, 인터넷 강의도 들었지만, 스터디를 하게 되면 같이 성장할수 있다는 영상을 보고
알아보게 되었습니다.

그중 독보적인 강의 그룹 NextStep을 알게 되었습니다. 상당수의 강의는 재직자를 위한 강의가 많았으며, 이번에 자바 스크립트 스터디가 무료로
열린다기에 가벼운 마음에 알림 신청을 하게 되었습니다.

그후 몇일뒤 ..
메일이 오게되었습니다!
신나는 마음으로 스터디 오리엔테이션에 참가하게 되었습니다

오리엔테이션

스터디 소개글 중에 인용구를 사용하셨다. 훌륭한 의사소통은 블랙커피처럼 자극적이며, 후에 잠들기가 어렵다.
그래서 블랙커피 스터디라고 지으셨다.
스터디는 다음과 같은 목표를 지녔다. 함께 좋은 커뮤니케이션으로 통찰을 이끌어내고, 그 통찰과 함께 성장하고, 소프트웨어 장인으로 거듭나기
지금 현 상황에서 꼭 내가 필요한 목표였다.

이에 해당하는 소프트 웨어 장인은 무엇을 지녀야 할까?

  • 동작하는 소프트웨어 뿐만 아니라 정교하고 솜씨있게 만들어직 작품을
  • 변화에 대한 대응하는것 뿐만이 아니라, 계속해서 가치를 더하는 것을
  • 개별적으로 협력하는 것 뿐만이 아니라, 프로페셔널 커뮤니티를 조성하는 것을
  • 고객과 협업하는 것 뿐만 아니라, 생산적인 동반자 관계를 추구한다.

블랙커피 스터디에서 중요하게 생각하는 것이 두가지가 있는데, 페어프로그래밍코드리뷰 문화입니다.
매번 회사에서 혼자서(?) 코딩하고, 집와서 혼자서 코딩하는 습관에 길러진 저에게 꼭 필요한 문화였습니다.
다른 회사에서는 PR을 날리고 코드리뷰 받고 그뒤에 배포를 한다던데.. 우리는 그런게 있을수가 없습니다 ㅋㅋㅋ

스터디 모임장 준님이 스터디에서 할것들을 자세하게 설명을 해주셨습니다.

페어프로그래밍이란

  • 하나의 컴퓨터에서 두 사람의 프로그래머가 작업하는 방법
  • 내가 어떤 프로그램을 짤때 두려움을 느끼거나 일관된 방식으로 짜서 진전이 되기 힘들때 페어프로그래밍으로 하면 좋다.

특히 페어프로그래밍은 신선한 충격이였습니다. 어떻게 같이 코딩을 하지? 누구나 그렇게 생각할겁니다.

페어프로그래밍의 장점

  • 즉각적인 피드백을 하기 때문에 빠르게 코드 품질이 향상 됩니다.
  • 팀의 소유권을 가지고 개인은 코드의 문제점에 대한 책임을 지지 않는 이타적인 프로그래밍의 아이디어를 반영합니다.
  • 갈등을 드러나게 합니다.
    • 특히 애자일 방식에서는 갈등을 피하는 것보다 갈등이 드러나는것이 더 좋다고 본다.
    • 나중에 커질 문제를 미리 겪는 것 이다.

페어프로그래밍 하는 방법

네비게이터와 드라이버로 나눈다

  • 네비게이터
    • 전체 지도를 보며 목적지에 다다르는 길을 안내한다.
    • 운전 과정 중에 의문이 드는 점이나 잘못 흘러가는 상황을 대화로 바로 잡는다.
  • 드라이버
    • 직접 운전대를 잡고 운전을 하는 역할이다.
    • 운전중 현재 진행하는 것을 말로 표현하며 진행하되, 네비게이터와의 대화 역시 함께 진행해야 한다.

페어프로그래밍시 주의할점

  • 딴 짓 하지 않는다.
    • 이건 사회생할 하면서 기본이다.
  • 권위주의적인 어조로 눈치주지 않는다.
    • 경력이 많은 사람이 결국 쓰다 보면 보통 적은 사람이 눈치를 보게 된다.
  • 감정적으로 하지 않는다.
  • 회고하는 시간을 가질때 특히 감정적으로 가지지 말것!

페어프로그래밍 순서 (온라인)

  1. 공동 작업할 원격 브랜치를 생성합니다.
  2. 해당 원격 브랜치를 Pull 합니다.
  3. 2명씩 행아웃 또는 줌으로 이용하여 서로의 모니터를 봅니다.
  4. 한명은 드라이버 한명은 네비게이터로써 정해진 시간에 작업을 진행합니다.
  5. 드라이버의 역할을 한 사람은 git push를 네비게이터 역할을 하는 사람은 git pull하여 코드를 동기화 시킵니다.
  6. 주기를 가지며 서로의 역할을 교대합니다.
  7. 이와같은 반복주기로 2~3시간 작업을 진행합니다.
  8. 쉬는 시간은 두사람간의 합의하에 진행합니다.
  9. 약 10분정도 상호간에 페어프로그래밍 한것에 대해 회고하는 시간을 가집니다.

이제 설레는 마음으로(?) 첫주차가 시작되었습니다.