요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

우리가 어떤 사람을 만났을 때, 첫인상이 그 사람의 이미지를 결정할 때가 많습니다. 코드 또한 마찬가지입니다. 프로그래밍에서 ‘코드 스타일’은 그 코드의 첫인상이 됩니다. 통일된 스타일로 작성된 코드는 깔끔하고 전문적이라는 이미지를 주고, 코드를 읽는 사람에게 좋은 인상을 남길 수 있죠. 그러나 현업에서 일하다 보면 코드 스타일보다 코드 내용에 집중하게 될 때가 더 많은데요, 자연스럽게 코드 스타일에는 소홀해지기 마련입니다.

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

개발자에게 ‘코드 스타일’ 왜 중요할까?

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

우리가 어떤 사람을 만났을 때, 첫인상이 그 사람의 이미지를 결정할 때가 많습니다. 코드 또한 마찬가지입니다. 프로그래밍에서 ‘코드 스타일’은 그 코드의 첫인상이 됩니다. 통일된 스타일로 작성된 코드는 깔끔하고 전문적이라는 이미지를 주고, 코드를 읽는 사람에게 좋은 인상을 남길 수 있죠. 그러나 현업에서 일하다 보면 코드 스타일보다 코드 내용에 집중하게 될 때가 더 많은데요, 자연스럽게 코드 스타일에는 소홀해지기 마련입니다.

 

<출처: Google Gemini>

 

그러나 좋은 코드를 작성하기 위해서는 코드 스타일도 신경 써야 합니다. 통일된 스타일로 작성된 코드는 그렇지 않은 코드보다 가독성이 높습니다. 이름, 인덴트 등 대략적인 부분만 보더라도, 해당 부분이 어떤 역할을 하는지 판단할 수 있기 때문입니다. 일관된 코드 스타일은 코드를 읽는 사람으로 하여금, 코드의 의도를 빠르게 파악하고 원하는 정보를 쉽게 찾을 수 있도록 도와줍니다.

 

이 글에서는 개발자에게 코드 스타일이 왜 중요한지, 그리고 어떻게 코드 스타일을 고려할 수 있을지 함께 살펴보겠습니다.

 

‘코드 스타일 가이드’ 살펴보기

사람의 첫인상은 많은 요소들에 의해 결정됩니다. 헤어, 메이크업 등 외모부터 시작해서 목소리, 걸음걸이 등 여러 요소가 복합적으로 작용합니다. 그렇다면 코드의 첫인상을 결정짓는 코드 스타일은 대체 무엇이고, 어떤 요소들이 있을까요?

 

 

코드 스타일에 포함되는 내용

코드 스타일은 단순히 포맷팅만을 다루지 않습니다. 주석, 네이밍, 스코프, 예외 처리 등 코드의 전반에 걸쳐, Best Practice를 다루는 내용이라고 할 수 있습니다. Java 스타일 가이드에는 어떤 내용들이 포함되는지 한 번 살펴볼게요.

 

1) 포맷팅: 인덴트

많은 언어에서 인덴트의 칸수는 문법에 영향을 주지 않습니다. 예를 들어, Java로 작성된 다음의 두 코드를 살펴보겠습니다.

public class Main {
  public static void main(String[] args) {
    System.out.println("Hello World");
  }
}

<인덴트가 2칸인 코드>

 

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

<인덴트가 4칸인 코드>

 

두 코드는 “Hello World”를 출력하는 같은 작업을 하지만, 인덴트의 칸수가 다릅니다. 위 코드를 보면 어떤 인덴트가 더 나은 인덴트인지 알 수 없습니다. 사실 어느 한 쪽이 더 낫다고 볼 수 없습니다. 두 코드 모두 일관성 있게 작성된 코드이기 때문입니다. 반면 인덴트가 일정하지 않은 다음 코드를 살펴볼게요.

 

public class Main {
    public static void main(String[] args) {
      System.out.println("Hello World");
    }
}

<인덴트가 일정하지 않은 코드>

 

