웹사이트 검색

Ruby에서 문자열로 작업하는 방법


소개

문자열은 문자, 숫자 또는 기호로 구성될 수 있는 하나 이상의 문자 시퀀스입니다.

Ruby의 문자열은 개체이며 다른 언어와 달리 문자열은 변경 가능하므로 새 문자열을 생성하는 대신 제자리에서 변경할 수 있습니다.

작성하는 거의 모든 프로그램에서 문자열을 사용하게 됩니다. 문자열을 사용하면 텍스트를 사용하여 사용자를 표시하고 통신할 수 있습니다. 사실 지금 읽고 있는 페이지는 웹 브라우저를 통해 화면에 표시되는 문자열로 구성되어 있습니다. 문자열은 프로그래밍의 가장 중요한 기본 요소 중 하나입니다.

이 튜토리얼에서는 Ruby에서 문자열로 작업하는 방법을 배웁니다. 문자열을 생성하고, 화면에 표시하고, 변수에 저장하고, 여러 문자열을 결합하고 줄 바꿈, 아포스트로피 및 큰따옴표와 같은 특수 문자를 처리하는 방법을 배웁니다.

문자열 생성 및 인쇄

Ruby에서 문자열은 작은따옴표 또는 큰따옴표 \ 안에 존재하므로 문자열을 만들려면 일련의 문자를 둘 중 하나로 묶으십시오.

'This is a string in single quotes.'

"This is a string in double quotes."

작은따옴표 또는 큰따옴표를 사용하도록 선택할 수 있습니다. 대부분의 경우 일관성이 있는 한 어느 것을 선택하든 상관 없습니다. 그러나 큰따옴표를 사용하면 문자열 보간을 수행할 수 있으며 이 튜토리얼에서 이에 대해 배울 것입니다.

프로그램에 문자열을 표시하려면 print 메서드를 사용할 수 있습니다.

print "Let's print out this string."

print 메서드는 문자열을 작성된 그대로 표시합니다.

사용해 보세요. 텍스트 편집기를 사용하여 print.rb라는 새 Ruby 프로그램을 만들고 print 메서드를 사용하여 세 개의 문자열을 인쇄합니다.

print 'This is the first string.'
print 'This is the second string.'
print 'This is the third string.'

파일을 저장하고 프로그램을 실행합니다.

  1. ruby print.rb

다음 출력이 표시됩니다.

Output
This is the first string.This is the second string.This is the third string.

3개의 문자열이 각각의 줄에 인쇄되는 대신, 3개의 문자열이 모두 한 줄에 함께 인쇄되었습니다. print 메서드는 문자열을 화면에 출력하지만 각 문자열을 자체 줄에 표시하려면 줄 바꿈 문자를 직접 추가해야 합니다.

세 문자열을 모두 별도의 줄에 표시하려면 puts 메서드를 대신 사용하세요. print 대신 puts를 사용하도록 프로그램을 수정하십시오.

puts 'This is the first string.'
puts 'This is the second string.'
puts 'This is the third string.'

이제 프로그램을 다시 실행하면 다음과 같은 출력이 표시됩니다.

Output
This is the first string. This is the second string. This is the third string.

puts 메서드는 지정한 문자열을 인쇄하지만 문자열 끝에 개행 문자를 추가합니다.

변수에 문자열 저장

변수는 컴퓨터 메모리의 위치에 대한 명명된 참조입니다. 변수를 사용하여 데이터를 저장하고 나중에 검색합니다.

문자열을 변수에 저장하려면 변수 이름을 정의하고 문자열 값을 할당합니다.

my_string = 'This is my string'

그런 다음 값을 검색하려면 변수 이름을 사용합니다.

print my_string

이를 직접 테스트하려면 다음 명령을 사용하여 편집기에서 string_variables.rb 파일을 생성하십시오.

  1. nano string_variables.rb

그런 다음 다음 코드를 추가합니다.

my_name = "Sammy the Shark"
my_age = "none of your business"

puts my_name
puts my_age

이 프로그램은 my_namemy_age라는 두 가지 변수를 정의합니다. 각 변수에는 문자열이 할당됩니다. 그런 다음 puts 메서드를 사용하여 각 문자열을 자체 줄에 출력합니다.

CTRL + Xy를 사용하여 파일을 저장한 다음 프로그램을 실행합니다.

  1. ruby string_variables.rb

