좋은 코드란 무엇일까?
좋은 코드란 무엇인가 물어보면 대답하기 어려운 경우가 많다 그래서 자료를 찾아보며 하나씩 정리해보려고 한다
1.비즈니스 요구사항을 만족하는 코드
작성한 코드를 크게 두가지로 분류하면 프로토타입 코드와 지속 가능한 코드로 분류할 수 있다
프로토타입 코드는 가독성이 낮고 중복이 많고 많은 오류를 발생시킨다. 하지만 빠르게 작성되기에 유지보수 비용이 포기하고 비즈니스 타이밍을 맞출 수 있다
다음으로는 지속가능한 코드이다. 시스템의 규모가 특정 수준에 이르면 프로토타입 코드는 낮은 가독성과 많은 중복으로 인해 유지보수 비용을 발생시킨다.
따라서 좋은 코드는 맥락에 따라 결정된다고 생각할 수 있다. 엔지니어링 가치를 추구해야 할 상황이면 지속 가능한 코드를, 비즈니스 타이밍이 중요한 상황이면 프로토타입 코드를 선택해야 할 것이다
2. 읽기 쉬운 코드
2.1 직관적인 패키지 구조
코드가 동작하는 곳과 코드가 정의된 곳 사이의 거리가 멀면 용도를 파악하기 힘들어지고 결과적으로 어디에서 쓰는지 모르기 때문에 수정, 사용되지 않는 죽은 코드가 된다
2.2 일관성 있는 Naming
예를 들어 함수명의 Naming을 정의할 때 convention을 지켜 정의하면 함수를 파악하는데 큰 도움이 된다
2.3 파라미터 개수가 최소인 함수
파라미터 개수가 많아지면 각각의 역할을 파악하기 힘들어지기 때문에, DTO로 감싸서 코드의 가독성을 높이는 것이 좋다
2.4 변경 가능성이 최소화 된 변수와 객체
변경 가능성을 최소화하면 물리적으로 불필요한 시간을 줄여줄 수 있고 코드의 유지보수성을 높일 수 있다
3. 추적하기 좋은 코드
예를 들어 AOP 적용을 고민할 필요가 있다. AOP를 적용하면 중복 로직을 제거하여 깔끔한 코드를 유지할 수 있게 되지만, 로직들이 추상화되기 때문에 해당 코드를 추적하기 어렵게 된다