위 코드의 경우 4칸 인덴트와 2칸 인덴트를 혼용하여 사용하고 있습니다. 이는 코드의 가독성을 해칠 수 있으므로, 지양해야 하는 스타일입니다.

 

2) 네이밍: 언더스코어 사용하지 않기 (참고)

Google Java 스타일 가이드에는 언더스코어를 사용하지 말라는 항목이 있습니다. coin_num과 같이 변수나 함수, 클래스 등의 이름을 작성할 때 언더스코어를 쓰지 말라는 것입니다.

 

언더스코어를 사용하지 않으면, 변수 이름은 coinNum과 같이 카멜 케이스(Camel Case), 메서드나 클래스 등의 이름은 CoinManager와 같은 파스칼 케이스(Pascal Case)가 됩니다.

 

public class CoinManager {
  private int coinNum = 0;
    
  public void getCoin() {
    return coinNum;
  }
    
  public void changeCoin(int delta) {
    coinNum += delta;
    if (coinNum < 0) {
      coinNum = 0;
    }
  }
}

 

개인적으로도 자바에서 언더 스코어를 사용하지 않는 스타일을 더 좋아하는데요. 이렇게 작성된 코드는 자바의 ‘블럭스러운’ 느낌을 줍니다. 만약 자바 코드가 위와 같은 네이밍 컨벤션을 따르지 않는다면 자바 코드임이 잘 느껴지지 않고, 익숙한 네이밍 컨벤션을 벗어났기 때문에 변수와 메서드, 클래스 등의 구분이 상대적으로 어려워질 것입니다.

 

각 언어의 스타일 가이드

그렇다면 스타일 컨벤션은 누가 정하는 걸까요? 사실 프로젝트 내에서 통일했고 팀원들이 모두 동의했다면, 어떤 스타일로 코드를 작성해도 크게 상관은 없습니다. 그러나 늘 하나의 프로젝트만 맡거나, 매번 같은 팀원들과 업무를 진행한다는 보장이 없기 때문인데요.

 

팀이 바뀌거나 새로운 팀원이 들어올 때, 다른 회사로 이직할 때도 해당 환경에서 통일된 코드 스타일을 유지해야 합니다. 이때 각 환경에서의 코드 스타일이 모두 다르다면, 코드 스타일은 가독성을 높이는 데 큰 역할을 하지 못할 것입니다. 어떤 팀에서는 변수 이름에 해당되는 네이밍이었는데, 다른 팀을 갔더니 메서드 이름을 해당 네이밍을 통해 짓고 있다면, 팀을 옮겼을 때 큰 혼란이 올 수 있습니다.

 

따라서 코드 스타일은 일반적으로 많이 사용하는 가이드가 마련되어 있습니다. 그 대표적인 스타일 가이드가 구글에서 발행한 ‘구글 코드 스타일 가이드’입니다.

 

 

구글 코드 스타일 가이드는 이외에도 많은 언어들을 다루고 있는데요. 널리 사용되는 스타일 가이드인 만큼, 구글 스타일 가이드에 따른다면 훨씬 더 깔끔하고 전문적인 코드를 작성할 수 있게 될 것입니다.

 

 

코드 스타일에 신경 써야 하는 이유

코드 스타일은 나 자신을 알리는 것, 그리고 팀과 협업하는 데에도 큰 영향을 미칩니다. 그렇기에 코드를 작성할 때 코드 스타일을 더욱 신경 쓰는 습관을 길러야 합니다. 아무리 열심히 작성한 코드라도, 코드 스타일이 일관되지 않으면 그 코드를 읽는 사람은 좋은 인상을 받기 어렵습니다.

 

나를 알리는 코드

요즘 많은 개발자들이 자신을 알리기 위해 포트폴리오를 준비합니다. 어떤 기업은 지원서에 깃헙 주소를 필수로 기재해야 하고, 블로그 포스트 등으로 본인의 코드를 공유하기도 합니다. 저 또한 네이버 지식인 등에서 활동하며 코드를 공유하기도 했고요.

 

