|
SW를 개발하면서 항상 "내가 작성한 코드가 품질이 좋은걸까? 나는 잘하고 있는걸까?" 라는 의심이 들곤 했습니다.
때로는 프로젝트를 진행하면서 다른 사람의 코드를 리뷰를 할 때, 좋은 코드의 기준은 알지만 분석해보는 경험이 적어 어려움을 느끼곤 했습니다.
문제점을 알고 솔루션을 알아야 다양한 상황에서 코딩 스타일을 올바르게 적용할 수 있습니다.
|
|
어떤 코드가 좋은 코드일까? 좋음, 나쁨의 기준도 사람마다 다르다.
하나의 프로그램을 만드는 개발자들이 모여 좋은 코드의 기준을 정하게 된다. 그 프로그램을 만들 때는 협의된 기준을 따르는 코드를 좋은 코드가 된다. 회사에서 코드리뷰(Code Review) 같은 문화가 생기는 것도 같은 이유다.
혼자서 공부할 때는 코드리뷰를 할 수 없다. 그럴 때 구글 스타일 가이드처럼 다른 사람들이 세워놓은 기준을 따르기도 한다. 스타일 가이드를 따를 때 단점은 어떤 문제점 때문에 각 기준을 세우게 됐는지 파악하기가 어렵다. 어떤 문제점 때문에 스타일 가이드가 정의되었는지 모른 채 맹목적으로 그 가이드를 따르는 부작용이 생기기도 한다.
IntelliJ 같은 통합 개발 도구(IDE : Integration Development Enviornment)에선 정적 코드 검사 플러그인을 지원해서 코드에서 발생할 수 있는 잠재적인 문제점을 알려주기도 한다. 하지만 정적 코드 검사는 실행 중 발생할 수 있는 문제점을 알려주지는 않는다. 사람이 읽기 좋은 코드가 무엇인지도 알려주지 않는다.
왜 코딩 스타일(기준)이 만들어졌는지 문제점까지 알고 있어야 코딩 스타일을 적용해도 바르게 사용할 수 있는 것이다. '자바 코딩의 기술'에서는 '샘플 코드 제시-> 문제점 분석 -> 해결(코딩 가이드 정리)'의 순서로 구성되어있다.
장점 1. 문제점을 포함한 짧은 예제 코드를 개선하며 좋은 코드로 바꿔가는 모습을 볼 수 있다. 코딩 스타일 문서는 코드를 어떻게 작성해야 하는지 결과만 있고, 왜 그렇게 작성해야하는지 원인은 설명되어 있지 않다. 이 책에서는 '왜?'라는 궁금증을 채울 수 있어서 좋았다. 단, 생성자, 조건문, 반복문, 메서드와 같은 기본적인 자바 문법 개념은 알고 있어야 한다.
![]() ![]() ![]()
장점 2. 책에서 설명하고 있는 사례들이 모두 인덱스로 이어져있다. 이 책은 공부한 각 개념을 넓은 관점에서 어떻게 연관이 있는지 설명해주고 있어서 조금 더 생각해볼 기회를 줘서 좋았다. 각 개념을 설명해주는 것에서 그치지 않고 학습한 내용들이 언제, 어떻게 사용되는지 각 인덱스로 이어지게 구성되어있다.
![]() ![]()
이 책을 읽기전에 '유지보수 가능한 코딩의 기술'을 먼저 읽었었다. 순서는 '(똑똑하게 코딩하는 법) 자바 코딩의 기술'을 먼저 읽고 '(유지보수 가능한) 자바 코딩의 기술'을 읽는 게 맞는 것 같다.
한 줄 ~ 메소드, 클래스 규모까지는 '(똑똑하게 코딩하는 법) 자바 코딩의 기술'에서 설명하는 내용을 통해 좋은 습관을 먼저 만들고, 그 후 프로그램(프로젝트) 단위는 '(유지보수 가능한) 자바 코딩의 기술'을 공부하며 유지를 한다면 혼자 공부하더라도 일정 수준까지는 성장이 가능할 것 같다.
|
|
[자바코딩의 기술 - 길벗 출판사] 안녕하세요! 저는 컴퓨터 관련 학과에서 재학중인 공대생이며 2년동안 컴퓨터 언어라는 것을 배웠습니다. 이 책을 처음 봤을때는 제가 짜고 있는 코드가 프로그래머로서 많이 부족한 것을 깨달았습니다. 이 책은 저 같이 아무 생각 없이 코드를 짜는 것이 당연해지는 사람들에게 좋은 길잡이 역할을 해줄 것입니다. 그런 점에서 저는 코딩을 이제 막 시작하신 분들 보다 어느정도 해본 초보 개발자분들께 추천하고 싶습니다. 정말 기초적인 조건문에서 코드를 간결히 작성하지 못한 부분을 바로 잡아주는 것부터 시작해서 가독성 좋은 코드를 구현하기 위한 함수 이름, 슬기로운 주석 사용법, 불필요한 메모리 사용 피하기 등 너무나도 기초적이지만 쉽게 놓치는 부분들을 바로 잡아줍니다. 더 나은 개발자가 되고 싶은 분들께 추천합니다! |
|
코드를 잘 짜기 위해서는 어떻게 해야할까요 ?
마지막으로 비록 얇은 책이지만, 내용은 결코 두꺼운 책에 비해 뒤지지 않는다고 말해줄 수 있다.
|