• 레퍼런스
  • 자습서
  • 문자열

    문자열(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입니다.' 전송