본문 바로가기
개발

java, python, js, html, css에서 들여쓰기 space 크기에 대한 개인적 의견

by 언제나초심. 2024. 2. 24.
반응형

개요

js 작업 중인데, 역시 탭 크기에 대한 고민이 발생되었다.

탭 vs space

이 부분은 사실상 종결된 부분으로, space(공백)으로 구성하는 것이 낫다.

'탭 문자'의 특징이 소스 코드 작성이라는 것과 애매하게 안 맞는 부분이 있기 때문인 것인데,

에디터에서 탭 키를 눌렀을 때 공백이 들어가게 지원되면서, 이 문제가 해결이 된 셈이다.

원래는 탭 키를 누르면 탭 문자(\t, U+0009, 	 등) 들어가게 되는데, 소스 코드에 이것을 포함하고, 컴파일이든 런타임이든에서 이것을 인식시켜야 하고, 이런 저런 이슈가 있는데. html 문서 내에 탭 문자가 들어갔을 때, 브라우저에서 어떤 식으로 표현해야할 지 등 여러 가지 문제가 혼합되어버릴 수 있다. 개발하는 관점에서는 편리하겠지만, 작업되고 난 뒤에 이것을 리눅스에서 열어서 볼 때, 브라우저에서 볼 때, git 클라이언트 도구에서 열어서 diff 할 때, diff 도구를 사용해서 diff 중일 때, 윈도우에서 볼 때, 리눅스에서 볼 때, 맥에서 볼 때, 스마트폰으로 열어서 볼 때 등등 다양한 상황에서 어떻게 보여질지가 명확하지 않다는 점이 있었다.

코드를 보게 되는 경우는 다음의 경우수가 있다.

  • IDE 툴에서 볼 때
    • VSCode, Visual Studio, PyCharm, IntelliJ, EditPlus, UltraEdit, NotePad++ 등등
  • Git 관련
    • 깃헙에서 볼 때 : 깃헙에서 소스를 볼 때, 깃헙에서 diff 할 때, PR할 때 등
    • BitBucket 등
    • 깃 클라이언트 도구 : 툴에서 소스를 볼 때, diff 할 때, merge 할 때 등
  • 코드를 단순히 열어서 보기만 하는 경우
    • OS, 디바이스 환경별
      • 윈도우에서 코드를 열어 볼 때
      • 맥에서 코드를 열어 볼 때
      • 리눅스, 유닉스에서 코드를 열어 볼 때
      • 스마트폰에서 코드를 열어 볼 때
  • 코드를 문서화할 때 등 : JavaDoc, Doxygen, Sphinx 등

공백으로 치환하면, '공백으로 보이겠구나'라고 예상이 가능해지기 때문에. 현대에 접어들면서 디바이스와 소프트웨어가 너무 다양해지고 있기에, 코드 작업 중에 탭 키를 입력할 때에 에디터에서 공백으로 자동 입력되게 해주는 방식으로 조치를 취하게 된 셈이다. (코드 작성 도구는 한 군데에서 발생될 것이기 때문)(보기 위한 수많은 도구에서 표준을 정하여 처리할 것이냐, 입력 단계에서 한 번 조치를 취할 것이냐에서 후자를 택하게 된 셈)

Space 2 vs 4

여전히 골치 아픈 이슈 중에 하나이다. 탭 문자를 사용할 때에는 문제가 되지 않았으나, 공백으로 사용하게 되면서 발생된 부분이다.

Python, Java 등의 언어에서는 4칸을 사용한다. 특히 Java에서 4칸을 사용하는 이유는 설명이 가능하다.

Java 특징

  • 어차피 컴파일한다. 공백이 4칸이 되든 2칸이 되든, 컴파일되고 class가 생성될 것이므로 큰 의미가 없다.
  • Java는 OOP로 구성할 것이므로, 잘 작성되였다면 들여쓰기가 너무 많이 발생되지는 않는 것이 맞다. 신나서 들여쓰기를 하고 있었다면(예를 들어, 들여쓰기가 15단 이상 되었다면), 코드를 개선할 방법을 잠깐이라도 고민해볼 시간이 되었다.

Python도 설명이 가능한데, Python에서는 들여쓰기로 코드가 구분되기 때문에. 2칸으로는 조금 아슬아슬한 감이 있다. 잘못 볼 수 있다는 것. 그러니 휴면 에러를 줄이기 위해서 명확한 4칸을 선호하는 면이 있다. 기억에는 2칸이어도 동작에는 문제가 없었던 걸로 기억함.

JS, HTML, CSS, YML에서는 2칸이 선호되고 있다.

  • YML은 빠르게 작성하고 넘어가는 면이 있어서, 2칸으로 빠르게 작성하게 되고. 어차피 코드가 늘어지게 붙지는 않기 때문에 문제가 되지는 않는다.
  • HTML, CSS : 공백도 공간을 차지하기 때문에, 점점 4칸보다 2칸을 선호하게 되어지는 듯하다.
  • JS : 애매하다. 개인적으로는 4칸이 보기 좋은데, 최근에는 2칸을 선호한다고 하는 듯하다. 마찬가지로 JS도 로드되기 때문에 트래픽상 4칸보다는 2칸을 사용하는 것이 아주 미묘하게 낫기는 하다. webpack 등의 도구로 한 번의 변환이나 합치는 과정, minify 과정 등이 있다고 한다면, 4칸을 사용해도 되지 않을까 생각하는데.. 이 쪽 진영의 생각을 아직 잘 모르겠다. vueJS, ReactJS 등의 등장으로 인해 2칸을 선호하는 경향이 커지는 듯 보인다.
반응형

'개발' 카테고리의 다른 글

용어에 대해서) code, source code  (1) 2022.09.29
gitignore 설정 - 특정 폴더만 포함하기  (0) 2019.12.23
[perl] hello world  (0) 2014.06.09
[api] SNS api 관련 링크  (0) 2013.10.17
SVN 정리중 (수정 2013-11-06)  (0) 2012.10.17