들여쓰기
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
들여쓰기는 텍스트의 시각적 구성을 위해 사용되는 기법으로, 단락의 첫 줄 들여쓰기, 내어쓰기, 블록 들여쓰기 등 세 가지 주요 유형이 있다. 프로그래밍에서는 소스 코드의 가독성을 높이기 위해 사용되며, 파이썬, 하스켈과 같은 언어에서는 들여쓰기가 프로그램 구조를 결정하는 중요한 요소가 된다. 다양한 프로그래밍 언어에서 들여쓰기 방식과 칸 수에 대한 규칙이 존재하며, 탭 문자와 공백 문자를 사용하는 방식, 그리고 언어의 구문과 개인적 선호도에 따라 그 규칙이 다르다.
더 읽어볼만한 페이지
들여쓰기 | |
---|---|
개요 | |
정의 | 글쓰기에서 문단이나 다른 텍스트 블록의 시작 부분에 빈 공간을 추가하는 것 |
목적 | 텍스트의 가독성을 높이고 구조를 시각적으로 나타내는 것 |
유형 및 방법 | |
첫 줄 들여쓰기 | 문단의 첫 줄만 들여쓰는 방법 |
내어쓰기 (행갈이) | 문단의 첫 줄은 내어쓰고 나머지 줄은 들여쓰는 방법 |
단락 들여쓰기 | 전체 문단을 들여쓰는 방법 |
hanging indent (돌출 들여쓰기) | 문단의 첫 줄은 왼쪽에 두고 나머지 줄을 들여쓰는 방법 |
들여쓰기 방법 | 스페이스바 탭 키 스타일 (CSS) |
활용 | |
사용 분야 | 워드 프로세서 데스크톱 출판 소프트웨어 웹 페이지 기타 텍스트 편집기 |
목적 | 문장, 목록, 기타 텍스트 구성 요소 간의 관계를 나타냄 가독성 향상 디자인 요소 |
프로그래밍에서의 들여쓰기 | |
정의 | 소스 코드의 가독성을 높이기 위해 코드 줄 앞에 공백을 삽입하는 스타일 규칙 |
중요성 | 코드 구조를 시각적으로 표현 코드 블록의 시작과 끝을 명확히 구분 가독성 향상 및 유지보수 용이 |
사용 | 파이썬 YAML 기타 프로그래밍 언어 |
일반적인 들여쓰기 크기 | 공백 2개 공백 4개 탭 (tab) |
2. 들여쓰기의 유형
들여쓰기에는 첫 줄 들여쓰기, 내어쓰기, 블록 들여쓰기 세 가지 주요 유형이 있다.
- '''첫 줄 들여쓰기'''는 문단의 첫 줄을 들여쓰기하는 방식이다.
- '''내어쓰기'''는 문단의 첫 줄을 제외한 모든 줄을 들여쓰기하는 방식이다.
- '''블록 들여쓰기'''는 전체 문단을 이전 문단을 기준으로 들여쓰기하는 방식이다.
많은 워드 프로세서에서는 한 글자 이상 들여쓰기를 할 때 탭 키를 사용하며, 이 기능 자체를 '''자下げ 기능'''이라고 칭한다. 자동 자下げ 기능을 제공하는 소프트웨어 기능을 특히 '''자동 들여쓰기'''라고 부른다.[48]
2. 1. 첫 줄 들여쓰기
'''첫 줄 들여쓰기'''는 문단의 첫 줄을 들여쓰기하는 방식이다. 주로 문단의 시작을 명확히 하는 데 사용된다.[48] 수많은 언어에서 들여쓰기는 새로운 문장의 시작을 알리기 위해 한 줄의 첫머리에 자주 쓰인다.2 em의 첫 줄 들여쓰기 예시는 다음과 같다. (여기서 들여쓰기 너비는 em 공간 단위로 표시된다.)
: Lorem ipsum|로렘 입숨영어
많은 워드 프로세서에서는 1자 이상 들여쓰기를 할 때 탭 키를 사용하며, 이 기능 자체를 가리켜 '''자下げ 기능'''이라고 칭한다. 자동 자下げ 기능을 제공하는 소프트웨어 기능을 특히 '''자동 들여쓰기'''라고 부른다.[48]
2. 2. 내어쓰기
'''내어쓰기'''는 단락의 첫 줄을 제외한 모든 줄을 들여쓰기하는 방식이다. 참고 문헌 목록이나 프로그래밍 언어의 소스 코드 등에서 특정 요소를 강조하는 데 사용된다.[49]; 내어쓰기 들여쓰기 (소스 코드)
local p = {}
function p.hello()
return "Hello, world!"
end
return p
2. 3. 블록 들여쓰기
'''블록 들여쓰기'''는 전체 단락을 이전 단락을 기준으로 들여쓰기하는 방식이다. 주로 인용문이나 특정 코드 블록을 나타내는 데 사용된다.왼쪽에 2em의 블록 들여쓰기 예시는 다음과 같다.
양쪽에 블록 들여쓰기를 하는 것은 블록 인용에 일반적으로 사용되며, 왼쪽과 오른쪽에 2em으로 표시되지만 글자 정렬이 되지 않았으므로 오른쪽에 남는 공간은 줄 길이에 따라 달라진다.
다음은 양쪽 정렬된(좌우 정렬) 블록 들여쓰기 예시이다.
; 들여쓰기
学校の授業が始まるにはまだ大分日数があるので鎌倉にிலேயேてもよし、帰ってもよいという境遇に置かれた私は、当分元の宿に留まる覚悟をした。|학교 수업이 시작되려면 아직 꽤 많은 날짜가 있어서 가마쿠라에 머물러도 좋고, 돌아가도 좋다는 상황에 놓인 나는 당분간 원래 숙소에 머물 각오를 했다.일본어
友だちは支那のある資産家の息子で金に不自由のない男だったが、学校が学校なのと年が年なので、生活の程度は私とそう変ったこともなかった。|친구는 중국의 어떤 자산가의 아들로 돈에 얽매이지 않는 남자였지만, 학교가 학교인 데다 나이도 나이인지라 생활 수준은 나와 별반 다르지 않았다.일본어
従って一人ぼっちになった私は別段 নূতনな宿を探す面倒もなかった。|따라서 혼자가 된 나는 따로 멋진 숙소를 찾을 번거로움도 없었다.일본어
宿は鎌倉でも辺鄙な方角にあった。|숙소는 가마쿠라에서도 변두리 쪽에 있었다.일본어
玉突なぞというハイカラなものには長い路を一つ越さなければ手が届かなかった。|당구 같은 하이칼라한 것들은 긴 길을 하나 건너야 손이 닿았다.일본어
車で行っても二十銭は取られた。|차로 가도 20전을 내야 했다.일본어
しかし個人の別荘は方々に幾つも建てられていた。|하지만 개인 별장은 곳곳에 여러 채가 세워져 있었다.일본어
その上、海へはごく近いので海水浴をやるには至極便利な位置を占めていた。|게다가 바다와 아주 가까워서 해수욕을 하기에는 매우 편리한 위치를 차지하고 있었다.일본어
私は毎日海へはいりに出掛けた。|나는 매일 바다에 들어가러 나갔다.일본어
古びた藁葺の間を通り抜けて磯へ下りると、此処にこれだけの都会人が住んでいるのかと思うほど、避暑に来た男や女で砂の上が動いていた。|낡고 그을린 초가집 사이를 지나 갯벌로 내려가면, 이곳에 이렇게 많은 도시 사람들이 살고 있을까 싶을 정도로 피서를 온 남자와 여자로 모래밭이 움직였다.일본어
ある時は海の中が銭湯のように黒い頭でごちゃごちゃしていることもあった。|어떤 때는 바닷속이 목욕탕처럼 검은 머리로 뒤섞여 있는 경우도 있었다.일본어
その中に知ったものが一人もいない私も、こういう活気に満ちた景色の中に包まれて、砂の上に寝そべってみたり、膝を波に打たしてそこいらを跳ね廻るのは愉快だった。|그 속에서 아는 사람을 한 명도 갖지 못한 나도, 이런 활기찬 풍경 속에 감싸여 모래 위에 누워보기도 하고, 무릎을 파도에 부딪혀 그곳을 뛰어다니는 것은 즐거웠다.일본어[48]
; 내어쓰기 들여쓰기 (소스 코드)
```lua
local p = {}
function p.hello()
return "Hello, world!"
end
return p
```
3. 프로그래밍에서의 들여쓰기
컴퓨터 프로그래밍 언어에서 들여쓰기는 코드 텍스트 왼쪽에 공백을 사용하여 소스 코드의 형식을 지정하는 것을 의미하며, 종종 코드 줄 시퀀스가 구문적으로 코드 블록임을 시각적으로 보여준다. 일반적으로 블록의 줄은 코드의 계층적 구조에서 블록의 깊이를 나타내는 공백량으로 정렬된다.
자유 형식 언어의 경우, 들여쓰기는 전적으로 프로그래머를 위한 것이다. 코드 프로세서(예: 컴파일러, 인터프리터)는 공백 문자를 무시하기 때문이다.
일부 언어는 오프사이드 규칙을 통해 블록 구조를 구분하기 위해 들여쓰기에 의존한다. 이러한 구문 요구 사항으로 인해 코드는 자유 형식 언어 코드에 필요하지 않은 수준의 일관성을 가져야 한다.
신조어 '''내어쓰기''', '''언인덴트''' 및 '''디덴트'''는 들여쓰기의 반대 개념을 설명하며, 줄의 코드 텍스트를 이전 줄의 왼쪽으로 정렬한다.[1]
学校の授業が始まるにはまだ大分日数があるので鎌倉にいても好い、帰っても好いという境遇に置かれた私は、当分元の宿に留まる覚悟をした。友達は中国のある資産家の息子で金に不自由のない男であったけれども、学校が学校なのと年が年なので、生活の程度は私とそう変りもしなかった。従って一人になった私は別段に豪勢な宿を探す面倒もなかった。
宿は鎌倉でも辺鄙な方角にあった。玉突などは長い畷を一つ越さなければ手が届かなかった。車で行っても二十銭は取られた。しかし個人の別荘はそこここにいくつも建てられていた。それに海へはごく近いので海水浴をやるには至極便利な位置を占めていた。
私は毎日海へはいりに出掛けた。古い燻ぶり返った藁屋根の間を通り抜けて磯へ下りると、この辺にこれほどの都会人種が住んでいるかと思うほど避暑に来た男や女で砂の上が動いていた。ある時は海の中が銭湯のように黒い頭でごちゃごちゃしている事もあった。その中に知人を一人も持たない私も、こういう賑やかな景色の中に包まれて、砂の上に寝そべってみたり、膝頭を波に打たせてそこいらを跳ね廻るのは愉快であった。|학교 수업이 시작되려면 아직 꽤 많은 날짜가 남아 있어서 가마쿠라에 머물러도 좋고, 돌아가도 좋다는 상황에 놓인 나는 당분간 원래 숙소에 머물 각오를 했다. 친구는 중국의 어떤 자산가의 아들로 돈에 얽매이지 않는 남자였지만, 학교가 학교인 데다 나이도 나이인지라 생활 수준은 나와 별반 다르지 않았다. 따라서 혼자가 된 나는 따로 멋진 숙소를 찾을 번거로움도 없었다.
숙소는 가마쿠라에서도 변두리 쪽에 있었다. 당구 같은 하이칼라한 것들은 긴 길을 하나 건너야 손이 닿았다. 차로 가도 20전을 내야 했다. 하지만 개인 별장은 곳곳에 여러 채가 세워져 있었다. 게다가 바다와 아주 가까워서 해수욕을 하기에는 매우 편리한 위치를 차지하고 있었다.
나는 매일 바다에 들어가러 나갔다. 낡고 그을린 초가집 사이를 지나 갯벌로 내려가면, 이곳에 이렇게 많은 도시 사람들이 살고 있을까 싶을 정도로 피서를 온 남자와 여자로 모래밭이 움직였다. 어떤 때는 바닷속이 목욕탕처럼 검은 머리로 뒤섞여 있는 경우도 있었다. 그 속에서 아는 사람을 한 명도 갖지 못한 나도, 이런 활기찬 풍경 속에 감싸여 모래 위에 누워보기도 하고, 무릎을 파도에 부딪혀 그곳을 뛰어다니는 것은 즐거웠다.|나쓰메 소세키의 마음 (1914년 4월 20일 - 8월 11일, 아사히 신문 연재분) 발췌.일본어
아래는 루아 코드의 들여쓰기와 내어쓰기 예시이다.
local p = {}
function p.hello()
return "Hello, world!"
end
return p
3. 1. 들여쓰기 방식
컴퓨터 프로그래밍 언어에서 들여쓰기는 가독성을 개선하기 위해 소스 코드를 형식화하는 데 쓰인다. 일반적으로 컴파일러와 인터프리터는 소스 코드 안의 문 안에 빈칸이 얼마나 있는지 살펴보는 일은 드물다. 그러나 파이썬, 하스켈, occam과 같은 프로그래밍 언어에서는 들여쓰기에 따라 프로그램의 구조를 해석하기도 한다.[1]컴퓨터 프로그래밍에서 들여쓰기는 코드 텍스트 왼쪽에 공백을 사용하여 소스 코드의 형식을 지정하는 것을 의미하며, 종종 코드 줄 시퀀스가 구문적으로 코드 블록임을 시각적으로 보여준다. 일반적으로 블록의 줄은 코드의 계층적 구조에서 블록의 깊이를 나타내는 공백량으로 정렬된다. 계층 구조의 각 내부 레벨은 이 ''들여쓰기 너비''의 배수만큼 들여쓰기된다.[1]
코드의 공백은 일반적으로 공백 문자로 저장된다.[1]
자유 형식 언어의 경우, 들여쓰기는 전적으로 프로그래머를 위한 것이다. 코드 프로세서(예: 컴파일러, 인터프리터)는 공백 문자를 무시하기 때문이다. 코드는 일관성이 없거나 들여쓰기가 없을 수도 있지만, 일반적으로 어느 정도 일관된 들여쓰기로 형식이 지정된다.[1]
일부 언어는 오프사이드 규칙을 통해 블록 구조를 구분하기 위해 들여쓰기에 의존한다. 이러한 구문 요구 사항으로 인해 코드는 자유 형식 언어 코드에 필요하지 않은 수준의 일관성을 가져야 한다.[1]
신조어 '''내어쓰기''', '''언인덴트''' 및 '''디덴트'''는 들여쓰기의 반대 개념을 설명하며, 줄의 코드 텍스트를 이전 줄의 왼쪽으로 정렬한다.[1]
들여쓰기 구현의 일반적인 변형에는 코드 계층의 각 수준에서 블록을 들여쓰기할 양(보통 공백으로 측정)과 공백 문자를 공백 또는 탭 문자로 저장할지 여부가 있다. 일반적인 관행이 있지만 합의는 보편적이지 않다.[1]
이러한 변형은 언어 구문, 조직적 의무 및 개인적 선호도를 포함하되 이에 국한되지 않는 요인에 의해 발생한다.[1]
3. 2. 주요 프로그래밍 언어별 들여쓰기 규칙
컴퓨터 프로그래밍에서 들여쓰기는 코드 텍스트 왼쪽에 공백을 사용하여 소스 코드의 형식을 지정하는 것을 의미하며, 코드 블록을 시각적으로 구분하는데 사용된다. 일반적으로 프로그래머를 위한 것이지만, 파이썬, 하스켈, occam 같은 프로그래밍 언어에서는 들여쓰기에 따라 프로그램의 구조를 해석하기도 한다.다음 표는 주요 프로그래밍 언어별 코드 들여쓰기 관련 규칙을 나타낸다.
언어 | 자유 형식? | 참고 |
---|---|---|
Bash | 예 | Fritz Mehner는 2, 4 또는 8칸을 제안하며 모든 예제에서 2칸을 사용한다.[2] |
C | 예 | 리눅스 커널(Linux kernel)은 1 탭을 사용한다.[4][5] |
C++ | 예 | WebKit은 4칸을 권장한다.[8] |
C# | 예 | 마이크로소프트(Microsoft) 규칙: 4칸[10] |
CSS | 예 | 드루팔(Drupal), 깃허브(GitHub), 구글은 2칸을 사용한다.[11][12][13][14] |
Dart | 예 | dart format 은 2칸을 사용한다. |
Delphi | 예 | Delphi 스타일 가이드: 2칸[16] |
F# | 예 | F# 스타일 가이드: 4칸[17] |
Go | 예 | Effective Go: 1탭 [18] |
Haskell | 아니요 | 구글은 2칸을 사용한다.[19] |
HTML | 예 | 구글은 2칸을 사용한다.[13] |
Java | 예 | 오라클(Oracle)은 4칸을 사용한다.[21] |
자바스크립트 | 예 | 더글러스 크록포드(Douglas Crockford)는 4칸을 옹호한다.[23] |
Julia | 예 | Julia 스타일 가이드: 4칸[27] |
Kotlin | 예 | Kotlin 스타일 가이드: 4칸[28] |
Lua | 예 | Lua 스타일 가이드: 2칸[29] |
Perl | 예 | 래리 월(Larry Wall)은 4칸을 선호한다.[30] |
PHP | 예 | 드루팔(Drupal)은 2칸을 사용한다.[31] |
PowerShell | 예 | 비공식 PowerShell 모범 사례 및 스타일 가이드: 4칸[37] |
Python | 아니요 | PEP 8: 4칸[38] |
Ruby | 예 | Ruby 스타일 가이드: 2칸 [39] |
Rust | 예 | Rust 스타일 가이드: 4칸 [40] |
Scala | 예 | Scala 스타일 가이드: 2칸 [41] |
Swift | 예 | 구글은 2칸을 사용한다.[42] |
Tcl | 예 | Tcl 스타일 가이드: 4칸 [43] |
Visual Basic | 예 | 마이크로소프트 규칙: 4칸 [44] |
XML | 예 | 구글은 2칸을 사용한다.[45] |
4. 기타
워드 프로세서 등에서는 탭 키를 사용한 들여쓰기 기능을 '자 내리기'라고 칭하기도 한다. 자동 들여쓰기 기능을 제공하는 소프트웨어도 있다.[48] 2006년에는 탄력 탭 정지점이라고 불리는 새로운 들여쓰기 방식이 제안되었다.
참조
[1]
웹사이트
Tabs versus Spaces: An Eternal Holy War
http://www.jwz.org/d[...]
2014-01-18
[2]
웹사이트
Bash Style Guide and Coding Standard
https://lug.fh-swf.d[...]
[3]
웹사이트
Archived copy
https://google-style[...]
2014-06-23
[4]
웹사이트
Archived copy
https://www.kernel.o[...]
2015-02-15
[5]
웹사이트
Linux kernel coding style
https://www.kernel.o[...]
2022-07-21
[6]
웹사이트
C STYLE GUIDE
https://ntrs.nasa.go[...]
1994-08
[7]
웹사이트
C Program Style Rules
https://users.csc.ca[...]
2006
[8]
웹사이트
Code Style Guidelines
https://webkit.org/c[...]
2021-12-31
[9]
Webarchive
https://web.archive.[...]
2014-10-06
[10]
웹사이트
C# Coding Conventions (C# Programming Guide)
http://msdn.microsof[...]
2017-09-03
[11]
웹사이트
CSS formatting guidelines
https://drupal.org/n[...]
2014-01-18
[12]
웹사이트
CSS · Styleguide · GitHub
https://github.com/s[...]
2014-01-18
[13]
웹사이트
Google HTML/CSS Style Guide
http://google-styleg[...]
2016-03-13
[14]
웹사이트
styleguide: Style guides for Google-originated open-source projects
https://github.com/g[...]
2017-09-03
[15]
웹사이트
WordPress › CSS Coding Standards « Make WordPress Core
https://make.wordpre[...]
2018-07-20
[16]
웹사이트
Delphi's Object Pascal Style Guide - White Space Usage
https://docwiki.emba[...]
2022-12-13
[17]
웹사이트
F# code formatting guidelines
https://docs.microso[...]
2020-10-14
[18]
웹사이트
Effective Go – The Go Programming Language
http://golang.org/do[...]
2017-09-03
[19]
웹사이트
HaskellStyleGuide – ganeti – Style Guide for the Haskell code – Cluster-based virtualization management software – Google Project Hosting
http://code.google.c[...]
2014-01-18
[20]
웹사이트
HTML Tidy Configuration Options Quick Reference
http://tidy.sourcefo[...]
2014-01-18
[21]
웹사이트
Code Conventions for the Java Programming Language: 4. Indentation
http://www.oracle.co[...]
2014-01-18
[22]
웹사이트
Code Style Guidelines for Contributors | Android Developers
http://source.androi[...]
2014-01-18
[23]
웹사이트
Code Conventions for the JavaScript Programming Language
http://javascript.cr[...]
2014-01-18
[24]
웹사이트
JavaScript 路 Styleguide
https://github.com/s[...]
2014-01-18
[25]
웹사이트
JaveScript Style Rules
http://google-styleg[...]
2014-02-18
[26]
웹사이트
JavaScript Style Guide | Contribute to jQuery
http://contribute.jq[...]
2014-01-18
[27]
웹사이트
Style Guide · The Julia Language
https://docs.juliala[...]
[28]
웹사이트
Coding Conventions – Kotlin Programming Language
https://kotlinlang.o[...]
[29]
웹사이트
lua-users wiki: Lua Style Guide
http://lua-users.org[...]
2017-09-03
[30]
웹사이트
perlstyle: Perl style guide
http://perldoc.perl.[...]
Perl Foundation
2021-04-19
[31]
웹사이트
Coding standards
https://drupal.org/c[...]
2014-01-18
[32]
웹사이트
Manual :: Indenting and Line Length
http://pear.php.net/[...]
2014-01-18
[33]
웹사이트
PHP Coding Standard (draft) – Contributors – Zend Framework Wiki
http://framework.zen[...]
2014-01-18
[34]
웹사이트
Style Guide : CodeIgniter User Guide
http://ellislab.com/[...]
2014-01-18
[35]
웹사이트
WordPress › PHP Coding Standards « Make WordPress Core
http://make.wordpres[...]
2014-01-18
[36]
웹사이트
PHP : Coding Style Guide
http://www.php-fig.o[...]
2014-02-18
[37]
웹사이트
Code Layout and Formatting – PowerShell Practice and Style
https://poshcode.git[...]
2021-10-17
[38]
웹사이트
PEP 8 – Style Guide for Python Code
https://www.python.o[...]
2017-09-03
[39]
웹사이트
ruby-style-guide: A community-driven Ruby coding style guide
https://github.com/b[...]
2017-09-03
[40]
웹사이트
rust: A safe, concurrent, practical language
https://github.com/r[...]
2017-09-03
[41]
웹사이트
Indentation – Scala Documentation
http://docs.scala-la[...]
2017-09-03
[42]
웹사이트
Swift Style Guide
https://google.githu[...]
2021-10-17
[43]
웹사이트
Tcl Style Guide
http://www.tcl.tk/do[...]
2017-09-03
[44]
웹사이트
Structured Coding Conventions
http://msdn.microsof[...]
2007-01-04
[45]
웹사이트
Google XML Document Format Style Guide
https://google.githu[...]
Google
2021-10-17
[46]
문서
本項目の英語版は[[:en:Indentation (typesetting)]]である。[[:en:wikt:indent]]には動詞としては「字下げする」の用法があるものの、名詞の場合は[[和製英語]]インデントと同じ意味は無いようである。
[47]
웹사이트
じ‐さげ【字下げ】
https://kotobank.jp/[...]
コトバンク
2018-05-14
[48]
웹사이트
インデンテーション(indentation)
https://kotobank.jp/[...]
コトバンク
2018-05-14
[49]
웹사이트
インデント
https://kotobank.jp/[...]
コトバンク
2018-05-14
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com