이처럼 여러분의 코드를 보는 사람은 다양할 수 있습니다. 그리고 그중에서도 정말 신경 써야 할 사람들은 다른 전문가들이고요. 코드 스타일에 익숙해진 전문가들은 코드를 보고 어떤 생각을 할까요? 여러분이 코드를 작성할 때 고민한 내용, 이를 통해서 해결할 수 있었던 문제를 전문가들에게 잘 보여주기 위해서는 다음을 고려해야 합니다.

 

  • 코드 스타일이 제대로 잡혀 있지 않으면 코드 내용을 보려고 하지 않는다.
  • 코드를 읽었다고 해도 이미 좋지 않은 인상을 받은 후이다.

 

코드 스타일은 그 사람의 코드를 가장 먼저 판단할 수 있는 요소입니다. 코드 스타일을 유지하지 않으면서 내가 코드를 얼마나 잘 짰는지, 얼마나 고심해서 작성했는지, 알아주길 바라는 건 욕심입니다. 누군가 내 코드를 알아주기를 원한다면, 최소한 읽기 쉽게 작성해야 합니다.

 

팀의 능률을 올리는 코드

팀 프로젝트에서는 다른 사람의 코드를 읽어야 하는 일이 많습니다. 이전에 비슷한 작업을 다른 사람이 어떻게 수행했는지 참고하는 일도 많고, 이슈가 생겼을 때 다른 사람의 코드를 디버깅해야 하는 일도 있습니다. 이때 팀 내에서 모두 같은 코드 스타일을 사용하고 있다면, 코드를 읽기 훨씬 수월해집니다. 이외에도 여러 이점이 있죠.

 

첫 번째로 코드의 유지보수성과 확장성이 좋아집니다. 코드 스타일이 일관되지 않은 프로젝트라면 새로운 기능을 추가하거나, 버그를 수정할 때 새로 작성하는 코드와 기존에 작성된 코드가 섞이면서 그 스타일도 뒤죽박죽이 됩니다. 저는 “좋은 코드가 좋은 제품을 만든다”고 보는데요. 새로운 코드를 작성할 때마다 점점 복잡해지고 읽기 힘들어진다면, 그 코드는 결코 좋은 제품을 만들어낼 수 없을 거라 생각합니다.

 

두 번째로 통일된 스타일을 사용하면 팀원들 간 지식의 공유가 용이해지며, 이는 곧 성공적인 코드 리뷰 문화 정착을 위한 발판이 될 수 있습니다. 많은 기업이 코드 리뷰의 중요성을 강조하고 도입하려 하지만, 실제로 이러한 프로세스가 정착되기는 쉽지 않습니다.

 

그 이유 중 하나는 서로 어떤 일을 하는지 잘 모르기 때문이죠. 즉, 팀 내 지식의 공유가 원활히 이루어지지 않기 때문입니다. 이러한 상황에서는 코드 리뷰를 요청받았을 때, 그 코드가 어떤 역할을 하는 코드인지부터, 전체적인 맥락을 우선 파악해야 하기 때문에 시간이 오래 걸립니다. 그러나 시간에 쫓기다 보면 리뷰를 빠르게 해주어야 하는데, 이렇게 되면 코드에서 눈으로 보이는 것만 대충 리뷰가 넘어가며, 코드 리뷰의 의미가 퇴색되죠.

 

물론 통일된 스타일을 사용하는 것만으로, 코드 리뷰 문화를 정착시킬 수는 없습니다. 각자 어떤 일을 어떻게 하는지 지식 공유를 정기적으로 해야 하고, 코드 리뷰에서 어떤 것들을 중점적으로 리뷰해야하는지와 그에 대한 책임감을 갖는 등 전제되어야 할 것이 많기 때문입니다. 하지만 코드 스타일을 통일시키지 않은 상태에서는 이 중 어떤 것도 하기 힘들다고 생각합니다. 다른 사람의 코드라도 내가 짠 것처럼 익숙하게 읽을 수 있고, 그 사람이 어떤 생각으로 코드를 짰는지 파악할 수 있게 하는 첫 단계가 바로 ‘통일된 코드 스타일’이기 때문입니다.

 

 

