이클립스에서 자바 코드 컨벤션(Code Convention) 스타일 설정을 해보는 방법에 대해서 간략히 다뤄보겠습니다.

개발하는데 있어 표준 코딩은 중요합니다. 표준 코딩으로 작성하는것이 가독성면에서도 좋고, 여러 개발자들과 협업을 이루는 프로젝트에서는 당연히 자신만의 스타일대로 코딩하는게 아닌 정해진 가이드 라인에 따라서 코딩하는게 올바른 방법이니까요. 다만, 표준 코딩이 무언인가 하면 그 기준이 절대적인게 있는지는 애매한데요.

일단, 표준 코딩 가이드 라인은 어디서 볼 수 있냐고 한다면...

저도 여기 저기 정보를 찾아본 결과

가장 일반적인게 현재 자바 소유사인 오라클사에서 제공되는 자바 코딩 가이드라인이 있습니다. (정확히 말하면 1999년도에 작성된거라 오라클이 아닌 선마이크로시스템스에서 작성된 것이기는 합니다. 1999년 이후로 가이드라인이 업데이트가 안되었네요..)

오라클 자바 코딩 가이드 보러가기 클릭

링크타고 들어가서 보시면 표준 코딩 작성법에 대한 예제가 잘 나와있습니다.

영어 잘 못하셔도 자바 예제로 설명이 되어 있기에 코드만 보셔도 아... 저렇게 작성해야하는구나! 라고 이해하실 수 있을 것 같아요.

그리고 국내에 어느분이 오래전부터 한글로 번역을 해놓으신게 있기에 번역본을 보고 싶으신분은 아래 링크를 타고 들어가시면 됩니다.

자바 코딩 규칙 번역본 보러 가기 클릭

오라클에서 제공되는 가이드 이외에도 여러 코딩 가이드 라인이 있는데요..

이것들을 이클립스에 자동 적용되게 할 수도 있고, 사용자가 임의로 코딩 규칙을 수정할 수도 있는데요.

이런 코딩 스타일을 적용하기 전에 우선 이클립스에서 Save Actions 기능에 대해서 간략히 설명하겠습니다.

이클립스에서 상단 메뉴 중 Window - Preferences - Java - Editor - Save Actions 로 이동합니다.

Save Actions 즉, 저장할때 어떠한 액션을 취해줄 것이냐는 것인데요.

디폴트 설정은 비활성화 되어 있을 것입니다.

여기서는 상단의 두 가지 옵션에 대해서만 확인해볼거라 맨 위 상단의 체크박스를 체크하면 아래 옵션들이 활성화되는데요.

Format all lines 는 저장시 모든 라인에 대해서 format을 적용할것인지

Format edited lines는 저장시 수정된 라인에 대해서만 format을 적용할것인지 묻는거구요.

보통 수정된 라인에 대해서만 적용하는 경우가 많은데, 일단 여기서는 Format all lines를 선택해보겠습니다.

그리고 Organize imports를 체크하게 되면 자동으로 임포트 수행 및 사용하지 않는 임포트 제거하는 액션을 수행하게 됩니다.

일단 저는 위 그림처럼 체크후 적용해보겠습니다.

예를 들어, 제가 아래와 같이 코딩을 해보겠습니다.

EgovMap 밑에 빨간줄이 그어지구요. 해당 소스에 EgovMap클래스가 임포트가 되어져 있지 않아서 당연히 저렇게 뜨는 거구요. 일반적으로 저것을 임포트하려면 저 빨간줄에 마우스를 갖다대고 나오는 목록중에서 임포트를 선택하던가 아니면 저곳에 커서를 갖다댄후 Ctrl + Space 나 Ctrl + 1를 누르고 나오는 목록중에서 임포트할 것을 선택해주면 되구요.

혹은 Ctrl + Shift + O 를 누르면 자동으로 임포트가 됩니다.

그런데 저희는 아까 위에서 Organize imports 에 체크를 해줬는데요.

해당 설정이 적용이 된 상태에서는 별도로 임포트 처리를 하지 않아도

단순히 Ctrl + S , 즉 그냥 저희가 작업저장만 하더라도 자동으로 Ctrl + Shift + O 를 누른것과 동일한 효과가 나타납니다.

저는 저 문장을 작성하고 Ctrl + S 만 눌렀더니,

상단에 임포트가 추가되면서 빨간줄이 사라지게 되었습니다.

또, 개발 중 소스가 수정되어서 기존에 사용하였던 임포트구문이 사용하지 않게 되면 밑에 노란줄이 그어지게 되는데요. Ctrl + Shift + O 단축키를 사용하게되면 사용하지 않는 임포트가 삭제되는데요. 저희는 save actions 옵션을 적용해놨기 때문에 소스 수정하면서 작업저장 단축키 Ctrl + S 만 눌러도 자동으로 사용하지 않는 임포트가 사라지게 되는 것을 확인할 수 있을 것입니다.

그리고 위처럼 소스를 표준코딩에 맞지 않게 엉망진창으로 작성했다고 본다면 저 상태에서 저장을 한다고 하더라도 일반적으론 소스가 자동 정렬되거나 하지는 않습니다. 이클립스에서 소스 자동 정렬 단축키는 Ctrl + Shift + F 이므로 해당 단축키를 눌러야 보기좋게 정렬될 것입니다. 하지만 저희는 아까 위에서 Format source code 옵션 적용을 했기에 위의 소스를 타이핑한 후에 Ctrl + S 만 눌러도 Ctrl + Shift + F 를 누른것과 동일하게 코드 가이드 설정에 맞게 코드가 자동 정렬된 것을 확인할 수가 있습니다. 아래처럼요.

