;

1 문장부호

문장 부호
한글 맞춤법 부록에 수록된 문장 부호
마침표(.)물음표(?)느낌표(!)쉼표(,)가운뎃점(·)[[:|쌍점]](:)빗금(/)
큰따옴표#s-2.1(“ ”)작은따옴표#s-2.2(‘ ’)소괄호(( ))중괄호({ })대괄호([ ])겹낫표(『 』)
겹화살괄호(《 》)
홑낫표(「 」)
홑화살괄호(〈〉)
줄표(―)붙임표(-)물결표(~)드러냄표(˙)
밑줄(_)
숨김표(○, X) 빠짐표(□)말줄임표(……)
한글 맞춤법 부록에 수록되지 않은 문장 부호
물음느낌표(?!)쌍반점(;)칼표(†), 겹칼표(‡)고리점(。)모점(、)

雙半點, (영어)semicolon

문장부호의 한 종류. 쌍반점(雙半點) 또는 세미콜론(semicolon)이라고 읽는다. 미국에서는 드물게 '세마이콜론'과 유사하게 발음하기도 한다.

1.1 원래 의미

올바른 세미콜론의 용법[1]

영어권에서만 쓰이는 문장 부호로, 접속사 'and', 'that is', 'but', 'however', 'so', 'because' 등의 의미를 가지거나 여러 의미를 동시에 가질 때 사용된다.

예) cumulative conjunctions: and, that is; adversative conjunctions: but, however; illative conjunctions: so, because
순접 접속사: and, that is; 역접 접속사: but, however; 추론 접속사: so, because

쉽게 말하자면 앞의 문장과 뒤의 문장이 서로 연관 관계 또는 인과 관계를 가지고 있다고 생각하면 된다. 원인 또는 이유→결과로서 가는 게 보통이나 결과→원인 또는 이유로 진행되는 인과관계도 종종 있는 편이다. 이 경우는 'because'(왜냐하면) 등으로 해석할 수 있다.

1. 원인→결과

예) The man, who fought bravely against the enemy in the war, passed away yesterday; (so) his wife is crying.
(전쟁에서 용감히 적과 싸웠던 그가 어제 세상을 떠났다. (그래서) 그의 아내는 울고있다.)

2. 결과→원인

예) He has the stomach full of food; (because) someone has given him too much food in the party.
(그는 먹을 것을 잔뜩 먹었다. (왜냐하면) 누군가 파티에서 그에게 먹을 것을 너무 많이 줬기 때문이다.)

명령법이 사용된 경우는 명령법 이후에 그 결과를 서술하는 경우가 많고, 반대로 '결과; 명령법'의 구조로도 사용 가능하다. 단순히 어떤 사실을 서술할 경우에는 그 다음에 이유를 서술하는 경우가 많다. 이 경우 역시, 이와 반대되는 '이유; 사실'의 구조로도 사용할 수 있다. 이후 문법이 좀 더 발전되면서 문장을 일단 끊었다가 이어서 설명을 더 계속할 경우에도 쓴다. 주로 예를 들어 설명하거나 설명을 덧붙이는 경우에 쓴다. 또한 콜론이든 세미콜론이든 앞은 붙이고 뒤는 띄우는 게 원칙이다.

쉼표랑 헷갈리는 경우가 많은데, 세미콜론 다음에는 'independent clause'[2]만 올 수 있지만 쉼표 다음에는 양쪽 다 가능하다. 예를 들자면,

예) Call me tomorrow; I will give my answer then. (◯)
(내일 전화해주세요. 그 때 답변하겠습니다.)
: 세미콜론 다음에 주절이 오므로 성립 가능한 문장.
--
예) I have read the Lord of the Rings; Simarilion; and the Hobbits. (✕)
(나는 반지의 제왕; 실마릴리온; 호빗을 읽었다.)
예시가 굉장히 덕스러운 건 넘어가자--
: 주절이 아니라 단순히 명사가 오므로 콤마, 즉 쉼표를 써야 한다.

영어 원서에서 굉장히 많이 쓰이는 부호다. 근데 학교에는 세미콜론은 물론이고 다른 문장 부호도 잘 안 가르쳐주며 수능에도 나오지 않는다.[3] 한국의 영어 교육이 얼마나 현실과 동떨어져 있는지 논할 때 자주 언급되는 사례이다. 꽤 오래 전부터 지적되어온 사안인데도 절대 바뀌지 않는다. 그런데 이걸 주제로 SAT에서 문제가 나오기도 하니 왜 안 가르쳐 주는지는 정말 알 수 없는 노릇이다.

