본문 바로가기
Choi solyi/책

실용주의 프로그래머 Assignment #15 - 9장. 실용주의 프로젝트

by SOLYI 2022. 4. 6.

오늘 TIL 3줄 요약

  • 버전관리, 테스트, 자동화
  • 실용주의 기법 요약
  • 실용주의 시작 도구

TIL (Today I Learned) 날짜

2022-04-05

 

오늘 읽은 범위

9장. 실용주의 프로젝트

 

책에서 기억하고 싶은 내용을 써보세요.

  • 안정적인 소프트웨어를 위한 마법 삼총사인 버전관리, 테스트, 자동화
  • 프로그래머는 고양이 같은 면이 잇다. 호기심 많고 제멋대로이며, 고집이 세고, 독립적인 데다, 가끔은 인터넷에서 숭배를 받기도 한다.
  • 팀 전체에 실용주의 기법들을 어떻게 적용 할 수 있는지 간략한 요약
    • 깨진 창문을 없애라 - 사소한 결점을 아무도 고치지 않고 놔두어서는 안되고, 제품의 품질에 책임을 져야한다.
    • 삶은 개구리 - 개구리는 서서히 변화하는 환경을 감지하지 못하고 결국 삶아진다. 팀은 개인보다 더 삶은 개구리가 되기 쉽다. 모든 사람이 적극적으로 환경 변화를 감시하도록 권장하라. 범위의 확장, 일정 단축, 추가 기능, 새로운 환경 등 무엇이건 간에 인지하고 있던 것과 다른 것들을 늘 깨어서 의식해야한다.
    • 여러분의 지식 포트폴리오를 계획하라 - 진정 개선하고 혁신하고 싶다면 계획을 세워야 한다. 시간이 나면 하겠다 라는 의미는 영원히 하지 않겠다는 것이다. 예를 들어, 구형 시스템 유지보수, 프로세스 회고와 개선, 새로운 기술 탐험, 학습 및 기술 갈고 닦기
    • 팀의 존재를 소통하라 - 훌륭한 프로젝트 팀은 뚜렷한 특성이 있다. 사람들은 이 팀과의 회의를 기대한다. 모든 사람이 좋아할 만한 잘 준비된 퍼포먼스를 보게 될 걸 알기 때문이다. 이들이 생산해 내는 문서는 깔끔하고 정확하며 일관적이다. 팀이 하나로 의사소통하게 도와주는 간단한 마케팅 비결이 있다. 프로젝트를 시작할 때 이름을 지어주는 것이다. 사람들과 대화를 할 때 자신의 팀 이름을 거리낌 없이 사용하라. 바보같이 들리겠지만 팀은 정체성 확립의 기반을 얻을 것이고, 세상은 여러분의 작업과 관련해서 기억할 만한 뭔가를 얻게 될 것이다.
    • 반복하지 말라 - 중복된 일 제거하기. 좋은 의사소통이 이런 문제를 피하는 핵심이다.
    • 팀 예광탄 - 작고 제한적일지라도 시스템의 끝에서 끝까지 전체에 걸쳐 있는 단일 기능을 개발할 것을 추천한다. 이 말은 작업에 필요한 기술을 팀 안에 모두 갖추어야 한다는 뜻이다. 프론트엔드, UIUX, 서버, DBA, QA 등이 모두 함께 일하는 것이 편안하고 익숙해야 한다.
    • 자동화 - 일관성과 정확성을 모두 보장하는 확실한 방법은 팀이 하는 모든 일을 자동화하는 것이다. 코드스타일도 에디터가 맞춰주고 지속적 빌드가 테스트를 자동으로 실행하는데 왜 수동으로 테스트를 돌리고 왜 수동으로 배포하는가? 자동화하면 매번 반복적으로 확실하게 배포 해줄텐데!
  • 화물 숭배의 함정 - 성공한 회사들의 정책과 프로세스를 도입하려 한다. 하지만 맥락을 고려해야 한다. 유행하는 것이 아니라 잘 맞는 것을 사용하라. 잘 맞는지 알기 위해선 한번 해 보라
  • 실용주의 시작 도구
    • 버전 관리로 운용하라 - 프로젝트를 빌드하는데 필요한 모든 것을 버전관리 하에 두어야 한다. 배포 설정도 역시 버전 관리 시스템 안에 잇으므로 실제 서비스에 릴리스 하는것도 자동으로 처리 된다. 프로젝트 차원에서는 버전관리 시스템이 빌드, 테스트, 릴리스 프로세스를 운용한다.
    • 가차없고 지속적인 테스트 - 많은 개발자들이 약점을 파악하고 피해다니면서 살살 테스트 하려한다. 덕분에 다른 사람이 자기 버그를 발견하게 되는 딱한 상황을 피할 수 없다.
    • 코드를 작성하자 마자 테스트 해야한다.
    • 모든 테스트가 끝날 때까지 끝난게 아니다 - 단위테스트, 통합테스트 유효성 평가 및 검증, 성능 테스트

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 오늘 읽은 9장 실용주의 프로젝트는 책의 전체 내용을 요약한 내용이었다. 여러 차례 읽어도 좋은 책이어서 챌린지가 끝나면 다시 한번 읽으려 했는데 요약도 해주고 참 좋다 ㅎㅎㅎ
  • 팀 프로젝트에서도 적용 할 수 있는 것들이 많아보이고, 회사에서도 적용할 수 있는 방법들이 있는 것 같다. 솔직하게 말해서 아직 시스템을 다 파악하지 못했다는 이유로 적극적이지 못한 부분도 있다. (팀 프로젝트는 내가 중요한(?) 위치에 있다는걸 알기 때문에 적극적으로 하고있는데!)
  • 위에서 정리한 실용주의 기법 7가지를 자주 읽으면서 적용 할 수 있도록 노력해야겠다.
  • 우리가 팀 프로젝트를 시작하면서 다같이 정한 내용중에 위의 기법들도 많이 적용을 하고 있어서 뿌듯함을 느꼈다.
  1. 프로젝트 이름 짓기(팀명 짓기) - 중간에 나가고 싶어도 팀으로 묶여있어서 공동체 의식을 높여준게 아닐까 라는 생각이 들었다
  2. 아직 개발 초기 단계라서 배포까지는 깊게 생각하지 않았지만, 자동 빌드와 자동 배포까지 다같이 고싶다고 생각하고 있다. CI CD!
  3. 지식 포트폴리오를 계획하라. 조금 다른 이야기지만 개발자 멤버 4명중 4명 전원이 방통대와 학점은행제로 학업을 이어나아가고 있다. 단순하게 학위 취득이 목적이 아닌 개발자로서의 성장을 목표로 하고 있다. 다같이 책도 공유하며 지식을 공유하면서 성장해가고 있어서 자랑스럽다.
  4. 의미있는 단위로 커밋하도록 하고, 커밋 메세지 템플릿을 설정하고, 브랜치를 나누어 버전 관리를 하고 있다.

그리고 마지막으로 개발에 집중할 수 있는 시간이 적다보니 테스트는 별로 신경을 쓰지 못하고 있는데 올해 꼭 제대로 시작해야지.

반응형