개발자가 배워야 하는 가장 중요한 것은 언제 코딩해야 하는지 아는 것이다.
항상 작성한 코드를 테스트하고 유지보수 해야한다. 라이브러리를 재활용하거나 기능을 제거하여, 시간을 절약하고 코드베이스를 날렵하고 가볍게 만들 수 있다.
요구사항 분석을 잘 하지 못하게 되면 코드가 길어지며 비효율적인 로직을 구성하게 될 것이다.
하지만 잘 분석하게 되면 적은 코드로 구현할 수 있는 간단한 문제를 정의할 수 있게 된다.
처음 프로젝트를 시작하게 되었을 때는, 1~2개의 소스만 있으므로 모든게 쉽고 빠르며 훌륭하다.
하지만 프로젝트가 커지면, 디렉토리는 더 많은 소스파일로 가득차게 된다. 얼마 지나지 않아서 소스파일을 정리하는데 더 많은 디렉토리가 필요하게 된다. 이제는 어느 함수가 어디에 있는지, 어느 함수를 호출하는지 기억할 수 없게 되고, 버그를 잡는데에도 시간이 오래 걸릴 것이다.
여기서 나오는 것이 코드베이스를 작게 유지
이다.
유틸리티
를 많이 생성하여 중복 코드를 제거하기(상관없는 하위문제 추출)사용하지 않는 코드 제거하기
나도 그랬다. 사용하지 않는 코드는 사용을 안하더라도 누가 뭐라고 하던 이미 내가 구현하는데에 있어서 공들였던 시간이 들어갔을 것이다. 여기서 제거하는 것은 내가 구현을 하며 노력했던 시간을 없앤다는 것인데, 이 기능을 사용하지 않는다면 과감하게 지워야 할 것이라고 생각한다. 지금까지는 내가 구현하는게 아까워서라도 주석을 남겨서 흔적을 두었는데 그렇게 하는 것이 아니라 지워야 또 주석이 사라져서 가독성을 높일 것이다.
기능을 주석처리 하지 않고 그냥 놔두는 형태라면 메모리가 초과하는 경우에도 메모리 초과 에러를 뿜어내는 것보다 안정적으로 프로그램이 돌아가는게 더 이상적인 것이다.
그렇기에, 나는 이제부터 사용하지 않는 코드를 정확하게 파악하여 제거하는 습관을 들여야겠다.
프로그래머는 이미 존재하는 라이브러리로 내 문제를 풀 수 있는 상황이 많다는 것을 모른다고 한다.
그냥 내가 주로 쓰는 언어는 자바이기 때문에 자바에 있어서 변수들의 기본 제공해주는 메소드들을 잘 기억하고 알고 있다면
누군가는 로직으로 구현할 때, 나는 기본 메소드로 똑같은 기능을 구현할 수 있을 것이다.
항상 개발을 진행함에 있어서 요구사항을 만들어 내는 능력을 배양해야 하기 때문에 요구사항을 분석하는 안목을 기르고 그에 따른 알고리즘 지식을 기반하여 코드를 작성해 나간다면 코드는 짧고 간결하게 그리고 단단한 로직을 짤 수 있을 것이라고 생각한다.👍