다음 출력이 표시됩니다.

Output
Sammy the Shark none of your business

문자열을 변수에 지정하면 사용할 때마다 동일한 문자열을 반복해서 입력하지 않아도 되므로 프로그램에서 문자열을 사용하고 조작하기가 더 쉬워집니다.

문자열을 결합하여 새 문자열을 만드는 방법을 살펴보겠습니다.

문자열 연결

연결은 두 개 이상의 문자열을 결합하여 새 문자열을 만드는 것을 의미합니다. 연결하기 위해 + 기호로 표시되는 연결 연산자를 사용합니다. + 기호는 산술 연산과 함께 사용될 때 더하기 연산자이기도 합니다.

다음은 문자열 sammyshark를 연결하는 방법입니다.

"sammy" + "shark"

그러면 다음과 같은 결과가 생성됩니다.

Output
sammyshark

연결은 문자열을 끝에서 끝까지 결합하여 결합하고 완전히 새로운 문자열 값을 출력합니다. sammyshark 사이에 공백을 두려면 다음과 같이 문자열 중 하나에 해당 공백을 포함해야 합니다.

"sammy " + "shark"

이제 프로그램에서 실제로 이와 같은 코드를 작성하지는 않지만 문자열과 변수를 매우 자주 함께 혼합해야 하며 연결이 필요한 곳입니다.

예를 들면 다음과 같습니다.

color = "Blue"
print "My favorite color is " + color

이렇게 하면 My favorite color is blue가 출력됩니다. 문자열에서 is라는 단어 뒤에 공백을 두어 출력에서 문자열과 변수 값 사이에 공백을 두었습니다.

이 방법으로 여러 문자열을 함께 연결할 수 있습니다. concatenation.rb 파일을 만들고 다음 코드를 추가합니다.

my_name = "Sammy the Shark"
my_age = "none of your business"

puts "My name is " + my_name + " and my age is " + my_age + "."

이 프로그램은 my_namemy_age라는 두 개의 변수를 정의합니다. 이전에 수행한 것처럼 각각 고유한 문자열이 할당됩니다. 그러나 이번에는 값을 인쇄하는 대신 연결을 사용하여 더 많은 컨텍스트와 함께 해당 값을 인쇄하는 문자열을 인쇄합니다.

이 프로그램을 실행하면 다음과 같은 출력이 표시됩니다.

Output
My name is Sammy the Shark and my age is none of your business.

이 작은 프로그램에서 연결을 사용하여 이 문자열에 변수를 삽입했습니다.

연결을 통해 두 개 이상의 문자열을 결합하면 프로그램 전체에서 사용할 수 있는 새 문자열이 생성되므로 생성한 문자열을 나중에 사용할 수 있는 새 변수에 할당할 수 있습니다.

my_name = "Sammy the Shark"
my_age = "none of your business"

# assign concatenated string to variable
output = "My name is " + my_name + " and my age is " + my_age + "."

# Print the output.
puts output

이와 같은 작은 프로그램에서 추가 output 변수를 사용하는 것은 아마도 불필요할 것입니다. 그러나 더 큰 프로그램에서는 여러 곳에서 사용할 연결을 사용하여 문자열을 만들고 싶을 수 있습니다. 연결 및 산술과 같은 데이터 처리를 출력에서 분리하는 것도 좋은 습관입니다. 결과적으로 프로그램이 더 커지고 논리와 출력을 별도의 파일 또는 구성 요소로 분리하여 관리하기 쉽도록 하기 때문입니다.

서로 다른 두 데이터 유형 사이에 + 연산자를 사용하지 않도록 하십시오. 예를 들어 문자열과 정수를 함께 연결할 수 없습니다.

무슨 일이 일어나는지 보려면 다음 내용으로 strings_and_integers.rb라는 새 프로그램을 만드십시오.

my_name = "Sammy the Shark"
my_number = 27

print my_name + my_number

이번에는 상어 Sammy 문자열을 포함하는 my_name과 정수 27을 포함하는 my_number가 있습니다. 27은 따옴표로 묶이지 않았기 때문에 문자열이 아닙니다. 또한 소수점이 없으므로 정수임을 알 수 있습니다.

프로그램을 실행하면:

  1. ruby strings_and_ints.rb

다음 오류 메시지가 표시됩니다.

