Community

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

← Go back
TIL 2장 실용주의 접근법
#pragmatic
2년 전
896
1
  • 노션에서 적었던 것을 여기에 옮겨 적은 내용입니다.

책에서 기억하고 싶은 내용

  • 프로그래머들은 늘 유지보수 모드에 있다.

  • DRY - Don’t Repeat Yourself

  • 돌아가는 길이 지름길이다.

  • 개발자간에 적극적이고 빈번한 소통을 장려하는 것.

  • 관련 없는 것들 간에 서로 영향이 없도록 하라.

  • 코드의 결합도를 줄이고 응집도를 높여라

  • 수정한 버그나, 추정치들을 기록하고 분석해라.

  • 우리가 프로젝트 초기에 항상 최선의 결정을 내리는 것은 아니다.

  • 의존도를 잘 정의하고 추상화한 인터페이스를 통해 감추자.

  • 목표물을 찾기 위해 예광탄을 써라. 예광탄 개발 방법은 점진적인 접근 방법이다.

  • 프로토타입은 제한된 몇 가지 질문에 답할 목적으로 설계되기 때문에 실제 제품보다 훨씬 적은 비용으로 빠르게 개발할 수 있다.

  • 문제 도메인에 가깝게 프로그래밍하라. 더 높은 추상화 수준에서 작업함으로써 사소한 구현의 세부사항들을 무시하고 도메인의 문제들을 푸는 일에만 정신을 집중할 수 있다.

  • 복잡한 문법에 대한 트레이드오프 대상은 확장가능성과 유지보수다. 현재의 고통을 참고 더 복잡하지만 가독성 좋은 언어를 채택하는 편이 좋다.

  • 추정치를 물었을 때 자신에게 물어보아야 할 첫 번째 질문은 답변이 사용될 상황이다. 사용하는 단위가 결과의 해석에 차이를 가져온다.

  • 상대방이 무엇을 묻고 있는지에 대해 이해해야 한다.

  • 요청한 것이 무엇인지 이해한 후에는 대력적이고, 꾸밈없는 모델을 만들어라. 모델은 개발을 하는 동안 디딤대가 되어줄 뿐 아니라 시스템을 어떻게 구현해야 할 지에 대한 대략적인 그림을 제공해 줄 것. 그러나 모델을 만드는 것은 추정 프로세스에 부정확성을 야기. 간결함과 정확성을 맞교환 하고 있는 것.

  • 모델을 컴포넌트로 나누어라. 나누면서 모델에 영향을 미치는 매개변수를 규명해라. 매개 변수에 값을 주어라. 답을 계산하라. 추정치를 기록해서 분석해라.

  • 점증적 개발을 이용해 추정의 정확도를 높이자.

오늘 읽은 소감

  • 앞부분의 내용이 추상화를 꼭 하자고 나를 다독이는 느낌이었다. DRY의 경우도 반복되는 부분들을 추상화 해서 뽑아내면 자연스럽게 사라질 문제들이다. 직교성 또한 추상화를 최대한 한다면 서로 연관되는 일 없이 직교성을 유지할 수 있을 것이다. 결국 추상화를 잘하면 유연하고 실용적이고 재사용성이 높은 개발을 할 수 있다는 걸 얘기하고 있는 것 같다.

  • 애자일처럼 아니 애자일의 얘기를 해주는 것 같다. 모든 프로젝트는 처음에 설계된대로 흘러가지 않고 사용자의 요구사항은 계속해서 바뀌므로 한 번에 설계를 끝낸 후 그것대로 만들다가 한 번에 뙇! 하고 보여주는게 아니라 지속적으로 개발한 사항을 공유하고 피드백 받아야 한다는 걸 얘기한다. 그래야 바뀐 요구사항에 따라 개발 방향을 바꿀 수도 있고 현재 진행 상황을 보고 더 나은 방향을 고객들과 의논할 수 있기 때문이다. 그러면서 개발자 역시도 제품에 대해 생각하고 좋은 아이디어를 내고 신뢰도가 높아진다고 생각한다. 또 이렇게 짧은 공유 주기를 가짐으로써 해당 제품의 도메인에 대한 이해도 역시 높아진다.

  • 그리고 이렇게 짧은 주기로 개발을 반복하다 보면 자신이 하고 있는 일을 훨씬 더 잘 파악할 수 있고 일정이나 요구사항에 대한 추정을 더 잘 할 수 있게 된다. 개발하기 어려운 부분의 경우 다른 대안을 찾아 의견을 공유할 수도 있고 일정이 오래 걸리는 것을 사전에 인지시켜줄 수도 있다는 점이 개발하는 사람들의 제품에 대한 애정도 높일 수 있다.

  • 2장 실용주의 접근법에서 7가지 접근법에 대해 이야기를 했는데 결국 하나하나 따로 보는게 아니라 모두가 연결되어 있다고 생각한다. 즉 이 중에서 하나의 접근법만 사용하는게 아니라 상황에따라 여러 개를 한 번에 도입해서 좋은 제품을 만드는 게 좋은 개발자, 실용주의적인 개발자가 되는 길이라고 생각된다.

1 comment