삽질의 현장/- ETC

[삽잡이::etc] 백슬래시(backslash)와 escape sequence에 대해서

shovelman 2016. 7. 13. 23:06


백슬래시는 상황에 따라 

 


이와 같이 두가지로 나타나게 됩니다.

이 백슬래시는 프로그래밍 언어에서 escape 기능을 가지고 있습니다.


escape는 말 그대로

탈출하다는 의미를 가지고 있습니다.


escape sequence 는 기존 의미를 탈출한 

특수한 기능을 위해 사용하는 약속입니다.


즉, 기존 프로그래밍 언어를 통해 코드를 작성해가며

기존에 정해진 약속에 의해 표현이 곤란한 문자들을 표현한다던지,

특정 기능을 제공할 수 있습니다.


예를 들어 문자를 출력하는 경우를 생각해보겠습니다.


1
System.out.println("Hello! My name is "삽잡이"!");
cs


이와 같이 출력하고자 하는 문자열에 

큰 따옴표("")가 존재한다면?


프로그래밍 언어를 사용하며 정해진 약속중 하나는

'문자열 출력은 큰 따옴표("")안에 적힌 내용만 가능하다.' 는 것입니다.



그런데, 이와 같이 이해한 우리는

따옴표안에 따옴표가 들어간다고 생각할 수는 있지만,

컴퓨터 입장에서는 그리 받아들일 수 없지요.


단 하나의 예만 든 것이지만,

이처럼 표현적 한계가 존재하기 때문에

escape 기능이 존재하는 것입니다.


이처럼 프로그래밍 언어에서 escape 기능으로 통하는

백슬래시(\)를 사용하여 표현의 한계를 벗어나게 되는 것입니다.


이 외에도 백슬래시와 문자의 조합을 통해 

특수한 기능들이 표현되기도 합니다.


C/C++에서의 \n은 New Line

즉, 개행이라는 기능으로 변환되고,

\t를 사용하게 되면 tab의 기능이 되는 것처럼 말입니다.


이와 같이 기존 기능의 한계를 탈출하는 escape 기능은 

이 외에도 코드를 작성하며 심심치않게 보실 수 있습니다.



또한, 백슬래시는 윈도우 운영체제에서 

경로를 나타내는데 사용되기도 합니다.


이와 반대로 리눅스 운영체제에서의 경로는 

슬래시(/)를 통해 표현되지요.


이러한 부분에서 혼란이 오면

코드를 작성하며 경로를 입력할 때 잘못 입력하게 되어

왜 에러가 발생했는지 찾아 헤메는 경우로 

확대 될 수도 있다는 사실... 하하하...


굳~