////
Search
Duplicate
🪐

3. 개발

할당만큼 중요한 해제

프로그래밍은 결국 연산과 기억이라는 두 가지 개념을 활용한다.
통상의 프로그래머가 조금 더 다룰 수 있는 부분은 기억, 즉 메모리 관리 영역이기 때문에 이를 효율적으로 잘 관리할 수 있다면 프로그램 내구성을 튼튼하게 하는 데 큰 영향을 끼칠 수 있다.
메모리 관리 문제의 가장 대표적인 예시는 할당과 해제에 대한 문제이다.
내가 지금 할당하고 있는 변수가 메모리의 어떤 영역에 자리를 잡고 있는지, 그 자리의 크기는 얼마나 되는지, 그것이 언제 자리를 비워주는지에 대해 알아야 한다.

생명 유지 활동과 리팩토링

리팩토링도 우리가 건강을 유지하기 위해 다이어트를 하는 활동과 비슷하다.
프로그램을 생명으로 본다면 그 생명이 최적의 상태를 유지할 수 있도록 끊임없이 개선을 해야하기 때문이다.
리팩토링은 특정한 기간을 정해두고 하는 것이 아니라 다이어트처럼 언제든지 하는 것이라고 보는 것이 좋다.
무언가를 배우는 학습의 과정에서 복습(반추)이 얼마나 중요한지는 모두 알고 있을 것이다. 리팩토링의 시간이 마치 복습과도 같은 시간이다. 그 시간을 잘 활용해서 여러분 자신도, 여러분이 개발하고 있는 프로그램도 언제나 최상의 상태를 유지하길 바란다.

고장지점은 분산하고 관리지점은 집중하라

분산 아키텍처에서 단일 고장점으로 인해 시스템 전체가 위협받는 일이 없어야 하기 때문에 고장지점을 한 곳으로 집중시키지 말라는 뜻이다.
고장지점을 분산시키기 위해서는 주로 클러스터를 구축하여 처리량을 분산시키거나 상태를 나눠 가지기도 하고 때로는 같은 상태를 복제해서 동일하게 가지고 있기도 한다.
관리지점을 집중하라는 표현은 변경되는 지점을 줄이라는 것이다. 병목현상이 발생할 우려가 있는 지점을 관리지점으로 두고 이를 공통적으로 사용할 수 있게 잘 선언해두라는 뜻인 것 같다.
애초에 데이터 시트를 만드는 방법과 도구도 개발자가 개발해야 할 스펙에 포함된다고 생각하는 것이 나중에 더 크고 복잡한 문제로 고생하지 않는 좋은 예방책이 될 것이다.

하나의 프로세스에서 출발하라

MSA 등 여러 개의 개별 컴포넌트로 시스템을 구성하는 것은 분명 큰 장점이 있다. 하지만 거기엔 과정이 필요하다.
하나의 프로세스에서 돌아가는 것부터 출발하는 것이 좋은 접근법이 될 것이다. 모든 일에는 순서가 있다. 차분하게 정석부터 나아가자
독립 프로그램은 그 자체로 완벽하고 아름답다. 이미 가본 길이거나 훌륭한 지침이 없는 이상 우선 하나의 프로세스로부터 출발하자.

표준화를 위해서는 사례를 공부하라

표준화란 결국 추상적인 개념이다. 구체적인 사례나 예시로부터 핵심적인 부분만 추출하여 문제를 간결하고 이해하기 쉽게 만드는 추상화 과정이다.
표준화란 좋은 표본이 된다. 사례를 공부해서 특징적인 것을 추려내는 연습을 잘 해두자.