Output
strings_and_ints.rb:4:in `+': no implicit conversion of Integer into String (TypeError) from strings_and_ints.rb:4:in `<main>'

정수를 문자열로 암시적으로 변환할 수 없음 오류는 Ruby가 문자열을 기존 문자열에만 연결할 수 있음을 의미합니다.

Ruby 버전 2.3 이하에서는 대신 다음 오류 메시지가 표시됩니다.

strings_and_ints.rb:4:in `+': no implicit conversion of Fixnum into String (TypeError)
from strings_and_ints.rb:4:in `<main>'

키워드 Fixnum은 이전 버전의 Ruby에서 정수에 부여된 데이터 유형이었습니다. 고정 번호의 줄임말입니다. Ruby 2.4에서는 Fixnum과 이에 상응하는 Bignum이 더 이상 존재하지 않으며 대신 Integer로 대체됩니다.

프로그램을 변경하고 숫자 27을 따옴표(\27\)로 묶어 정수 대신 문자열로 선언할 수 있습니다. 또는 다음과 같이 문자열을 만들 때 숫자를 문자열로 변환할 수 있습니다.

my_name = "Sammy the Shark"
my_number = 27

print my_name + my_number.to_s

.to_s 메서드는 정수를 문자열로 변환합니다. 프로그램에서 숫자를 정수로 유지할 수 있으므로 더 나은 접근 방식입니다. 출력할 때 문자열만 있으면 되지만 프로그램 논리의 다른 부분에서 사용해야 하는 경우에는 정수가 되기를 원할 수 있습니다.

프로그램을 다시 실행하면 화면에 Sammy the Shark27이 출력되는 것을 볼 수 있습니다.

연결을 위해 숫자를 문자열로 변환하는 것은 우편 번호, 통화, 전화 번호 및 텍스트와 함께 화면에 표시하려는 기타 숫자 데이터를 처리할 때 자주 접하게 되는 것입니다.

연결은 강력하지만 까다로울 수 있습니다. 실수로 + 연산자 중 하나를 생략하면 구문 오류가 발생할 수 있습니다. 그리고 문자열을 숫자를 포함하는 변수와 결합해야 하는 경우 변수를 문자열로 변환해야 합니다. Ruby는 이러한 문제를 모두 해결하는 문자열 보간이라는 변수 값을 문자열에 삽입하는 또 다른 방법을 제공합니다.

문자열 보간 사용

문자열과 변수를 연결할 때 출력을 읽고 디버깅하기 어려울 수 있습니다. 문자열 보간은 큰따옴표로 묶인 문자열에 식을 포함시켜 이 문제를 해결합니다.

이것을 쓰는 대신:

"My name is " + my_name + "!"

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

"My name is #{my_name}!"

문자열을 종료하고 + 연산자를 사용하는 대신 변수를 #{} 구문으로 묶습니다. 이 구문은 Ruby에게 표현식을 평가하고 문자열에 주입하도록 지시합니다.

사용해 보세요. interpolation.rb라는 새 프로그램을 만들고 다음 코드를 추가합니다.

my_name = "Sammy the Shark"
my_age = "none of your business"

output = "My name is #{my_name} and my age is #{my_age}."

puts output

이것은 이미 작성한 것과 동일한 프로그램이지만 이번에는 문자열 보간을 사용하여 출력을 생성합니다.

문자열 보간에는 또 다른 이점이 있습니다. 숫자 값을 문자열로 자동 변환할 수 있습니다. strings_and_integers.rb 프로그램을 기억하십니까? 편집기에서 해당 파일을 다시 열고 마지막 줄을 다음과 같이 변경합니다.

my_name = "Sammy the Shark"
my_number = 27

# use interpolation instead of concatenation
print "My name is #{my_name} and my favorite number is #{my_number}."

Ruby는 자동으로 my_number를 문자열로 변환하고 프로그램을 실행할 때 다음 출력을 출력합니다.

Output
My name is Sammy the Shark and my favorite number is 27.

문자열 보간은 강력하고 편리합니다. 문자열과 변수를 연결하는 데 선호되는 방법이기도 합니다.

문자열 리터럴 및 문자열 값

생성한 모든 문자열은 코드에서 따옴표로 묶여 있지만 실제 인쇄 출력에는 따옴표가 포함되어 있지 않습니다.

