Child pages
  • 좋은 코드란 무엇인가?
Skip to end of metadata
Go to start of metadata

좋은 코드란 무엇일까? "J2EE 설계와 개발" 책에서는 좋은 코드와 관련하여 몇 가지 특성을 이야기하고 있다. 애플리케이션을 개발할 때 이와 관련하여 생각하지만 항상 염두에 두고 있는 것은 아니기에 이 곳에 정리해 두려 한다.

  • 좋은 코드는 크게 변경하지 않고도 확장이 가능하다. 모든 것을 수정하지 않고도 새로운 기능을 추가하기가 쉽다.
  • 좋은 코드는 읽기 쉽고, 유지보수하기도 쉽다.
  • 좋은 코드는 문서화가 잘 되어 있다.
  • 좋은 코드는 그 주위에 나쁜 코드를 작성하기 어렵게 만든다. 예를 들며, 객체들은 깔끔하고, 사용하기 쉬운 인터페이스를 드러내는데, 이는 좋은 코드를 작성하게 해준다. 좋은 코드는 좋은 코드를, 나쁜 코드는 나쁜 코드를 낳는다.
  • 좋은 코드는 테스트하기 쉽다.
  • 좋은 코드는 디버그하기 쉽다. 어떤 코드가 완벽하게 동작한다 할지라도 만일 디버그를 소홀히 한다면 이는 여전히 문제의 소지가 있음을 기억하다. 개발자가 완벽하지 않은 코드 내에서 에러를 추적하고 있는데, 스팩 트레이스가 완벽하긴 하지만 불명확한 코드 속으로 사라져 버린다면 어떻게 될까?
  • 좋은 코드는 중복된 코드를 포함하지 않는다.
  • 좋은 코드는 재사용된다.

자바 웹 개발자들은 점점 더 프레임워크나 J2EE API를 사용하는데 집중하는 듯하다. 나 또한 몇 권의 프레임워크와 관련된 책을 냈기 때문에 이 부분에서 자유로울 수 있는 입장은 아니다. 내가 처음 자바와 Servlet/JSP를 학습한 이후 집중한 것은 프레임워크였다. 사회에서 필요로하는 것이 프레임워크였으며, 프레임워크가 내가 원하는 많은 문제들을 해결해 주었기 때문이다. 하지만 프레임워크가 나의 모든 문제를 해결해 줄 수는 없었고, 정말 중요한 비지니스 로직은 프레임워크와 아무런 관련이 없었다. 프레임워크는 프로젝트의 전체적인 큰 틀을 잡아주고, 일관된 방향으로 개발할 수 있도록 도와주는 보조적인 수단이다. 정작 우리가 집중해야하는 것은 좋은 코드를 만들기 위해 더 많은 노력과 연습을 해야 한다.

이 책에서 로드 존슨은 다음과 같이 이야기하고 있다.

많은 개발자들은 J2EE API와 씨름하는 데 많은 시간을 투자하지만, 좋은 코드 습관을 충실히 따르는 데는 거의 시간을 투자하지 않는다.

좋은 코드 습관을 만드는 것에 더 많은 시간을 할애하고 노력하는 것이 J2EE 프로젝트를 성공할 수 있는 길이라 이야기하고 있다. 자바 개발자들은 다음 이야기를 한번 쯤 고민해 봐야한다.

객체 지향 설계는 어떤 특별한 구현 기술(J2EE나 자바와 같은)보다 중요하다. 좋은 프로그래밍 습관과 훌륭한 객체 지향 설계는 좋은 J2EE 애플리케이션의 근간이다. 나쁜 자바 코드는 나쁜 J2EE 코드이다.

좋은 객체 지향 코드를 만드는 것에 관심이 있다면 Robert C. Martin의 Clean Code를 읽어보는 것도 좋겠다.

번역서까지 나와 있는 상태이니 관심이 있다면 얼마든지 학습할 수 있을 듯하다. 이 책은 자바와 관련해 집중적으로 다루고 있기 때문에 웹 개발자의 경우 다소 지루하거나 필요성을 느끼지 못할 수 있다. 그럴 경우 좀 더 피부로 와 닿을 수 있는 "J2EE 설계와 개발" 책을 읽는 것도 좋다. 이 책은 워낙 방대한 주제를 다루고 있기 때문에 모든 부분을 모두 소화하기는 힘들 듯하다. 만약 아직 경력이 짧거나 경험이 부족해 이 책 전체를 이해하기 힘들다면 이 책의 4장 "J2EE 프로젝트의 설계 기술 및 코딩 표준"만이라도 읽어보면 많은 도움이 된다. 이 책의 핵심 내용을 다루고 있는 부분이다. 객체 지향, 자바, J2EE와 관련된 전반적인 내용을 이해할 수 있을 것이다. 이 책의 번역이 엉망이라 많은 개발자에게 욕을 먹었지만 4장은 나름 번역도 괜찮기 때문에 읽는데는 큰 무리가 없을 것으로 생각한다. 영어가 된다면 원서로 읽는 것도 나쁘지는 않을 듯하다.

나 또한 아직 부족한 것이 많기 때문에 가끔은 과거에 읽었던 책들을 다시금 되돌아 보면서 중요한 부분을 되집어 본다. 최근에 무엇인가 준비하면서 이 책들을 다시금 보고 있는데 느끼는 부분이 많다. 과거에 읽었던 책 중에서 좋았다고 생각하는 책이 있다면 다시 한번 읽어보는 것도 많은 도움이 되리라 생각한다.