Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

[Yukon 베타] 델파이 언어: 문자열 리터럴 (String Literal) 현대화


Recommended Posts

마르코 칸투 (Marco Cantu)"Yukon Beta Blog] Delphi Language: Modernizing String Literals" 를 번역했습니다. (원문 작성: 2023년 9월, 번역 업데이트:  2023년 9월)

이 글은 RAD 스튜디오 소프트웨어의 출시 전 버전을 기반으로 작성되었으며 엠바카데로의 허가를 받고 작성되었다. 사전 공개 되는 기능이 반드시 GA (정식 출시, General Availability)에 포함된다는 보장은 없다.

다른 프로그래밍 언어 대부분과 마찬가지로 델파이의 오브젝트 파스칼에서는 개발자가 문자열 리터럴(String Literal, 코드에 직접 문자열로 적어 넣는 값)을 사용할 수 있다. 그리고 매우 널리 사용된다. 사실, 문자열 리터럴 사용은 항상 권장되는 것은 아니다. 리소스 문자열 (resource string)을 사용하는 것이 더 좋다. 메모리 관리와 사용자에게 표시할 문자열 번역 지원 측면에서 장점이 있기 때문이다. 

처음부터 지금까지, 델파이의 문자열 리터럴(String Literal)은 원래의 터보 파스칼 문자열 타입, 즉 지금의 Short string 타입에 갇혀 있었다. Short string 타입은 최대 255자까지 담을 수 있으며 정적 배열(static array)에 직접 할당된다. 델파이는 델파이 2부터 동적으로 할당되는 긴 문자열을 도입했다. 처음에는 긴 문자열이 Ansi를 기반으로 했고 나중에는 유니코드를 기반으로 했다. 하지만, 문자열 리터럴은 여전히 초기 방식에서 전혀 벗어나지 못했다. 즉 short string 타입이라는 한계로 인해 최대 255자까지만 담을 수 있었다.

델파이 (와 RAD 스튜디오) 12.0 버전에서는 델파이 컴파일러가 문자열 리터럴을 처리하는 방식에 매우 중요한 변경 사항이 도입되었다.

긴 문자열 리터럴 (Long String Literals)

곧 출시될 버전에서는 문자열 리터럴에 255자를 넘게 적을 수 있을 가능성이 있다. 델파이 컴파일러에서는 특별한 제한이 없다. 그러나 리터럴 문자열의 길이는 여전히 에디터의 한계인 한 줄당 4천자 제한을 적용받게 될 것이다. 구문(syntax) 상의 변경은 없다. 그냥 255자보다 긴 리터럴 문자열을 사용하면 된다.

spacer.png
위: 에디터에서 600자가 넘는 문자열 리터럴을 사용하고 있다.

여러 줄 문자열 (Multiline Strings)

위 첫 번째 확장 보다 더 많이 사용될 것은, 지금 설명할 문자열 리터럴에 대한 두 번째 확장이다. 델파이 12에서는 리터럴 문자열에 여러 줄 문자열을 사용할 수 있도록 지원할 것이다. 이 경우에는, 구문(syntax) 변경이 필요했다. 여러 줄 문자열은 따옴표 세개(''')로 구분한다.

여러 줄 문자열에 대한 구문 규칙이 몇 가지 더 있다:

  • 시작은 따옴표 세개(''')와 새 줄을 사용한다 (따라서 따옴표 세개 바로 뒤에 텍스트가 올 수 없으며 줄을 바꿔야 한다).
  • 그 뒤의 여러 줄로 된 소스 코드는 하나의 문자열 리터럴로 인식된다 (줄 수의 제한은 없음).
  • 끝은 따옴표 세개(''')을 사용하는데, 그 줄에서 이 기호 앞에는 텍스트가 전혀 없어야 한다.

크게 달라진 점은, 예전과 비교하자면, + 기호를 사용하여 여러 줄을 한 줄 문자열로 연결할 필요가 없다는 것이다. 다음 예시를 보자:

spacer.png
위: 편집기에서 여러 줄 문자열 리터럴을 사용하고 있다.

지금 사용해보고 싶은가?

이 기능들은 현재 Yukon 베타 버전에서 활성화되어 있다. 업데이트 서브스크립션을 유지 중인 고객은 이 베타를 사용할 수 있다. 대상이 되는데, 초대장을 받지 못한 경우에는,  "델파이 Beta(베타) 테스트 중인 버전인 Yukon을 사용해 보고 싶습니다. 이용 절차를 알려 주세요"에 답변된 안내에 따라 초대장을 요청할 수 있다.

업데이트 서브스크립션을 유지하고 있지 않다면, 새 라이선스를 구입하거나 데브기어에 문의하여 라이선스를 구입한 후 베타 버전에 참여할 수 있다.

이 글은 RAD 스튜디오 소프트웨어의 출시 전 버전을 기반으로 작성되었으며 엠바카데로의 허가를 받고 작성되었다. 사전 공개 되는 기능이 반드시 GA (정식 출시, General Availability)에 포함된다는 보장은 없다.

 

이 댓글 링크
다른 사이트에 공유하기

  • 2 months later...

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.