할당만큼 중요한 해제
•
프로그래밍은 결국 연산과 기억이라는 두 가지 개념을 활용한다.
•
통상의 프로그래머가 조금 더 다룰 수 있는 부분은 기억, 즉 메모리 관리 영역이기 때문에 이를 효율적으로 잘 관리할 수 있다면 프로그램 내구성을 튼튼하게 하는 데 큰 영향을 끼칠 수 있다.
•
메모리 관리 문제의 가장 대표적인 예시는 할당과 해제에 대한 문제이다.
•
내가 지금 할당하고 있는 변수가 메모리의 어떤 영역에 자리를 잡고 있는지, 그 자리의 크기는 얼마나 되는지, 그것이 언제 자리를 비워주는지에 대해 알아야 한다.
생명 유지 활동과 리팩토링
•
리팩토링도 우리가 건강을 유지하기 위해 다이어트를 하는 활동과 비슷하다.
•
프로그램을 생명으로 본다면 그 생명이 최적의 상태를 유지할 수 있도록 끊임없이 개선을 해야하기 때문이다.
•
리팩토링은 특정한 기간을 정해두고 하는 것이 아니라 다이어트처럼 언제든지 하는 것이라고 보는 것이 좋다.
•
무언가를 배우는 학습의 과정에서 복습(반추)이 얼마나 중요한지는 모두 알고 있을 것이다. 리팩토링의 시간이 마치 복습과도 같은 시간이다. 그 시간을 잘 활용해서 여러분 자신도, 여러분이 개발하고 있는 프로그램도 언제나 최상의 상태를 유지하길 바란다.
고장지점은 분산하고 관리지점은 집중하라
•
분산 아키텍처에서 단일 고장점으로 인해 시스템 전체가 위협받는 일이 없어야 하기 때문에 고장지점을 한 곳으로 집중시키지 말라는 뜻이다.
◦
고장지점을 분산시키기 위해서는 주로 클러스터를 구축하여 처리량을 분산시키거나 상태를 나눠 가지기도 하고 때로는 같은 상태를 복제해서 동일하게 가지고 있기도 한다.
•
관리지점을 집중하라는 표현은 변경되는 지점을 줄이라는 것이다. 병목현상이 발생할 우려가 있는 지점을 관리지점으로 두고 이를 공통적으로 사용할 수 있게 잘 선언해두라는 뜻인 것 같다.
•
애초에 데이터 시트를 만드는 방법과 도구도 개발자가 개발해야 할 스펙에 포함된다고 생각하는 것이 나중에 더 크고 복잡한 문제로 고생하지 않는 좋은 예방책이 될 것이다.
하나의 프로세스에서 출발하라
•
MSA 등 여러 개의 개별 컴포넌트로 시스템을 구성하는 것은 분명 큰 장점이 있다. 하지만 거기엔 과정이 필요하다.
•
하나의 프로세스에서 돌아가는 것부터 출발하는 것이 좋은 접근법이 될 것이다. 모든 일에는 순서가 있다. 차분하게 정석부터 나아가자
•
독립 프로그램은 그 자체로 완벽하고 아름답다. 이미 가본 길이거나 훌륭한 지침이 없는 이상 우선 하나의 프로세스로부터 출발하자.
표준화를 위해서는 사례를 공부하라
•
표준화란 결국 추상적인 개념이다. 구체적인 사례나 예시로부터 핵심적인 부분만 추출하여 문제를 간결하고 이해하기 쉽게 만드는 추상화 과정이다.
•
표준화란 좋은 표본이 된다. 사례를 공부해서 특징적인 것을 추려내는 연습을 잘 해두자.