실용주의 프런트 엔드 개발

프런트 엔드 기술자로 있으면서 필요한 내용을 적었다. 실제로 유용한 기술들을 작성했으며 주제별로 한 권의 책 내용이 있을 만큼 중요한 내용이다. 주제별로 중요한 내용을 위주로 작성했다.

이해하기 쉬운 코드를 작성하는 것은 소프트웨어 개발자라면 중요한 역량이다. 우리는 코드 작성 시간보다 대부분 코드를 이해하기 위해 보고만 있는 시간이 많다. 시간은 유한하고 제한시간에 요구사항을 개발해야 한다. 그러므로 서비스를 운영하는 나 자신 또는 동료가 코드를 이해하는 데 소비되는 시간을 최소화해야 한다.

기능 추가를 위해 코드를 추가하는 작업을 한다. 코드의 설계를 완벽히 이해하지 않고 코드를 수정하면, 코드 구조가 뒤죽박죽되어 해당 코드를 보고 설계를 파악하기 어렵다. 코드 설계는 점점 노후 되고 기능 추가 시 오래 걸릴 수밖에 없다. 기능을 추가하면서 설계한 것들을 모두 기억할 수 없으므로 깔끔하게 정리를 하지 않으면 복잡한 내용을 모두 이해할 수 없다. 프로그래밍 속도를 빠르게 하려면 깔끔한 설계를 유지해 설계가 노후화되지 않게 해야 한다.

코드 작성하는 기술 외에 필요한 역량은 서비스를 안정적으로 관리하는 능력이다. 안정적인 서비스 운영은 일정 산정으로 시작된다. 특정 요구사항을 구현 가능한 일정을 산정해야 하며 불가능한 일정이 나오면 먼저 동작하는 코드를 양산하게 되는 경우가 발생한다. 즉, 현실적인 일정을 산정하는 것이 시작이다.

다음으로 중요한 것은 형상관리와 배포이다. 코드를 작성하여 양산하는 것도 중요하지만 작성된 코드를 관리하는 것도 중요하다. 잘 나눠진 브랜치는 적시에 배포할 수 있으며 잘 나눠진 커밋은 기능을 삭제할 때 시간을 절약할 수 있다. 형상관리와 배포 전략에 따라 개발·배포·협업의 형태가 달라지므로 전략을 숙지하는 것이 중요하다.