Out of Bedlam Swiftish

Terms

우리가 주로 접하는 프로그래밍언어가 대부분 영어권에서 만들어지고 해설서와 관련 자료들이 모두 영어로 만들어져 있는 관계로 한글로 풀어서 설명하는데 많은 한계가 있는 것이 현실입니다. 어떤 영어 용어는 이미 오래전부터 우리말로 번역되어 사용되어 프로그래머들 사이에서 편하게 쓸수 있는 우리말이 있는 경우도 있고 요즘 새로 만들어진 개념의 단어의 경우에는 우리말로 허술하게 번역하면 오히려 이해를 방해하게 되는 경우도 많이 있습니다.

스위프트는 비교적 최신의 프로그래밍 언어이고 아직 한글로된 자료가 많지 않은 관계로 새로운 개념과 용어를 우리말로 설명하는데 여러가지 고민이 많이 있었습니다.

스위프트관련 자료를 찾고 정리하는 과정에서 만났던 한글 표기법과 용어선택에 관한 고민들을 같이 나누고 기록으로 남기고 싶어 별도로 기록해 보았습니다.

영어 단어 자체로 설명이 용이한 용어들은 외래어 한글 표기법에 따라 기록하려고 노력하였습니다.

A

  • Annotation

    어노테이션

  • Array, Subarray

    배열, 부분배열

  • Assert

    어썰트

  • Assignment, Assignment operator

    대입, 대입 연산자

  • Associated value

    연관값 (예: associated value in an enum 열거형의 연관값)

B

  • Best Practice

    모범 사례

  • Block

    블럭

C

  • Case

    케이스 (열거형의 케이스)

  • Closure

    클로저

  • Collection

    컬렉션

  • Curried Function, Currying

    커리 함수는 다수의 인수를 지닌 하나의 함수를 하나의 인수를 가진 다수의 함수로 변환한 것입니다. 이와 같은 함수 작성 방식을 개발한 헤스켈 커리 (Haskell Curry)의 이름을 따서 커링(Currying)이라고 합니다.

D

  • Default

    디폴트

  • Deprecated

    디프리케이트, 지원 중단 예정 (상태)

  • Dictionary

    딕셔너리

  • Dot notation

    점표기법

E

  • Element

    엘리먼트 (구성요소, 요소)

  • Encapsulation

    인캡슐레이션 “정보 은닉”, “캡슐화”로 번역할 수 있어 표기에 대해 여전히 고민스럽습니다.

F

G

  • Generic

    제네릭 발음을 그대로 따른다면 “저네릭”이 맞을 듯합니다만 다른 도서를 참고하여 제네릭으로 표기하였습니다.

I

  • Instance

    인스턴스

  • Iterate

    반복

L

  • Life Cycle

    생애주기

  • Literal

    리터럴

  • Loop

    루프 (순환문)

M

  • Method

    메서드 한빛미디어: 메서드, 길벗출판사: 메소드, 지식백과: 메쏘드 으로 표기하고 있습니다. 국립국어원에 문의해본 결과 “메서드”을 추천하였습니다.

  • Modifier

    변경자, 모디파이어

  • Mutable, Immutable

    가변의, 불변의

  • Mutating Methods

    변경 메서드

O

  • Observer

    옵져버, Property Observer 프로퍼티 옵져버

  • Overloading

    오버로딩

  • Overriding

    오버라이딩

  • Optional

    옵셔널

P

  • Parameter

    파라미터

  • Placeholder

    플레이스홀더

  • Property

    프로퍼티 Stored Property 저장 프로퍼티, Computed Property 연산 프로퍼티

  • Practical

    실용적인

R

  • Range Operator

    범위 연산자 Closed Range Operator 닫힌 범위 연산자, Half-Open Range Operator 반-개방 범위 연산자

S

  • Scope

    변수의 유효 범위 “범위”는 스위프트의 Range와 겹치므로 “유효 범위”로 번역합니다. 유효 범위란 어떤 것이 다른 대상에게 보이는 영역을 의미합니다.

  • Serialization

    직렬화

  • Statement

    명령문

  • Subscript

    서브스크립트 우리말로 “아래 첨자” 또는 “첨자”가 적절할 수도 있겠으나 문장사이에 사용되면 오히려 직관적인 이해를 방해하는 경우가 있어 “서브스크립트”로 표기하였습니다.

  • Subarray

    부분배열

T

  • Thread-safe

    쓰레드 세이프

  • Ternary Conditional Operation

    삼원 조건 연산자, ? : 로 표현됩니다.

  • Tuple

    튜플

  • Type

    자료형/형/타입

  • Type checking

    형검사 (?)

  • Traverse

    순환탐색


기타

  • Class, Structure, Enumerator

    다른 한글 표기를 본 적이 없었기 때문에 “Class”는 “클래스”로 결정하는데 별다른 고민이 없었습니다. “Structure”의 경우에는 “스트럭쳐”와 “구조체” 두 가지 선택이 가능했습니다. C/C++에 관련된 한글 도서에서는 대부분 “구조체”로 표현하고 있으므로 “스트럭쳐”보다는 “구조체”가 적절해 보였습니다. 같은 이유로 “Enumerator”의 경우에는 C언어의 용어를 그대로 빌려와서 “열거형”을 정하였습니다.

    이렇게 정해 놓고 보니, 스위프트의 대표적인 세 가지 정의 가능한 자료형인 class, structure, enumerator가 “클래스”, “구조체”, “열거형”으로 표기되었습니다. 아무래도 “클래스” 때문인지 통일성이 떨어지는 것이 계속 눈에 거슬립니다.

    클래스는 다른 선택이 없다고 하더라도 구조형-열거형으로 또는 구조체-열거자로 표기하는게 더 맞을 수도 있겠다는 고민이 여전히 남아있습니다.

  • Array, Set, Dictionary

    “Array”와 “Set”은 “배열”과 “집합”으로 번역된 용어를 사용하면서 “Dictionary”는 발음에 따른 표기법인 “딕셔너리”로 표기하였습니다. “사전형”으로 지칭한 자료도 보았습니다만 “딕셔너리가” 좀 더 직관적으로 이해가될 것으로 판단하였습니다.

  • String, Character

    스트링, 문자열, “String” 문자, “Character”

  • Object

    “오브젝트”를 사용한 책들도 많고 “객체”라고 쓴 책도 있으며 두 단어를 모두 섞어 사용하는 자료들도 많이 있습니다. 하지만 OOP를 “객체지향 프로그래밍”이라고 하지 “오브젝트 오리엔티드 프로그래밍” 또는 “오브젝트지향 프로그래밍”이라고 쓴 글은 보지 못한 것 같습니다. 이 책에서는 “객체”로 통일하였습니다.

  • Initializer, Deinitializer

    생성자, 소멸자

  • Designated Initializer

    지정 생성자

  • Convenience Initializer

    편리 생성자