Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
실용주의 프로그래머 Assignment #03 - 2장.실용주의 철학
#pragmatic
2년 전
846
1

개인블로그 solyi.kr

  • 제목 수정이 안되네요 2장실용주의 접근법 입니다

오늘 TIL 3줄 요약

  • ETC 원칙 - 바꾸기 더 쉽게

  • 다른 사람의 소스 코드와 문서 읽고 배우고, 기억하기

  • 높은 응집도와 낮은 결합도

TIL (Today I Learned) 날짜

2022. 03. 20

오늘 읽은 범위

2장. 실용주의 접근법

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

  • ETC원칙 - 바꾸기 더 쉽게

    • 왜 결합도를 줄이면 좋은가? 관심사를 분리함으로써 각각이 더 바꾸기 쉬워지기 때문이다.

    • 왜 단일 책임 원칙이 유용한가? 요구사항이 바뀌더라도 모듈 하나만 바꿔서 반영 할 수 있기 때문이다.

    • 왜 이름 짓기가 중요한가? 이름이 좋으면 코드가 읽기 쉬워지고, 코드를 바꾸려면 코드를 읽어야 하기 때문이다.

    • ETC는 규칙이 아닌 가치이다. 파일을 저장할때, 테스트를 쓸때, 버그를 수정할 때도 '바꾸기 더 쉽게 만들었을까?' 를 물어보라

  • DRY (Don't Repeat Yourself) - 반복하지 말라! DRY를 따르지 않는다면 똑같은 것이 두군데 이상 표현 될 것이다.

  • 모든 함수에 주석을 달 필요 없다.

  • 슬랙 채널과 같이 공통의 문제를 다루기 위한 공간을 만들어라. 모든 대화 기록을 보존 할 수 있고, 방해를 최소화 하며 의사소통이 가능하며, 사무실이 여러 곳으로 나뉘어 있어도 문제 없다. 일상적으로든 코드리뷰로든 다른사람의 소스코드와 문서를 반드시 읽어라. 배우고, 기억하라.

  • 예광탄 - 준비, 발사, 조준. 복잡하고 끊임없이 변하는 세상에서 어떻게 하면 과녁을 맞힐 수 있을지 생각해보는 것은 흥미로운 일이다. 군인들은 발사된 예광탄을 사용하여 조준을 재조정한다. 실제 상황에서의 실시간 피드백이기 때문에 매우 실용저이다. 움직이는 목표물을 맞히려면 실제 조건하에 즉각적인 피드백을 받아야한다. 우리는 이것을 시각적으로 묘사하기 위해 예광탄 개발이라는 말을 쓴다.

  • 추정 실력을 기록하고, 나중에 이 값이 실제 결과에 얼마나 가까웠는지 평가해 보면 좋을것이다. 추정치가 틀렸다면 왜 틀렸는지 찾고 원인이 무엇이든 시간을 들여 이를 규명하라. 다음 추정치는 훨씬 나아질 것이다. 오차가 50% 이상이라면 잘못된 추정치를 내게 된 원인이 무엇인지 찾아보라.

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

  • 의무적으로 해야했던 프로젝트가 아닌, 자발적으로 모인 사람들과 팀 프로젝트를 진행중이라서 적용하고 있는, 적용하고 싶은 내용이 많았다.

  • 자주 쓰이는 함수들을 한데 모아서 반복하지 않기 (년,월,일로 된 한국어 날짜 포맷이나 null값을 체크하는 isNull 등! 비교적 간단한 것부터 시작하기)

  • 좋은 변수명 찾기 (3년 뒤 새로운 개발자가 내 코드를 보더라도 주석 없이 이해 할 수 있게끔)

  • 필요한 주석만 달고, 이해하기 쉬운 코드로 작성하기

  • 슬랙에 공유하기 (우리 팀은 카톡 팀 채팅으로만 내용을 공유하다가 찾고싶은 키워드 찾기가 어려워져서 3월 10일부터 슬랙을 사용해서 #개발 #기획 #회의 #중요 #개인todo 등으로 나눠서 내용을 공유하고 있다.)

  • 아직 기반 다지기에 불과하지만 벌써부터 많은 변경사항들이 발생하고 있고, 스트레스를 받기보다 유연하게 대처 할 수 있는 방법을 찾고자 노력중이다.

  • 프로젝트 전체의 개발 흐름과 순서를 정하고, 크게 5단계로 나누어, 또 그 단계를 2단계로 나누어 개발을 진행중이다. 각 단계당 2-3주로 목표를 잡았는데 추정치(목표치)에 대한 기록을 해보면 좋을 것 같다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 단위테스트, 통합테스트. 프로젝트를 진행하며 어떤 것들을 테스트 해야하는지 배운적도, 본적도 없어서 어떤 것인지 감을 잡기가 어렵다. 강의를 들을 때면 꼭 단위 테스트에 대한 방법도 알려주긴 하지만 날짜에 맞춰 개발하기 급급한데 뭘 테스트 해야하는건지 .... 어렵다.

1 comment