IDE에 코드 스타일 적용하기

다음은 IDE에 코드 스타일을 적용하는 방법을 알아보겠습니다. 개발자들이 많이 사용하는 IDE는 자동 포맷팅 기능을 지원하는데, 이 기능을 사용하면 적어도 코드 스타일에서 포맷팅에 관한 내용은 크게 신경 쓰지 않아도 됩니다.

 

그러나 팀원마다 서로 다른 IDE를 사용한다면 코드 스타일이 섞이기 쉽습니다. IDE는 기본적으로 내장되어 있는 자신만의 스타일로 코드를 포맷팅하기 때문에, 팀 내에서 합의된 코드 스타일로 IDE의 포맷팅 설정을 변경해 주어야 합니다. 가장 많이 사용되는 Intellij와 VsCode에서 Google Java Style Guide를 적용해 봤습니다.

 

Intellij IDEA를 이용한 Java 자동 포맷팅

먼저 Intellij에서 Google Java Style Guide를 적용해 봅시다. Intellij IDEA에서 File > Settings를 클릭합니다.

 

<출처: 작가>

 

팝업된 Settings 창에서 Plugins을 선택한 후 google-java-format을 검색합니다.

 

<출처: 작가>

 

Install 버튼을 클릭하면 플러그인이 설치되고 Restart IDE 버튼이 생깁니다. 버튼을 눌러 Intellij IDEA를 재시작해 줍니다.

다시 File > Settings를 들어가 보면 좌측에 google-java-format Settings 항목이 추가된 것을 확인할 수 있습니다. 이를 클릭하고 Enable google-java-format 항목을 체크해 줍니다.

 

<출처: 작가>

 

OK를 눌러 변경 사항을 저장해주고, File > New Projects Setup > Settings for New Projects…를 선택합니다.

 

<출처: 작가>

 

좌측에서 Other Settigns > google-java-format Settings를 선택하고, Enable google-java-format 항목에 체크해 줍니다.

 

<출처: 작가>

 

Help -> Edit Custom VM Options…를 클릭하여 다음을 붙여 넣어 줍니다.

--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED

 

<출처: 작가>

 

이제 Intellij IDEA를 재시작하면 Google의 Java Style 포맷팅이 적용됩니다. 이를 파일을 저장할 때마다 실행하기 위해 File > Settings에 들어가 Tools > Actions on Save에서 Reformat code를 활성화해 줍니다.

 

<출처: 작가>

 

OK를 눌러 수정 사항을 적용해 주면, 이제 파일을 저장할 때마다 코드가 Google Java Style로 포맷팅되는 것을 확인할 수 있습니다.

 

Visual Studio Code를 이용한 자동 포맷팅

Visual Studio Code에서는 다음의 단계를 따라 Google Java Style을 적용합니다.

Extensions 탭에서 Google Java Format for VS Code를 검색하여 설치해 줍니다.

 

<출처: 작가>

 

Settings에서 default formatter를 검색하여 방금 설치한 extension을 지정해 줍니다.

 

<출처: 작가>

 

마지막으로 format on save를 검색하여 활성화해 줍니다.

 

<출처: 작가>

 

이제 java 파일의 내용을 수정하고 저장할 때마다 Google Java Style로 포맷팅되는 것을 확인할 수 있습니다.

 

 

신경 써야 할 코드 스타일

이처럼 IDE에 코드 스타일을 적용하여, 기본적인 포맷팅은 IDE가 알아서 해주게 되었습니다. 이제 단순 포맷팅을 넘어, 코드의 퀄리티를 높여주는 코드 스타일에 신경 쓰면서 작성해야 하는데요. 이를 위해 어떤 점을 신경 써야 할까요?

 

가독성

코드를 작성할 때는 코드를 처음 읽는 사람도 쉽게 이해할 수 있도록 작성해야 합니다. 가독성을 높이는 여러 방법 중 우선 다음을 신경 쓰며 코드를 작성해 보세요.

 