이들 각각을 언급할 때 구별이 있습니다. 문자열 리터럴은 따옴표를 포함하여 소스 코드에 기록된 문자열입니다. 문자열 값은 출력에 표시되며 따옴표를 포함하지 않습니다.

이것은 문자열 리터럴입니다.

"Sammy the Shark"

문자열 값은 상어 Sammy입니다.

대부분의 경우 문자열에 따옴표나 아포스트로피와 같은 특수 문자를 사용하지 않는 한 이 차이에 대해 걱정할 필요가 없습니다.

문자열의 이스케이프 따옴표 및 아포스트로피

따옴표는 문자열을 나타내는 데 사용되기 때문에 문자열에 아포스트로피와 따옴표를 사용하려면 약간의 추가 작업을 수행해야 합니다.

다음과 같이 작은따옴표 문자열 중간에 아포스트로피를 사용하려는 경우:

'This isn't what I wanted.'

isnt의 아포스트로피는 이 예제의 이상한 강조 표시에서 볼 수 있듯이 문자열을 끝냅니다. 결과적으로 Ruby 인터프리터는 의도한 나머지 문자열을 코드로 구문 분석하려고 시도하고 오류가 발생합니다.

큰따옴표로 묶인 문자열에 큰따옴표를 사용하면 같은 상황이 발생합니다.

"Sammy says, "Hello!""

이 예에서 Hello 앞의 닫는 큰따옴표는 문자열을 종료하고 Hello! 뒤의 큰따옴표는 일치하는 큰따옴표가 없는 새 문자열을 만듭니다. Ruby는 오류를 표시합니다.

이 문제를 방지하려면 몇 가지 옵션이 있습니다. 첫째, 문자열을 생성하기 위한 대체 구문을 사용할 수 있습니다. 문자열에 큰따옴표를 사용해야 하는 경우 작은따옴표를 사용하여 문자열을 정의하고 그 반대의 경우도 마찬가지입니다. 따옴표를 이스케이프하거나 다른 Ruby 구문을 사용하여 문자열을 정의할 수도 있습니다. 각 접근 방식을 살펴보겠습니다.

옵션 1: 대체 문자열 구문 사용

이러한 문제를 해결하는 가장 쉬운 방법은 문자열에 큰따옴표를 포함해야 하는 경우 문자열을 작은따옴표로 묶고 문자열에 작은따옴표를 사용해야 하는 경우 문자열을 큰따옴표로 묶는 것입니다.

이 문자열을 작은따옴표로 정의하는 대신:

'This isn't what I wanted.'

큰따옴표로 정의하십시오.

"This isn't what I wanted."

그리고 이 문자열을 정의하기 위해 큰따옴표를 사용하는 대신:

"Sammy says, "Hello!""

작은따옴표 사용:

'Sammy says, "Hello!"'

대체 구문을 사용하면 빠른 잼에서 벗어날 수 있지만 항상 작동하지는 않습니다. 예를 들어 다음 문자열에는 두 접근 방식 모두 작동하지 않습니다.

"Sammy says, "I'm a happy shark!""

이 예에서 Im 앞의 닫는 큰따옴표는 정말 의미가 없습니다. 이렇게 하면 첫 번째 문자열이 종료되고 Ruby는 Im에서 아포스트로피를 만나 m a happy shark!\\ 값으로 새 문자열을 시작합니다. 그러나 이 새 문자열에는 종료할 일치하는 작은따옴표가 없습니다. 작은따옴표를 사용하여 문자열을 둘러싸면 비슷한 문제가 발생합니다.

'Sammy says, "I'm a happy shark!"'

이번에는 Im의 아포스트로피가 문자열을 종료합니다.

대체 구문을 사용하면 코드가 일관되지 않을 수도 있습니다. 문자열 구문 사이를 계속 뒤집으면 혼란스러울 수 있습니다. 이 문제를 해결하기 위해 이스케이프 문자를 사용할 수 있습니다.

옵션 2: 문자열의 이스케이프 문자

문자열에서 종종 이스케이프 문자라고 하는 백슬래시 문자(\\)는 Ruby가 문자열의 다음 문자를 문자 그대로 해석하지 못하게 합니다.

다음은 내부에 큰따옴표가 있는 큰따옴표로 인코딩된 문제가 있는 문자열입니다.

"Sammy says, "I'm a happy shark!""