사실, 안 가르쳐 주는지보다는 '왜 써야 하는지'를 몰랐고 그것이 현재까지 이어졌다고 보는 게 맞을 것이다. L2/FL 언어교육이론에서 중요시하는 게, 언어를 가르치는 사람이나 배우는 사람이나 단순히 기능적 문법(functional grammar)에 대한 지식만이 아니라 그 언어를 사용하는 사회의 문화적 배경과 이에 대한 이해(특히 화용론적 의도)가 있어야[4] 제대로 써먹는다는 것이다. 그러나 이에 대한 연구가 1990년대 초반에 들어와서야 이뤄지고 한국에 들어왔으니, 그 때까지 영어를 가르쳐왔던 방식이 '한국어로 직역 풀이'하는 형태를 못 벗어났던 것은 당연한 일이다. '외국어를 전문적으로 가르치는 인력이 한없이 부족했다는 점도 한몫 한다. 이건 '왜 아직도 번역가들이 빌빌대는가?'하는 문제와 같은 맥락이기도 하다.

한국어로는 '쌍반점'이라는 이름이 있긴 하지만 그뿐이며 한국어에서는 사용하지 않는 문장부호이다. 한국어 사용자가 세미콜론 사용에 익숙지 않은 데는 이게 모국어에 없는 문장부호라는 탓도 매우 크게 작용한다. 영어 교육에서 더더욱 이런 용법을 자세히 가르쳐야 하는 이유이다.

단, 한국어로 글을 쓰는데 세미콜론을 여기서 설명된 용례처럼 썼다면, 문장부호를 옳게 사용한 것이기는커녕 훌륭한 번역체 문장이 된다. 영어를 한국어로 번역할 때도 이와 마찬가지로 쓰지 말아야 한다.

1.2 콜론( : )과의 차이점

세미콜론은 주로 인과관계를 나타내기 위해 사용되거나, 쉼표로 특정 단어를 나누기 불편할 경우에 쓰인다.

예) Team 1: James, Jason, Judy; Team 2: Smith, Henry, Guinness
(1조 제임스, 제이슨, 쥬디; 2조 스미스, 헨리, 기네스)

또한 동일한 성격의 주절을 병렬할 때도 쓰일 수 있다. 한국어의 '그리고', '~(하)고' 와 같은 역할이라 할 수 있겠다. 각각의 주절 간에 중복되는 표현은 두번째 주절부터는 생략되는 경우가 많다.

예) I give you orders. I'll take the main door; you, back door; and you, side door.
(명령을 내리겠다. 일단 나는 정문을 맡고; 너는 뒷문을 지키고; 너는 옆문을 막아.)

반면에, 콜론은 주로 앞의 문장을 보조하기 위한 상세한 설명이나 사례를 제시하고자 할 때 쓰인다. 주로 'for example'(예를 들어)의 뜻을 담고 있다. 또한 줄표의 사용법과 헷갈릴 수 있는데, 줄표는 보조적인 설명을 위해 사용되고 콜론은 중요한 설명을 위해 사용된다. 세 가지 문장 부호의 용례를 직접 비교해보자.

  • 세미콜론의 경우 :
명령을 내리겠다. 일단 나는 정문을 맡고; 너는 뒷문을 지키고; 너는 옆문을 막아.
  • 콜론의 경우 :
우리가 수비하게 된 곳은 다음과 같다: 정문, 뒷문, 그리고 옆문.
나는 이번에 옆문—어차피 절벽이라 할 일이 없는—을 맡았다.

다음과 같은 식으로 생각해 볼 수도 있다.

  • 세미콜론( ; ) - 온점( . ) 하나로 잠깐 정지했다가 쉼표( , )를 써서 '그리고'라는 뜻을 덧붙이는 것.
  • 콜론( : ) - 온점( . ) 두 개로 딱 끊어버린 뒤에, 말하다 끊어버리면 이유가 궁금하니까 설명을 덧붙이는 것.

2 프로그래밍 언어

원래는 컴퓨터 극 초창기 시절, 프로그램을 출력할 때 쓰는 프린터는 지금처럼 직사각형의 용지를 사용해서 여러 줄을 한번에 출력하는 것이 아니라, 줄자 혹은 카세트테이프처럼 한 줄만 인쇄할 수 있는 둘둘 말린 종이테이프에 인쇄되어 나왔었다. 따라서 출력을 하고 보면 모든 문장이 행의 구분 없었으며, 이런 상황에서 행을 구분하기 위해서 세미콜론을 매 행의 마지막에 박아주었던 것이 관습적으로 남았던 것.

2.1 한 행을 종결시키는 의미로서의 세미콜론

컴파일러가 코드를 해석할 때 어느 위치에서 명령문이 끝나는지 알 수 있도록 작성하는 부호로 자연어에서의 마침표와 비슷한 역할이다. 모든 프로그래밍 언어에서 공통적으로 사용되는 것은 아니지만 C언어 계열 문법을 채택한 언어라면 십중팔구 세미콜론을 명령문 끝에 쓰도록 되어 있고, C언어가 워낙 자주 쓰이는 언어이고 여러 다른 언어에 많은 영향을 주다 보니 많은 언어에서 채택했다.