주석도 마찬가지로 // 옆에는 한 칸을 띄는게 표준 코딩인데 아래와 같이 띄지않고 작성하였다 치더라도

작성하고 Ctrl + S 누르는 순간 자동으로 한 칸이 띄어지는 것을 확인할 수가 있습니다.

물론, Save Actions를 설정하지 않아도 Ctrl + Shift + F 를 누르면 언제든지 동일하게 적용되는 부분입니다.

Save Actions 옵션을 적용하든 Ctrl + Shift + F를 누르던 소스 코드가 어떠한 기준에 맞춰서 규칙대로 자동 정렬이 되고 있는것을 확인할 수가 있었는데요. 이러한 가이드 기준을 확인할 수 있는 곳이 Window - Preferences - Java - Code Style - Formatter 메뉴입니다.

이클립스에서는 디폴트로 Eclipse [built-in]이 선택되어 있구요.

Java Conventions 가 오라클 자바 코딩 가이드에 맞춰서 설정되어진게 아닌가 추측이 되는데요.

자바 코드 컨벤션은 새로 만들수도 있고, 기존에 외부에서 만들어진것을 import 할 수도 있고, 반대로 export도 가능합니다.

오라클 코딩 가이드 이외에 개발자들이 선호하는 표준 가이드 중의 하나가 구글 자바 코딩 가이드인데요. 오라클 가이드는 1999년이 마지막 업데이트이지만, 구글 가이드는 오라클 가이드와는 다르게 최근 몇 년 이내에도 업데이트된 흔적이 있네요.

구글 자바 코딩 가이드 원문보러가기 클릭

 

이것도 어느 고수님이 번역을 해주셔서..

구글 자바 코딩 가이드 번역 요약본 보러가기 클릭

아무튼 여기서는 구글 자바 코드 컨벤션 스타일을 임포트 해보도록 하겠습니다.

아래 링크를 타고 이동하면...

https://github.com/google/styleguide

깃허브에 소스가 엄청 많지만 저희가 필요한 건 eclipse-java-google-style.xml 이거 하나입니다. (다른 소스 가이드는 나중에 해당 영역 개발에 필요하실때 적용하여보세요~)

 

안에 들어가서 보시면 소스 내용을 볼 수 있는데요.

 

 

코딩 규약에 대해서 수많은 설정이 주절주절 적혀있는데요... 해석은 머리아프니 패스하구요.

어찌되었건 저 xml 파일을 로컬에 다운로드 받아주시구요.

아까 이클립스의 Formatter 메뉴에서 import 버튼을 눌러주시고 로컬에 저장된 xml 파일을 선택해주시면 됩니다.

임포트후 메시지 창 뜨면 확인 눌러주시면 임포트가 된 것을 확인할 수가 있습니다.

여러 코드 컨벤션 스타일을 적용해보면서 비교를 해보면 아래와 같은 차이가 있는데요.

왼쪽부터 Java Conventions , Eclipse 기본설정, GoogleStyle 입니다.

일단 위 소스만으로 자동 들여쓰기된 부분만 비교해본다면,(if문 시작부분 기준)

Java Conventions은 들여쓰기시 탭 1번이 적용되어있구요. 탭 1번의 너비는 스페이스바 8번을 누른것과 동일합니다.

Eclipse 기본설정은 들여쓰기시 탭 2번 누른것처럼 적용되어있구요. 여기서 탭 1번의 너비는 스페이스바 4번을 누른 것과 동일합니다. 실질적으로 들여쓰기된 너비는 Java Conventions와 동일하네요. 탭이 몇 번 적용되어 있느냐의 차이일뿐..

GoogleStyle은 들여쓰기시 탭을 사용하지 않고, 스페이스바 4번으로 이루어져 있구요.

개인적으로 공부용도 혹은 1인 플젝이라면 선호하는 코딩 스타일에 맞춰서 선택하시면 될 것 같구요. 어떤 부분은 마음에 드는데 어떤 부분은 마음에 들지 않는다면 Edit 기능을 이용해서 상세 코드 규정을 수정해서 사용도 가능합니다.

다양한 코딩 스타일 설정이 가능하기때문에 설정을 변경해가면서 적용해보시면 될 것 같습니다.

아 물론, 실무 협업 플젝이라면 당연히 팀내 상급자가 정해준 가이드라인대로 코딩하셔야 하구요;;

코드 자동 정렬 기능 이런걸 떠나서 표준 코딩에 맞게 작성하는 습관을 기르는게 가장 좋기는 한데요..!

혹시라도 나중에 실무에서 자바 코드 컨벤션을 만들거나 외부 코드 컨벤션 설정을 적용해야 될 일이 있을 수 있으므로, 이클립스에 이런 기능이 있구나 라고 혹 모르시는 분들 있으시면 알아두시면 좋을 것 같습니다~~

+) 그리고 코드 컨벤션 설정은 프로젝트별로 설정도 가능합니다. 프로젝트 선택 후 오른쪽 버튼 누른 후 Preferences로 들어가시면 됩니다.

+ Recent posts