실용주의 프로그래머 Topic 26

Topic 26 리소스 사용의 균형

데이비드 토머스, 앤드류 헌트

Alt text

느낌표 ! (인상 깊은 문장 | 문맥)

많은 개발자가 리소스 할당과 해제를 다루는 일관된 방침을 갖고 있지 않다. 그래서 우리는 간단한 팁 하나를 제한하고자 한다.

자신이 시작한 것은 자신이 끝내라

p.167

이와 같은 개념은 리소스 할당 뿐만 아니라 SRP(Single Responsibility Principle, 단일 책임 원칙) 등 에서 볼 수 있다. 즉 이와 같은 개념은 매우 중요하다는 것을 의미하기도 하다. 책임의 소지가 명확할 때 재사용성, 유지보수성, 테스트 용이성 등 모든 부분에서 유리하다.

잘 모르겠을 땐 언제나 스코프를 줄이는 편이 낫다.

지역적으로 행동하라.

p.171

100%는 아니지만 변수를 줄일 때 이득이 따라온다. 객체지향에서는 캡슐화(encapsulation) 로 속성을 숨기고 행위를 하나로 묶는 것을 연상시킨다. 이럴 때 신경써야하는 변수 또 변수들의 연관성을 하나하나 알지 못해도 되기 때문에 가능하면 지역적으로 사용하는 것이 대체로 유익하다.

실용주의 프로그래머는 자신을 포함해서 아무도 믿지 않는다. 우리는 언제나 정말로 리소스가 적절하게 해제되었는지 실제로 점검하는 코드를 작성하는 것을 좋아한다.

p.175

아직 사용량이 방대하여 퍼포먼스적으로 고민한 서비스는 경험이 없다. 알뜰폰허브 프로젝트에 들어갔을 때 말도 안되는 쿼리로 부하가 발생되는 것을 확인하여 13초 -> 0.3 초로 줄인 경험 등은 있지만 서비스 측면에서 대규모 사용자를 운영 경험은 없다.

아직까지 궁금하고 아쉬운 부분은 성능 관련 경험이다. 메모리 누수를 경험해보지 못했고 또한 모니터링을 하는 습관도 없다. 그렇지만 위 인용구를 보고 성능 모니터링도 살펴보고 최적화도 고민해야 한다는 생각이 든다.

Topic 26 느낌

Topic 26 에서는 의식을 하고 있어야하는데 의식하지 못하고 있는 모습을 보게한다.


실용주의 프로그래머 Topic 25

Topic 25 단정적 프로그래밍

실용주의 프로그래머 Topic 27

Topic 27 헤드라이트를 앞서가지 말라

NCloud LB & SourcePipeline 구축하기
tech collection 서비스 성능 개선하기
Selenium 복권 구매 자동화 만들어보기
디자인 패턴
책 리뷰
블로그 챌린지