quoting.rb라는 새 Ruby 프로그램을 만들고 다음 코드를 파일에 추가합니다.

print "Sammy says, "I'm a happy shark!""

프로그램을 실행합니다:

  1. ruby quoting.rb

그러면 다음과 같은 출력이 표시됩니다.

Output
quoting.rb:1: syntax error, unexpected tCONSTANT, expecting end-of-input print "Sammy says, "I'm a happy shark!"" ^

오류를 수정하려면 내부 큰따옴표 앞에 백슬래시를 사용하십시오.

print "Sammy says, \"I'm a happy shark!\""

그런 다음 프로그램을 다시 실행하면 예상한 결과가 표시됩니다.

Sammy says, "I'm a happy shark!"

이 예에서는 충돌이 없으므로 아포스트로피를 이스케이프 처리할 필요가 없습니다. Ruby를 혼동시킬 따옴표만 이스케이프 처리하면 됩니다.

다른 구문을 사용하여 문자열을 정의하면 따옴표를 완전히 이스케이프 처리하는 것을 방지할 수 있습니다.

옵션 3: 문자열에 대한 대체 구문 사용

지금까지 문자열의 경계를 정의하기 위해 따옴표를 사용했습니다. 다른 문자를 사용하여 Ruby에서 문자열을 만들 수도 있습니다. 다음과 같이 백분율 기호 뒤에 지정하여 구분 기호 또는 문자열을 묶는 데 사용할 문자를 정의할 수 있습니다.

%$Sammy says, "I'm a happy shark!"$

이 구문은 포함된 문자열을 자동으로 이스케이프 처리합니다. 실제 문자열은 다음과 같습니다.

"Sammy says, \"I'm a happy shark!\""

그러나 구분 기호를 변경하면 사용해야 하는 경우 구분 기호를 이스케이프해야 합니다. 이 경우. 문자열에 달러 기호를 사용해야 하는 경우 문자열의 문자 그대로 달러 기호를 이스케이프 처리해야 합니다.

이를 방지하기 위해 중괄호 쌍, 대괄호 또는 괄호를 구분 기호로 사용할 수도 있습니다. 중괄호가 가장 일반적입니다.

%{Sammy says, "I'm a happy shark!"}

이러한 형식은 모두 필요한 경우 문자열 보간을 지원합니다.

droplets = 5
print %{Sammy says, "I just created #{droplets} droplets!"}

Ruby 프로그램에서 문자열을 정의하는 데 사용되는 %Q{}%q{}도 볼 수 있습니다. %Q{} 구문은 큰따옴표 문자열과 똑같이 작동합니다. 즉, 큰따옴표를 생략할 필요가 없으며 문자열 보간을 사용할 수 있습니다.

droplets = 5
print %Q{Sammy says, "I just created #{droplets} droplets!"}

%q{} 구문은 작은따옴표 문자열과 똑같이 작동합니다.

%q{Sammy says, "I'm a happy shark!"}

일부 프로그램에서는 중괄호 대신 괄호 또는 대괄호와 함께 사용되는 %q%Q 구문을 볼 수 있습니다.

보시다시피 Ruby에서 문자열을 만드는 방법은 많습니다. 어떤 방법을 선택하든 코드에서 일관성을 유지하십시오. %Q{}%{} 메서드가 가장 일반적이라는 것을 알게 될 것입니다.

이제 특수 문자를 처리하는 방법을 알았으니 긴 문자열과 개행 문자를 처리하는 방법을 살펴보겠습니다.

긴 문자열과 개행

줄바꿈 문자나 캐리지 리턴을 문자열에 삽입하고 싶을 때가 있습니다. <코드>를 사용할 수 있습니다.\n 또는 <코드> 이스케이프 문자를 사용하여 코드에 개행을 삽입합니다.

output = "This is\na string\nwith newlines"
puts output

이 프로그램은 다음과 같은 출력을 생성합니다.

Output
This is a string with newlines

이것은 기술적으로 여러 줄에서 출력을 얻는 데 작동합니다. 그러나 한 줄에 매우 긴 문자열을 작성하면 읽고 작업하기가 매우 어려워집니다. 몇 가지 해결책이 있습니다.

먼저 연결 연산자를 사용하여 문자열을 여러 줄로 나눌 수 있습니다.

output = "This is a\n" +
"longer string\n" +
"with newlines."
puts output

