Community

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

← Go back
3. TIL (2022.03.22)
#pragmatic
2년 전
911

3. TIL (2022.03.22)

오늘 TIL 3줄 요약

  • DRY 원칙, 중복하지 말 것.

  • 코드의 결합성을 줄여 직교성을 유지한다. 이것으로 유연하고, 적응 가능한 소프트웨어를 만든다.

  • 예광탄 코드와 프로토타입의 특징과 차이.

TIL (Today I Learned) 날짜

2022.03.21-2022.03.22

오늘 읽은 범위

2장. 실용주의 접근법

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

  • DRY 원칙, 중복의 해악

    • 프로그래머가 갖는 불안정성은 결국 소위 유지보수, 지식을 재조직하고 재표현하는 데 대부분의 시간을 보낸다는 것을 의미한다.

    • 애플리케이션이 출시되었을 때 비로소 유지보수가 시작된다고 믿는 것은 틀렸다.

    • 소프트웨어를 신뢰성 높게 개발하고, 개발을 이해하고 유지보수하기 쉽게 만드는 유일한 길은 DRY 원칙을 지키는 것 뿐.

    • Don’t Repeat yourself 반복하지 마라!

    • 재사용하기 쉽게 만드는 것, 중복을 피하는 길.

  • 직교성의 원칙

    • 독립성, 코드의 결합도 줄이기

    • 헬리콥터 조종의 예를 기억하자. 관련 없는 것들 간에 서로 영향이 없도록 하는 것이다.

    • 두가지 가장 큰 장점은 생산성 향상과 리스크 감소. (사실 모두가 바라는 지향점)

    • 직교적인 결과물은 M가지 일을 하는 컴포넌트와 N가지 일을 하는 컴포넌트의 기능적 조합은 M*N 가짓수. 즉, 단위 노력당 더 많은 기능을 할 수 있다.

    • 감염된 코드는 격리하고, 시스템이 잘 깨지지 않는다.

    • 단위 테스트를 설계하고 더 많은 테스트가 가능하다.

    • 특정 벤더나 제품, 플랫폼에 덜 종속될 것이다.

  • 직교성을 유지하기 위한 노력, 리팩터링

    • 코드의 결합도를 줄인다. → 디미터 법칙

    • 전역 데이터를 피한다.

    • 유사한 함수를 피한다.

  • 최종 결정이란 없다, 가역성

    • 중요하면서도 되돌릴 수 없는 결정을 가능한 줄이게 될 것이다.

    • 프로젝트 초기의 잘못된 결정, 또는 고집할 수 없는 환경적 변화에 유연하게 대응할 수 있어야 한다.

    • 특정 벤더 제품에 대한 의존도 등을 추상화한 인터페이스로 감출 수 있다.

  • 예광탄과 프로토타입

    • 목표물을 찾기 위해 예광탄을 쓴다.

    • 예광탄은 요소간 상호작용을 만들고 구체화 해놓으면 개발자들의 생산성이 높아지고 일관성도 생긴다.

    • 요구사항에 관해 데모를 보여줄 수 있으며, 진전 상황에 대해 더 정확하게 감을 잡을 수 있다.

    • 일부 측면에서 실용적이고 즉각적인 반응을 얻을 수 있다는 점에서 프로토타입과 닮았지만, 재사용의 측면에서 중요한 차이가 있다.

    • 프로토타입은 최종 시스템의 일부 특정 단면을 그린다. 예광탄 코드와 다르게 포스트잇 또한 좋은 프로토타입 수단이 된다.

    • 프로토타입은 목적을 달성 후 폐기될 것이다.

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

어떻게 중복이 생기는가. 실제 업무를 진행하면서 생기는 ‘어쩔 수 없는' 중복은 ‘있으니까'라고 생각했던 안일한 마음이 완전 털려버린 기분이다. 결국 내 중복은 자기합리화와 핑계이고 짧은 배움이었다며. 팁 상자에 등장하는 말들은 짧고 강렬해서 왠지 다 아는 것 같았는데, 볼 때마다 뜨끔하게 된다. 결합도는 줄이고, 응집도를 높이고, 직교성을 향상시킨다. 그렇게 하기 위해선, 직교적인 시스템 설계의 중요성. 코드를 작성하는 것만으로 직교성을 떨어뜨릴 위험에 있다는 것 항상 명심하자. 아, 그리고 추정 섹션은 완전 초 꿀팁. 😍

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

  • 도메인 언어 섹션이 전반적으로 이해가 힘들었다. 어떤 프로그래밍 언어 영역 자체를 의미하는 것일지, 소형 언어를 구현한다는 개념이 어떤 것인지.

오늘 읽은 다른사람의 TIL

  • https://solyi.kr/248

    → 놓친 부분이 있는지, 다시 찾아보게 된 개념이 있어서 꼽았다. 정리를 잘 해두신 것 같다. ☺️

  • https://hyuuny.tistory.com/56

    → 이제 즐겨찾기 해놓은 TIL, 정리도 깔끔하게 해두시고 공감도 많이 된다. 😎