문자열

문자열(String)은 0개 이상의 문자들이 나열된 형태의 데이터입니다. 문자열을 다루는 편이 따로 존재하는 이유는 문자열이 중요한 자료형이며 문자열에 대해 알아야 할 것이 많기 때문입니다. 감지된 메시지, 메시지를 보낸 유저의 이름, 방 이름, 봇이 보낼 메시지 등 많은 데이터가 문자열 데이터입니다. 프로그래밍에서도 텍스트를 다루는 일은 중요합니다. 이 문서에서는 문자열에 대해, 그리고 문자열을 잘 다루기 위해 알아야 할 것들을 소개합니다.

문자열 리터럴

문자열은 큰따옴표("), 작은따옴표(') 또는 백틱(`)으로 값을 감싸서 표현합니다.

"큰따옴표로 감싼 문자열입니다."
'작은따옴표로 감싼 문자열입니다.'
`백틱으로 감싼 문자열입니다.`

특히, 백틱으로 감싼 리터럴을 템플릿 리터럴(Template literals)이라고 합니다. 이는 큰따옴표 또는 작은따옴표를 사용한 문자열 리터럴보다 더 유용합니다.

이스케이프 문자

이스케이프 문자(Escape character)는 쉽게 입력할 수 없는 특수 문자를 의미하는 문자입니다. 모든 이스케이프 문자는 앞에 백슬래시(\)가 붙습니다. 백슬래시는 한국어 컴퓨터 키보드에서 원화 기호 키를 눌러 입력할 수 있습니다.

여기에서 특수 문자란, 줄바꿈, 탭 문자, 따옴표 등을 의미합니다. 아래의 표는 문자열에서 사용 가능한 이스케이프 문자입니다.

이스케이프 문자
\"
큰따옴표
\'
작은따옴표
\`
백틱
\n
줄바꿈(개행)
\t
탭(Tab)
\r
캐리지 리턴(Carriage return, CR)
\v
수직 탭(Vertical Tab, VT)
\b
백스페이스(Backspace)
\f
폼 피드(Form feed)
\XXX
8진수 Latin-1 문자
\xXX

Latin-1 문자

\uXXXX

유니코드 (0000 ~ FFFF)

큰따옴표, 작은따옴표, 백틱이 이스케이프 문자로 존재하는 이유는 세 문자가 JavaScript에서 문자열 리터럴에 사용되는 문자이기 때문입니다. 예를 들어,

"큰따옴표", '작은따옴표', `백틱`입니다.

를 표현하기 위해

"\"큰따옴표\", '작은따옴표', `백틱`입니다."
'"큰따옴표", \'작은따옴표\', `백틱`입니다.'
`"큰따옴표", '작은따옴표', \`백틱\`입니다.`

와 같이 이스케이프 문자를 사용할 수 있습니다.

줄바꿈

줄바꿈은 이스케이프 문자를 사용해 표현할 수 있습니다. 예를 들어, 아래와 같이 메시지를 보내고자 한다면

안녕하세요.
반갑습니다.

다음과 같이 작성할 수 있습니다.

const str = "안녕하세요.\n반갑습니다.";
msg.reply(str);

템플릿 리터럴은 줄바꿈까지 고려해주므로 다음과 같이 이스케이프 문자 없이 표현할 수 있습니다.

const str = `안녕하세요.
반갑습니다.`;
msg.reply(str);

식/변수 연결

두 문자열을 연결하거나, 문자열 중간에 식이나 변수를 연결하기 위해 + 연산자를 사용합니다.

const botName = "카카오톡봇";
msg.reply("안녕하세요, " + botName + "입니다."); // '안녕하세요, 카카오톡봇입니다.' 전송
msg.reply("2 더하기 3은 " + (2 + 3) + "입니다."); // '2 더하기 3은 5입니다.' 전송

템플릿 리터럴은 ${}을 사용해 식 또는 변수를 더 간편하게 연결할 수 있습니다.

const botName = "카카오톡봇";
msg.reply(`안녕하세요, ${botName}입니다.`); // '안녕하세요, 카카오톡봇입니다.' 전송
msg.reply(`2 더하기 3은 ${2 + 3}입니다.`); // '2 더하기 3은 5입니다.' 전송