구분 문자(영어: Delimiter)는 일반 텍스트 또는 데이터 스트림에서 별도의 독립적 영역 사이의 경계를 지정하는 데 사용하는 하나의 문자 혹은 문자들의 배열을 말한다.[1] 구분 문자의 한 예로 쉼표가 있는데, CSV(comma-separated values) 파일의 필드 구분자의 역할을 한다.

CSV 텍스트 파일에서는 쉼표(빨간색)가 필드 구분자로 사용된다.

영어로 Delimit이 "범위(한계)를 정하다"라는 의미이다. 공식 문서에서는 'delim'와 같은 약어로 표시되기 때문에 주의가 필요하다.

예를 들어 istream& getline (istream& is, string& str, char delim); 와 같이 표시가 된다.

구분 문자는 데이터 스트림의 경계를 지정하는 다양한 방법 중 하나이다. 예를 들어, 선언적 표기법(Declarative notation)은 데이터 경계를 지정하는 다른 방법으로서, 데이터 스트림이 시작할 때 길이 필드에 그 스트림에 포함된 문자의 수를 지정하여 데이터의 경계를 지정한다.[2]

개요 편집

구분 문자는 다음과 같이 나눌 수 있다.:

필드와 레코드 구분 문자 편집

필드 구분 문자는 데이터 필드를 분리한다. 레코드 구분 문자는 필드들의 그룹을 분리한다.[3]

예를 들어, CSV 파일 형식은 필드 간의 구분 문자로서 쉼표를 사용하고 레코드 사이의 구분자로는 줄바꿈(end-of-line) 문자를 사용한다. 다음의 예를 보자.

성,이름,나이,연봉
김,영희,33,₩30000000
홍,길동,28,₩25250000
이,철수,35,₩28700000

이 예는 CSV 파일 형식을 사용하여 간단한 플랫 파일 데이터베이스 테이블을 표현한다.

영역 구분 문자 편집

영역 구분 문자(혹은 블록 구분 문자, 괄호 구분 문자)는 텍스트 영역의 시작과 끝을 모두 표시한다.[4][5]

영역 구분 문자의 일반적인 예는 다음과 같다.[6]

구분 문자 설명
( and ) 괄호. 리스프 프로그래밍 언어의 문법에서는 주로 이 괄호를 사용하여 인식한다.[7]
{ and } 중괄호 (혹은 컬리 브래킷[8] )
[ and ] 대괄호 (일반적으로 첨자를 나타내기 위해 사용된다.)
< and > 꺾쇠 괄호[9]
" and " 일반적으로 문자열을 나타내기 위해 사용된다.[10]
' and ' 일반적으로 문자열을 나타내기 위해 사용된다.[10]
<? and ?> XML 처리 명령어 표시에 사용된다.[11]
/* and */ 일부 프로그래밍 언어의 주석을 나타내기 위해 사용된다.[12]
<% and %> 언어의 경계를 지정하는 일부 웹 템플릿들에 사용된다. 이들은 또한 템플릿 구분 문자 로도 불린다.[13]

규약 편집

컴퓨팅 플랫폼은 역사적으로 관례에 따라, 특정한 구분 문자를 사용한다.[14] 다음의 표가 비교를 위한 몇 가지 예를 보여준다.

프로그래밍 언어 (같이 보기 , 프로그래밍 언어 (문법)의 비교)

문자열 명령문의 끝
파스칼 작은따옴표 세미콜론
C 작은따옴표, 큰따옴표 세미콜론

필드와 레코드 구분 문자 (참고: ASCII, 제어 문자).

필드의 끝 레코드의 끝 파일의 끝
Unix, Mac OS X, Amiga OS Tab LF none
Windows, MS-DOS, OS/2, CP/M Tab CRLF Control-Z[15]
Classic Mac OS, AppleDOS, ProDOS, GS/OS Tab CR none
ASCII/Unicode UNIT SEPARATOR
Position 31 (U+001F)
RECORD SEPARATOR
Position 30 (U+001E)
FILE SEPARATOR
Position 28 (U+001C)

같이 보기 편집

참고 문헌 편집

  1. “Federal Standard 1037C delimiter. 2013년 3월 5일에 원본 문서에서 보존된 문서. 2014년 1월 28일에 확인함. 
  2. Science, By (1973). 《Programming in Fortran》. Oxford Oxfordshire: Oxford University Press. ISBN 978-0-7190-0555-8. 
  3. de Moor, Georges J. (1993). 《Progress in Standardization in Health Care Informatics》. IOS Press. ISBN 90-5199-114-2.  p. 141
  4. Friedl, Jeffrey E. F. (2002). 《Mastering Regular Expressions: Powerful Techniques for Perl and Other Tools》. O'Reilly. ISBN 0-596-00289-0.  p. 319
  5. Scott, Michael Lee (1999). 《Programming Language Pragmatics》. Morgan Kaufmann. ISBN 1-55860-442-1. 
  6. Wall, Larry, Tom Christiansen and Jon Orwant (2000년 7월). 《Programming Perl, Third Edition》. O'Reilly. ISBN 0-596-00027-8. 
  7. Kaufmann, Matt (2000). 《Computer-Aided Reasoning: An Approach》. Springer. ISBN 0-7923-7744-3. p. 3
  8. Meyer, Mark (2005). 《Explorations in Computer Science》. Oxford Oxfordshire: Oxford University Press. ISBN 978-0-7637-3832-7. 컬리 브래킷과 세미콜론이 특징인 C-스타일 프로그래밍 언어를 참조.
  9. Dilligan, Robert (1998). 《Computing in the Web Age》. Oxford Oxfordshire: Oxford University Press. ISBN 978-0-306-45972-6. HTML에서 사용되는 문법과 구분 문자들을 설명.
  10. Schwartz, Randal (2005). 《Learning Perl》. Oxford Oxfordshire: Oxford University Press. ISBN 978-0-596-10105-3.  문자열을 설명.
  11. Watt, Andrew (2003). 《Sams Teach Yourself Xml in 10 Minutes》. Oxford Oxfordshire: Oxford University Press. ISBN 978-0-672-32471-0.  XML 처리 명령을 설명. P. 21.
  12. Cabrera, Harold (2002). 《C# for Java Programmers》. Oxford Oxfordshire: Oxford University Press. ISBN 978-1-931836-54-8.  single-line 과 multi-line comments를 설명. P. 72.
  13. “Smarty Template Documentation”. 2010년 3월 12일에 확인함.  See e.g., Smarty template system documentation, "escaping template delimiters".
  14. International Organization for Standardization (December 1, 1975). "The set of control characters for ISO 646 Archived 2012년 7월 29일 - 웨이백 머신". Internet Assigned Numbers Authority Registry . Alternate U.S. version: [1] Archived 2006년 3월 5일 - 웨이백 머신. Accessed August 7, 2005.
  15. Lewine, Donald (1991). 《Posix Programmer's Guide》. Oxford Oxfordshire: Oxford University Press. ISBN 978-0-937175-73-6.  control-z의 사용을 설명. p.156

외부 링크 편집