개요
오늘 포스팅에서는 히어닥(heredoc) 구문에 대해서 알아보려고 합니다. 개발하면서 일상적으로 좀 더 깔끔하게 작성하기 위해 많이 사용하던 편이었는데 이런 구문을 히어닥(heredoc)이라고 부른다는 것을 최근에 알아서 정리를 해보려고합니다.
히어닥(heredoc) 이란
히어닥(Heredoc) 구문은 여러 프로그래밍 언어에서 사용되는, 긴 문자열을 편리하게 다루기 위한 구문입니다. 이 구문을 사용하면 여러 줄에 걸친 문자열을 코드 내에 직접 삽입할 수 있으며, 이 때 문자열 내의 줄바꿈이나 들여쓰기가 그대로 유지됩니다.
히어닥(heredoc) 구문의 장점
- 가독성 향상: 여러 줄에 걸친 문자열을 코드 내에 직접 삽입할 수 있어 가독성이 좋아집니다.
- 유지 보수 용이: 문자열 내용을 수정할 때, 일반적인 문자열 연결 방식보다 훨씬 쉽게 수정할 수 있습니다.
- 특수 문자 처리: 이스케이프 문자를 사용하지 않고도 문자열 내에 따옴표를 자유롭게 사용할 수 있습니다.
언어별 히어닥(heredoc) 처리
언어별로 히어닥 구문을 지원하지는 않지만 비슷하게 다중 문자열을 표시할 수 있는 방법들이 있습니다.
PHP
PHP에서는 <<<
후에 식별자를 사용하여 히어닥 구문을 시작합니다. 식별자는 다시 문자열의 끝에서 반복되어야 합니다.
Ruby
Python
Python에서는 히어닥과 동일한 기능을 하는 구문으로 삼중 따옴표("""
또는 '''
)를 사용하여 여러 줄에 걸친 문자열을 처리합니다.
Bash (Shell Script)
Bash에서는 <<
연산자를 사용하여 히어닥 구문을 구현합니다. 이를 통해 스크립트 내에서 다중 라인 문자열을 쉽게 다룰 수 있습니다.
Golang
Go 언어에는 히어닥 구문과 직접적으로 동일한 것은 없지만, 백틱(`)을 사용해 다중 라인 문자열을 표현할 수 있습니다.
1package main
2
3import "fmt"
4
5func main() {
6 str := `여기는
7여러 줄에 걸친
8문자열입니다.`
9 fmt.Println(str)
10}
Java
Java에서는 히어닥(Heredoc) 구문이 직접적으로 존재하지 않습니다. Java 13부터는 Text Blocks를 사용해 비슷한 기능을 구현할 수 있습니다.
Javascript
히어닥(Heredoc) 구문이라는 명칭을 직접적으로 사용하지 않지만, ES6(ECMAScript 2015)부터 도입된 템플릿 리터럴(template literals)을 사용하여 비슷한 기능을 구현할 수 있습니다. 템플릿 리터럴은 백틱(`)을 사용하여 문자열을 표현하며, 이를 통해 여러 줄에 걸친 문자열을 쉽게 작성할 수 있습니다
정리
히어닥(Heredoc) 구문은 다양한 프로그래밍 언어에서 긴 문자열이나 복잡한 문자열을 다루기 위해 제공되는 유용한 기능입니다. 이 구문을 활용하면 코드 내에서 여러 줄에 걸친 문자열을 편리하게 표현할 수 있으며, 특수 문자나 인용 부호를 추가적인 이스케이프 없이 직접 사용할 수 있습니다. 이는 코드의 가독성을 크게 향상시키고, 문자열 관련 작업을 더욱 효율적으로 만들어 줍니다.
히어닥 구문은 PHP, Ruby, Python, Bash 등 다양한 언어에서 각기 다른 형태로 구현되어 있으나, 기본적인 목적과 사용 방법은 유사합니다. 각 언어의 문법과 특성에 맞춰 적절히 사용한면 좋을 것 같습니다.