[스위프트]

1. 스위프트 기본 명명 규칙

모든 프로그래밍 언어가 그렇듯 프위프트 언어 자체에 명시도니 명명 규칙은 없다. 명명 규칙은 프레임워크나 코딩 환경 또는 협업 그룹마다 달라질 수 있다. 물론 언어에 따라서 권장하는 명명법이나 코딩 규칙이 있기도 하다.

코딩은 습관이라 나중에 교정하기 어려우니 처음부터 제대로 된 코딩 규칙 및 명명 규칙을 익히도록 노력하는 것이 좋다. 다음은 가이드라인 중에서 꼭 알아야 할 기본 명명 규칙이다.

  • 변수, 상수, 함수, 메서드, 타입 등의 이름은 유니코드에서 지원하는 어떤 문자(한글, 한자, 영문, 숫자, 이모티콘 등등)라도 사용할 수 있다. 다만 다음과 같은 예외 경우에는 사용할 수 없다.
    • 스위프트에서 미리 정한 예약어 또는 키워드
    • 해당 코드 범위 내에서 미리 사용되는 기존 이름과 동일한 이름
    • 연산자로 사용될 수 있는 기호(+, -, *, /)
    • 숫자로 시작하는 이름
    • 공백이 포함된 이름
  • 함수, 메서드, 인스턴스 이름은 첫 글자를 소문자로 사용하는 소문자 카멜케이스(Lower Camel Case)를 사용한다.
  • 클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이기 때문에 첫 글자를 대문자로 사용하는 대문자 카멜케이스를 사용한다.
  • 대소문자를 구별한다. 예를 들어 Var와 var를 다르게 인식한다.

[Tip] - 예약어와 키워드

예약어는 프로그래밍 언어에서 미리 사용하기로 약속한 단어로, 식별자로 사용할 수 없는 단어를 뜻한다. 키워드는 프로그래밍 언어 문법의 일부로, 특별한 의미가 있는 단어를 뜻한다. 스위프트의 키워드는 대부분 예약어이다. 일부 예약어의 경우에는 강세표(backquote, `)를 사용하여 이름으로 사용할 수 있다.


2. 콘솔 로그

프로그램에서 로그란 애플리케이션의 상태 또는 애플리케이션 내부 로직의 흐름을 관찰할 수 있도록 출력한 정보를 의미한다. 콘솔 로그는 디버깅 중 디버깅 콘솔에 보여줄 로그를 뜻한다. 스위프트에서는 print() 또는 dump() 함수를 사용하여 콘솔 로그를 출력할 수 있다.

2.2 print( )함수

스위프트에서 콘솔 로그를 남기는 용도로 print( ) 함수를 사용한다. print( ) 함수의 기본 원형은 public func print(items: Any…, separator: Strinmg = default, terminator: String = default)로 정의되어 있다. 기본적으로 print(”Hello”)와 같이 사용하면 디버깅 콘솔에서 “Hello”라는 로그를 확인할 수 있다. print( ) 함수는 로그를 출력한 뒤 줄바꿈을 해주기 위해 줄바꿈 문자( \n )를 자동으로 삽입해준다.

[Note - print( ) 와 dump( ) 함수]

스위프트 표준 라이브러리에는 print( ) 함수 외에도 dump( ) 라는 함수가 있다. print( ) 함수는 디버깅 콘솔에 간략한 정보를 출력해주는 반면, dump( ) 함수는 조금 더 자세한 정보를 출력해준다. print( ) 함수는 출력하려는 인스턴스의 description 프로퍼티에 해당하는 내용을 출력해주고, dump( ) 함수는 출력하려는 인스턴스의 자세한 내부 콘텐츠까지 출력해준다.

struct BasicInformation{
	let name: String
	var age: Int
}

var lhjInfo: BasicInformation = BasicInformation(name: "lhj", age: 24)

class Person{
	var height: Float = 0.0
	var weight: Float = 0.0
}

let lhj: Person = Person()
lhj.height = 174.4
lhj height = 84.5

pring(lhjInfo) //BasicInformation(name: "lhj", age: 24)
dump(lhjInfo)
/*
	▿ BasicInfomation
	- name: "lhj"
	- age: 24
*/

pring(lhj)  //Person

dump(lhj)
/*
	▿ Person #0
	- height: 174.4
	- weight: 78.5
*/

2.2.2 문자열 보간법

문자열 보간법은 변수 또는 상수 등의 값을 문자열 내에 나타내고 싶을 때 사용한다. 문자열 내에 \ (변수나 상수)의 형태로 표기하면 이를 문자열로 치환해서 넣는다. 문자열 보간법을 이용해 프로그래머가 원하는 문자열로 치환하려면 변수나 상수 타입을 CustomStringConvertible 프로토콜을 준수하는 ddescription 프로퍼티로 구현한다.

let name: String = "lhj"
print("My name is \(name)")

위의 실행 결과로 디버깅 콘솔에서 ‘My name is lhj’이라는 결과를 볼 수 있다.


2.3 주석

주석은 프로그램 소스 코드에 정보를 남기는 목적으로 사용한다. 주로 코드를 다시 봤을 때 필요한 중요 메모나 다른 프로그래머에게 설명하기 위한 메모 등을 주석으로 남긴다.

Xcode에는 말풍선의 형태로 레퍼런스 문서의 요약된 내용으 ㄹ보여주는 퀵헬프라는 기능이 있다. 코드를 작성하는 중에 레퍼런스 문서로 이동하지 않고도 ( 퀵헬프를 지원하는 ) 데이터 타입이나 메서드 드의 간단한 정보를 확인할 수 있는 아주 유용한 기능이다.

퀵헬프를 보려면 퀵헬프를 보기 원하는 항목 ( 변수, 상수, 함수, 메서드, 타입 등등 ) 위에 마수르 커서를 위치한 다음 키보드의 옵션키를 누른 상태로 클릭하면 된다. 마크업 문법에 맞춰 메서드나 변수, 클래스 등에 주석을 작성하면 퀵헬프로 다른 프로그래머가 해당 내용을 확인할 수 있다. 형식을 맞추는 일이 번거로운 수는 있으나 문서화에 큰 도움이 된다.

2.3.1 주석 남기기

스위프트에서는 여러 종류의 주석을 달 수 있다. 주석을 Xcode의 퀵헬프 기능을 통해 볼 수 있게 하려면 마크업 문법을 사용해서 작성하면 된다. 다음은 스위프트에서 사용할 수 있는 주석 종류이다.

1. 한 줄 주석

한줄 주석은 슬래시 두 개를 사용하여 나타낸다.

// 한 줄 주석은 이렇게 표현한다.

2. 여러 줄 주석

여러 줄 주석은 슬래시와 별표를 사용하여 나타낸다.

/* 
	여러 줄 주석을 시작할 때는 슬래시와 별표를 사용한다.
	이 줄의 앞에는 별다른 표시가 없지만 이 줄도 주석으로 인식한다.
	주석을 끝내고 싶을 때는 별표를 먼저 쓰면 된다.
*/

3. 중첩 주석

스위프트에서는 여러 줄 주석 안에 여러 줄 주석 또는 한 줄 주석을 넣는 중첩 주석을 지원한다.

/* 여러 줄 주석 안쪽에
/* 추가로 여러 줄 주석을 포함할 수 있으며
// 그안에 한줄 주석을 추가하여도 무방하다.
*/
	이부분도 주석처리 된다.
*/