가장 먼저 변수와 함수 등의 이름입니다. 변수와 함수의 이름은 코드의 역할을 명확하게 반영해야 하며, 약어의 사용은 지양하는 것이 좋습니다. IDE가 웬만한 자동 완성을 해주기 때문에 이름이 조금 길어지더라도 확실한 의미를 알 수 있도록 작성하는 것이 좋습니다. 예를 들어, gc보다 gameContext를, aoas보다는 averageOfAllStudents를 사용하도록 해봅시다. 또한 프로젝트 전체에 일관된 명명 규칙을 적용하여 동일한 패턴을 유지하는 것이 좋습니다.

 

코드의 논리적 구조 또한 역할에 따라 작고 명확하게 구분되어야 합니다. 함수들과 클래스는 각각의 확실한 역할을 가지고 있어야 하며, 너무 길거나 복잡해지지 않게 잘 관리해야 합니다. 코드가 길어지게 되면 역할에 따라 별도의 클래스나 함수로 분리해 내는 작업을 해주어야 합니다. 즉, 가독성을 신경 쓰며 코드를 작성하기 위해서는 빈번한 리팩토링이 필연적으로 발생하게 됩니다.

 

대부분의 코드는 코드 자체만으로 이해하기 쉬워야 합니다. 하지만 복잡한 알고리즘이나 구현체의 크기가 커질 경우, 코드를 보는 것만으로는 이해가 어려울 수 있습니다. 이럴 때 주석을 활용해야 합니다. 한 가지 주의할 점은 주석은 최소한으로 사용하며, 정말 필요한 정보만 나타내야 한다는 것입니다.

 

코드를 설명하기 위해 주석을 남발하게 되면, 주석과 코드를 읽는 사람은 같은 내용을 주석에서 한 번, 또 코드에서 한 번 중복으로 읽게 됩니다. 이는 코드의 가독성을 떨어뜨릴 수 있으니, 주석은 짧고 명확할수록 좋습니다.

 

 

마치며

지금까지 개발자에게 코드 스타일이 중요한 이유와 방법 등을 살펴봤는데요. 아무리 열심히 고민하며 작성한 코드라도, 코드 스타일이 잡혀있지 않으면 읽기 어려운 코드가 됩니다. 개발자라는 직업을 선택한 이상, 자신이 작성한 코드를 공개할 수밖에 없는데요. 이럴 때 전문적인 코드를 선보이고 싶은 마음은 누구나 비슷할 것 같습니다.

 

코드 스타일은 프로그래밍 공부처럼 어렵고 복잡한 것이 아닙니다. 조금만 신경 쓰면 누구나 깔끔하고 일관된 코드를 쓸 수 있습니다. 이러한 작은 노력을 통해, 앞으로 여러분이 작성하는 코드가 좋은 첫인상을 남길 수 있길 바랍니다.

 

요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

좋아요

댓글

공유

공유

좋은 코드가 좋은 제품을 만든다
17
명 알림 받는 중

작가 홈

좋은 코드가 좋은 제품을 만든다
17
명 알림 받는 중
- 구글코리아 서치 팀의 소프트웨어 엔지니어
- [프로그래머스 코딩 테스트 문제 풀이 전략: 자바 편] 집필

"좋은 코드가 좋은 제품을 만든다"를 좌우명으로 하고 있습니다.
다양한 프로젝트를 통해 폭 넓은 경험을 하는 것을 중요하게 생각합니다.

좋아요

댓글

스크랩

공유

공유

지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!

회원가입하기
요즘IT의 멤버가 되어주세요! 요즘IT의 멤버가 되어주세요!
요즘IT의 멤버가 되어주세요!
모든 콘텐츠를 편하게 보고 스크랩해요.
모든 콘텐츠를 편하게 보고 스크랩 하기
매주 PICK한 콘텐츠를 뉴스레터로 받아요.
매주 PICK한 콘텐츠를 뉴스레터로 받기
로그인하고 무료로 사용하기