프로그래머라면 누구나 언제라도 정신줄 놓고 소스에 세미콜론을 하나씩 빼먹는 사소한 실수를 저질러 컴파일 오류를 띄운다. 아니면 while(1);{Statements...}이라던가 for(;;);{statements....}으로 무한루프 에러 만들어 본 적도 있을 거다. 가끔 쉬프트를 누른 채로 쓰는 바람에 ; 대신 : 이라고 쓰는 경우도 있다, 최신 IDE등은 코딩하는 단계에서 세미콜론이 누락됐음을 알려주어 수정할 수 있도록 유도하지만, 보통 컴파일러들은 그런 거 없기 때문에 컴파일을 돌려서 나온 에러 메시지로 빠진 부분을 찾을 수 있다. 또한 프로그래머라면 누구나 언제라도 정신줄 놓고 일반적인 문장 끝마다 세미콜론을 붙이는 실수를 한다. 메신저, 채팅, 단순 문서작성, 심지어는 손으로 글을 적는 순간에도 문장을 끝내고 ;를 적는 실수를 하기도 한다. 습관이 무섭단 걸 알려주는 사례.

대학의 관련 학과에서 프로그래밍 언어를 처음 배울 때 시험에 자주 출제되는 범위(…)이다. "주어진 코드에서 오류가 발생하는 부분을 찾아 고치시오"란 문제가 출제되면 명령문 끝에 세미콜론을 빼먹은 부분이 한 두 개 정도는 꼭 포함되어 있다.

끝마다 세미콜론을 쳐 주는 게 좀 귀찮은 일이다 보니 JavaScript나 Scala같은 몇몇 언어에선 자동으로 행의 끝을 인식해서 세미콜론이 행을 종결시켜 줄 필요가 없도록 하기도 한다. Python, Ruby 등의 언어에서는 ; 을 칠 필요가 없다. 사실 최신 스크립트 언어에서는 세미콜론을 빼는 경우가 많다.

장난으로라도 남의 파일에 세미콜론과 똑같이생긴 그리스 물음표인 ; 을 붙이지 말자.[6] Eclipse 같은게 아니면 에러난다.

2.2 주석으로 쓰이는 세미콜론

한줄 주석 기호. C계열 언어에서의 //와 동일한 역할을 한다. LISP의 여러 방언(dialect), 일부 어셈블리어 등에서 사용한다. 애시당초 LISP나 어셈블리가 C보다 오래되긴 했지만, LISP와 어셈블리는 그 특성상 행 종결이 특별히 필요하지 않아서이기도 하다. 전자는 무조건 괄호 단위로 인식하고, 후자는 무조건 정해진 바이트단위로 끊어서 읽으므로.

3 이모티콘

땀을 흘리는 모습을 나타낸 이모티콘. 표정을 나타낸 이모티콘과 조합해 많이 쓰며(예 : ^^;, --;;), 단독으로 쓰이는 경우 주로 당혹하거나 난감한 상황에 쓰인다. (예 : 이거, 곤란하네요;;; 또는 오늘 너무 더웠네;;)

가끔은 ; 가 두개(;;)를 쓰면 짜증내는 표현이기도 하다.

나무위키에서도 가끔 ;가 보이는데 나무위키에서는 ;의 사용을 자제하고 있다. 일단 문어체와 맞지도 않은 문제도 있으며 위키 문법 충돌을 불러올수도 있고 많이 쓰일수록 문서가 더러워지기 때문. ㅎㄷㄷ과 마찬가지로 지우는게 좋다. 참고로 이걸 복구시키는건 신고가 가능하므로 주의하자.

동양식과는 방향이 반대인 서양식 이모티콘에서는 :과 함께 눈을 나타낼 때 쓰인다. :이 눈을 제대로 뜨고 있는 느낌이라면 ;은 윙크를 하는 느낌.

4 기타

그리스어에서는 세미콜론이 물음표로 쓰인다. 위 '프로그래밍 언어'로서의 속성에 착안해서 이런 장난을 치는 것도 가능하다.

이 문서의 내용 중 전체 또는 일부는 세미콜론문서에서 가져왔습니다.</div></div>
  1. 본 영상에 나오는 모든 가사의 세미콜론( ; )은 콜론( : )으로 바꿔야 문법적으로 맞다. 그래서 제일 마지막의 가사가 "No actually those are examples of colons. You all get F's."(아니, 사실 이건 모두 콜론을 써야 하는 것들이었어. 너희들 다 F학점 받는다.)이다.
  2. 주절. 그 자체만으로도 문장이 된다.
  3. 사실 지문 안에 있어서 설명을 해주긴 한다. 그냥 해석만 하고 넘어가는 정도지만. 문장부호와 직접 관련된 문제는 까마득한 옛날 모의평가에서 딱 1차례 나온적이 있긴 하다.
  4. Eli Hinkel, 2001
  5. 하이픈( - )과 줄표( — )는 비슷해 보이지만 다르다. 하이픈은 hyphenation rules라는 규칙이 있다. 2단어가 하이픈으로 연결되어 있으면 당연히 한 단어가 된다. 참고로 줄표를 하이픈 2개( -- )로 대신 쓰기도 한다.
  6. 겉보기에 똑같이 생겼다. 다만 컴파일시 에러메세지가 몇행에서 에러가 났는지와 그 원인을 알려주기 때문에 세간의 인식과는 달리 들키기 쉽다.