Swift/개념 & 응용

[Swift] Swift 코드 작성 스타일 가이드

유정주 2021. 8. 14. 00:10
반응형

안녕하세요.

 

본격적인 Swift 문법 공부 전에 Swift 코드 작성 스타일 가이드를 보고 왔습니다.

개발을 하면서 느낀 것은 가독성이 좋은 코드, clean code가 중요하다는 것이었죠.

 

저번 포스팅에서도 노마드 코더님의 깨끗한 코드 팁 영상을 보고 정리를 해보았는데요.

정리 후 바로 다음 날 적용을 해보았더니 가독성이 확연히 좋아지더군요.

Clean Code 포스팅 보러 가기

2021.08.02 - [개발,IT,코딩] - [유튜브 정리] 노마드 코더 Nomad Coders - 깨끗한 코드를 위한 5가지 팁

 

[유튜브 정리] 노마드 코더 Nomad Coders - 깨끗한 코드를 위한 5가지 팁

안녕하세요. 신입 개발자인 저는 깨끗한 코드를 작성하기 위해 노력하고 있습니다. 개인 기록용으로 "노마드 코더 Nomad Coders - 깨끗한 코드를 위한 5가지 팁"을 정리한 포스팅입니다. "노마드 코

jeong9216.tistory.com

 

Swift 공부를 시작하면서 토이 프로젝트를 진행하며 코드 스타일을 배우는 것도 좋지만

이번에는 초장부터 최대한 깨끗하게 코드를 작성하는 연습을 해보려고 합니다.

 

그럼 시작하겠습니다.


참고 자료

Swift 언어 가이드 문서

https://docs.swift.org/swift-book/LanguageGuide/TheBasics.html

 

The Basics — The Swift Programming Language (Swift 5.5)

The Basics Swift is a new programming language for iOS, macOS, watchOS, and tvOS app development. Nonetheless, many parts of Swift will be familiar from your experience of developing in C and Objective-C. Swift provides its own versions of all fundamental

docs.swift.org

Swift 언어 가이드 문서(한글)

https://icksw.tistory.com/144

 

The Swift Programming Language (한글) [Swift5.5 공식문서]

안녕하세요 Pingu입니다. Apple의 Swift 공식문서를 모두 읽고 정리한 내용입니다. 첫 정독후 정리했지만 꾸준히 다시 읽으며 수정하고 있습니다! 원문은 Apple Swift 공식문서에서 볼 수 있습니다. Swift

icksw.tistory.com

 

해당 포스팅은 Smile Han님의 유튜브 영상을 참고하며 작성하였습니다.

https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com


Namimg

가장 기본적인 명명 규칙입니다.

Swift는 Camel Case를 권장하고 있는데요.

Camel Case란 단어가 바뀔 때마다 해당 단어의 첫 글자를 대문자로 쓰는 방법입니다.

소문자와 대문자가 번갈아가면서 나오니 낙타의 등과 같이 생겨 Camel Case라는 이름이 생겼다고 하네요.

 

예시

camelCase / goodBlog / niceJob

 

Camel Case는 두 가지 방법으로 나뉘는데요.

1. Lower Camel Case : 소문자로 시작하는 방법. ex) lowerCamelCase

2. Upper Camel Case : 대문자로 시작하는 방법. ex) UpperCamelCase

 

변수, 메소드, 인스턴스 등은 lower camel case를 사용하고

클래스, 구조체, 프로토콜, 열거형 등은 upper camel case를 사용합니다.

 

Classes and Structures

속성, 변수, 상수 인수는 콜론 뒤에 공백을 넣습니다.

ex) x: Int, Circle: Shape

 

변수나 구조체를 정의할 때는 같은 역할을 하거나 비슷한 목적을 가진다면 같은 행에 정의를 하는 게 좋습니다.

쉽게 말해 카테고리 별로 묶는 것이 좋다는 의미로 한글로 예를 들면 아래와 같은 느낌입니다.

var 해산물, 장어, 고등어, 삼치
var 육류, 닭고기, 소고기, 돼지고기

 

Types

가능하다면 Swift의 네이티브형을 사용하는 것을 권장한다고 합니다.

Swift에서는 Objective-C의 형을 Bridge 해서 사용할 수 있는데요.

이는 꼭 필요한 상황에서만 사용하고 가급적 Swift의 네이티브형을 사용하는 것이 좋다고 하네요.

 

Constants

상수는 let으로, 변수는 var로 정의합니다.

상수로 사용이 가능하다면 var보다는 let으로 사용하는 게 좋다고 합니다.

아무래도 어떤 값인지 곧바로 알 수 있으니 그런 것 같습니다.

 

줄 바꿈

if-else, while, switch 등의 문법과 관련된 내용입니다.

 

1. 중괄호는 명령어와 같은 행에서 연다.

2. 줄 바꿈을 최소화한다.

 

제 언어 표현력이 좋지는 않아서 아래 예시를 통해 알아보는 게 좋을 것 같아요.

개발을 해보신 적이 있다면 아하! 하실 내용입니다.

 

좋은 예시

if user.isHappy {

} else {

}

 

안 좋은 예시

if user.isHappy 
{
	//something code
} 
else 
{
	//something code
}

 

 

Semicolons

Swift에서는 문장 뒤에 세미콜론(;)을 붙이는 것이 필수가 아닙니다.

따라서 세미콜론을 붙이지 않는 것을 권장하고는 있습니다만

코딩 습관, 들여 쓰기 편의성 등의 이유로 세미콜론을 붙이는 경우도 있다고 합니다.

 

예외로 Objective-C와 Swift를 변환하며 사용할 때는

Objective-C에서 세미콜론이 없으면 에러가 나기 때문에 꼭 붙여줘야 한다고 합니다.

 

Type Inference

Swift의 컴파일러는 변수와 상수의 타입 추론이 가능합니다.

개발자가 직접 타입을 명시하지 않아도 되는 것이지요.

물론 직접 명시를 할 수도 있으나 대부분의 경우 직접 명시는 필요가 없으니 타입 추론을 이용하는 것이 좋습니다.

 

Control Flow

for loop는 for-condition-increment 구문과 for-in 구문으로 나뉘는데요.

Swift에서는 for-in 구문을 권장한다고 합니다.

Language

미국식 영어와 영국식 영어처럼 철자가 다른 경우가 있습니다.

이럴 때 Apple의 API와 일치하기 위해 미국식 영어 철자를 사용하는 게 좋다고 합니다.

 


지금까지 Swift 코드 작성 스타일과 권장 문법에 대해 알아보았는데요.

일부를 제외하면 절대적인 것이 아닌 권장 사항이라는 것을 말씀드리고 싶습니다.

그래도 저는 최대한 이 권장사항에 맞춰 iOS 공부를 하려고 합니다.

 

감사합니다!


아직은 초보 개발자입니다.

더 효율적인 코드 훈수 환영합니다!

공감 댓글 부탁드립니다.

반응형