Swift

Swift는 모든 Apple 플랫폼을 위한 강력하고 직관적인 프로그래밍 언어입니다. 간결하면서도 표현력이 풍부한 구문과 최신 기능덕분에 사용하기가 간편합니다. Swift 코드는 안전하게 설계되었고 놀랄만큼 빠르게 실행되는 소프트웨어를 제작할 수 있습니다.

Swift 알아보기

표현력

표현력이 풍부하고 읽기 쉬운 구문을 갖춘 Swift를 통해 새로운 개발자도 핵심 프로그래밍 개념을 빠르게 이해할 수 있습니다. 또한 Develop in Swift 튜토리얼, Swift 코딩 클럽 그리고 Swift Playground와 같은 다양한 자료를 통해 그 어느 때보다 쉽게 Swift로 첫 프로그래밍을 시작할 수 있게 되었습니다.

Apple의 Swift 교육 리소스 더 알아보기


숙련된 개발자도 빠르게 뛰어들어 다른 프로그래밍 언어에서도 사용하는 편리하고 익숙한 최신 기능과 함께 Swift만의 강력한 기능 및 안전성까지 활용할 수 있습니다.

struct Player {
	var name: String
	var highScore: Int = 0
	var history: [Int] = []
	
	init(_ name: String) {
		self.name = name
		}
}

var player = Player("Tomas")

현대적이고 직관적인 구문으로 새 유형을 선언하고, 인스턴스 속성에 대한 기본값을 제공하며, 사용자 정의 초기화 프로그램을 정의합니다.

extension Player {
mutating func updateScore(_ newScore: Int) {
	history.append(newScore)
	if highScore < newScore {
		print("\(newScore)! A new high score for \(name)! 🎉")
		highScore = newScore
	}
}
}

player.updateScore(50)
// Prints "50! A new high score for Tomas! 🎉"
// player.highScore == 50

확장 프로그램을 사용하여 기존 타입에 기능성을 더하고, 맞춤형 문자열 보간으로 상용구 코드를 줄입니다.

let players = getPlayers()
// Sort players, with best high scores first
let ranked = players.sorted(by: { player1, player2 in
	player1.highScore > player2.highScore
})
// Create an array with only the players' names
let rankedNames = ranked.map { $0.name }
// ["Erin", "Rosana", "Tomas"]

간결한 클로저로 강력한 맞춤형 변환을 수행합니다.

extension Player: Codable, Equatable {}

import Foundation

let encoder = JSONEncoder()
try encoder.encode(player)
print(player)
// Prints "Player(name: "Tomas", highScore: 50, history: [50])"

자동화된 JSON 인코딩 및 디코딩과 같은 강력한 언어 기능을 활용하도록 맞춤형 타입을 빠르게 확장합니다.

안전성

Swift는 불안전한 코드의 전체 클래스를 제거합니다. 변수는 사용 전에 항상 초기화되고, 배열 및 정수의 오버플로를 확인하며, 메모리가 자동으로 관리되며, 컴파일 타임에 잠재적인 데이터 경합을 파악할 수 있습니다. 그뿐만 아니라 Swift는 특히 배열 및 딕셔너리와 같이 일반적으로 사용되는 값 타입을 최대한 활용합니다. 이는 해당 타입으로 사본을 만들 경우 다른 곳에서 수정되지 않는다는 것을 의미합니다.

또한 Swift는 코드에서 누락된 값을 처리하는 안전한 방법을 제공합니다. 선택 사항을 사용하면 값이 누락되었거나 nil일 수 있음을 명시적으로 선언할 수 있습니다. 그리고 if let, guard let, ?? 구문과 같은 도구를 사용하면, 반환하기 전에 안전하게 값을 확인할 수 있어 nil 값이 반환되어 발생하는 예기치 못한 오류나 크래시를 방지할 수 있습니다.

if let bestPlayer = players.highestScoringPlayer() {
	recordHolder = """
		The record holder is \(bestPlayer.name),\
		with a high score of \(bestPlayer.highScore)!
		"""
} else {
	recordHolder = "No games have been played yet."
}
print(recordHolder)
// The record holder is Erin, with a high score of 271!

let highestScore = players.highestScoringPlayer()?.highScore ?? 0
// highestScore == 271

바인딩 선택 사항, 체이닝 선택 사항 등의 기능과 nil 통합을 사용하면 선택 사항 값으로 안전하고 효율적으로 작업할 수 있습니다.

빠른 속도

Swift는 최초 개념 설정 시점부터 빠르게 동작하도록 만들어졌습니다. Swift 코드는 뛰어난 고성능 LLVM 컴파일러 기술을 사용하여 최신 하드웨어를 최대한 활용할 수 있도록 최적화된 기계어 코드로 변환됩니다. 또한 구문 및 표준 라이브러리는 손목에 착용한 시계에서든 서버 클러스터 전반에서든, 코드를 작성하는 가장 확실한 방법으로, 최고의 성능을 발휘하도록 조정되었습니다. Swift는 C++의 뒤를 잇는 최고의 언어입니다. 유형, 흐름 제어, 연산자와 같은 하위 수준 기본 요소가 포함되고 클래스, 프로토콜, 제네릭과 같은 객체 지향 기능도 제공됩니다.

상호 운용성

지금 바로 Swift를 사용하여 완전히 새로운 애플리케이션을 만들거나 Swift 코드 사용을 시작하여 앱에 새로운 기능을 구현할 수 있습니다. Swift 코드는 동일 프로젝트 내에서 Objective-C 및 C++ 코드와 나란히 존재하며 Objective-C 및 C++ API에 액세스할 수 있어 채택이 간편합니다.

C, C++, Swift를 안전하게 함께 사용하기

Swift-java 상호 운용성 프로젝트를 사용하면 Swift 코드를 Java 프로그램으로 직접 가져올 수 있으며, 그 반대의 경우도 마찬가지입니다. 즉, 자신의 속도에 맞춰 Swift를 도입하고 두 런타임 사이에서 상호 운용되는 안전하고 성능이 뛰어난 코드를 작성할 수 있습니다.

Swift 및 Java 상호운용성 살펴보기

다양한 환경에 적합

Swift는 임베디드 기기처럼 제한된 환경에서도 뛰어난 효율성을 자랑하며, 서버와 클라우드 인프라까지 확장 가능할 만큼 강력합니다.

더 살펴보기

Swift로 개발하기 위해 만들어진 프레임워크, 도구, 프로그램을 살펴보세요.

Swift는 오픈 소스 환경에서 개발됩니다. 오픈 소스 Swift 프로젝트와 커뮤니티에 대해 자세히 알아보려면 Swift.org를 방문하시기 바랍니다.