이것은 이미 수행한 것과 유사하게 세 개의 문자열을 함께 연결합니다.

문자열에 바로 줄 바꿈을 넣을 수도 있습니다.

output = "This is a
longer string
with newlines"
puts output

대체 문자열 구문을 사용하여 여러 줄 문자열을 만들 수도 있습니다.

output = %{This is a
longer string
with newlines}
puts output

이 두 예에서 줄 바꿈( ) 문자. 이 접근 방식은 들여쓰기 및 줄 바꿈을 포함하여 공백을 유지합니다.

결과적으로 출력에는 줄 바꿈과 모든 선행 들여쓰기가 포함됩니다.

Output
This is a longer string with newlines

이를 방지하려면 코드에서 추가 공백을 제거하십시오.

output = %{This is a
longer string
with newlines
}

프로그램에서 여러 줄 문자열 리터럴에 사용되는 용어인 heredoc 또는 "here 문서\를 사용하여 여러 줄 문자열을 만들 수도 있습니다. 해당 코드를 작성하는 방법은 다음과 같습니다.

output = <<-END
This is a
longer string
with newlines
END

<<-ENDEND 마커는 heredoc의 시작과 끝을 나타냅니다.

Ruby의 Heredocs는 공백 문자도 보존합니다. 즉, heredoc의 코드를 들여쓰면 선행 들여쓰기도 보존됩니다. 그래서 이 코드는:

output = <<-END
This is a
longer string
with newlines
END

2칸의 들여쓰기로 출력됩니다.

Ruby 2.3 이상에서는 이 선행 공백을 자동으로 제거하는 "squiggly heredoc\ 구문을 제공합니다. heredoc 정의의 하이픈을 물결표로 바꾸면 <<-<<~가 됩니다, 다음과 같습니다.

output = <<~END
This is a
longer string
with newlines
and the code is indented
but the output is not.
END

그러면 다음과 같은 출력이 생성됩니다.

Output
This is a longer string with newlines and the code is indented but the output is not.

이렇게 하면 heredocs를 사용하고 코드를 멋지게 들여쓰기할 수 있습니다.

Ruby의 Heredocs는 문자열 보간법도 지원합니다.

보시다시피 Ruby에는 줄 바꿈과 여러 줄 문자열을 처리하는 방법이 많이 있습니다. 각 프로젝트에는 고유한 스타일이 있는 경향이 있으므로 기존 Ruby 코드로 작업할 때 이러한 모든 메서드를 접하게 됩니다. 자신의 코드에서 자신에게 맞는 스타일을 선택하고 일관성을 유지하세요.

문자열 복제

문자열을 여러 번 반복하기 위해 Ruby를 사용해야 하는 경우가 있습니다. * 연산자로 그렇게 할 수 있습니다. + 연산자와 마찬가지로 * 연산자는 곱셈 연산자인 숫자와 함께 사용될 때 다른 용도로 사용됩니다. 하나의 문자열과 하나의 정수와 함께 사용되는 경우 *문자열 복제 연산자이며 제공한 정수를 사용하여 원하는 만큼 단일 문자열을 반복합니다.

Sammy를 아홉 번 인쇄하려면 다음 코드를 사용합니다.

print "Sammy" * 9

이 코드는 다음 출력을 생성합니다.

Output
SammySammySammySammySammySammySammySammySammy

이것을 사용하여 멋진 ASCII 아트를 만들 수 있습니다. banner.rb라는 파일을 만들고 다음 코드를 추가합니다.

puts "=" * 15
puts "| Hello World |"
puts "=" * 15

프로그램을 실행하기 전에 프로그램이 무엇을 생성할지 상상할 수 있습니까?

이 출력을 생성합니다.

Output
=============== | Hello World | ===============

이것은 컴퓨터가 반복적인 작업을 수행하도록 할 수 있는 방법에 대한 작은 예일 뿐입니다.

결론

이 자습서에서는 Ruby 프로그래밍 언어에서 문자열 데이터 유형으로 작업하는 방법을 배웠습니다. 새 문자열을 만들고 다른 문자열과 연결하고 새 줄, 따옴표 및 아포스트로피를 처리했습니다. 그런 다음 문자열 보간법을 사용하여 문자열과 변수 값을 더 쉽게 혼합하고 문자열을 반복하는 방법을 배웠습니다.