Perfect 설치해보기
지난 번에 우분투에 스위프트를 설치해보았는데요, 이번엔 우분투에서 퍼펙트를 설치해볼 요량입니다.
맥의 터미널에서도 동일(하거나 유사)한 명령어로 진행이 가능하니 맥에서 진행하셔도 무방합니다 🙂
참고
2017년 5월 현재 Swift 3 / Perfect 최신버전 2.0.x 환경에서 진행함을 알려드립니다.
리눅스 패키지 설치
우분투에서 Perfect를 사용하려면 OpenSSL, libssl-dev, uuid-dev가 필요합니다. 설치해줍니다. (맥에서는 설치할 필요가 없습니다.)
$ sudo apt-get install openssl libssl-dev uuid-dev
프로젝트 폴더 생성
리눅스 패키지 설치를 완료하면 Perfect 프로젝트를 시작하고 싶은 위치에 프로젝트 폴더를 생성합니다.
$ mkdir FirstPerfect
그리고 그 폴더 안으로 이동해주세요.
$ cd FirstPerfect
Perfect 패키지 설치
Swift 3.0 이상부터는 Swift Package Manager를 통해 여러 패키지(라이브러리라고 생각하시면 편할 듯 합니다)의 의존성관리를 할 수 있습니다. 스위프트 패키지 매니저를 사용하기 위해 초기화 해줍니다. --type excutable
옵션은 빌드 후 실행가능한 실행파일을 생성해달라는 옵션입니다.
$ swift package init --type executable
swift package init
명령어를 실행하면 폴더에 Package.swift 파일도 함께 생성이 되었을텐데요, Package.swift 파일을 열어서 Perfect 패키지 의존성을 추가합니다.
> vi Package.swift
Package.swift 파일에 아래 코드를 작성합니다.
import PackageDescription
let package = Package(
name: "FirstPerfect",
dependencies: [
.Package(url: "https://github.com/PerfectlySoft/Perfect-HTTPServer.git", majorVersion: 2)
]
)
저장하고 나와서 패키지를 설치합니다.
$ swift package update
만약에 맥에서 Xcode 프로젝트를 생성해주고 싶다면
$ swift package generate-xcodeproj
해주시면 해당 폴더에 Xcode 프로젝트가 생성됩니다. 그러면 이후 코딩을 Xcode 프로젝트로 진행할 수 있습니다.
Perfect 프로젝트 실행
프로젝트 폴더의 Source/main.swift 파일을 열어봅니다.
$ vi Source/main.swift
코드를 입력해봅니다.
import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
let server = HTTPServer()
server.serverPort = 8080
do {
try server.start()
} catch PerfectError.networkError(let error, let message) {
Log.error(message: "Error: \(error), \(message)")
}
저장을 하시구요, 이제 빌드를 하고 실행을 해볼 차례입니다.
swift build
./build/debug/FirstPerfect
만약 Xcode를 사용하고 있다면 타겟을 아래와 같이 변경 후 실행해 보세요.
실행하면 아래와 같은 정보가 출력됩니다.
[INFO] Starting HTTP server on 0.0.0.0:8080
웹 브라우저에서 8080 포트로 접속해보시면 아래와 같은 메세지를 볼 수 있습니다.
서버 애플리케이션이 정상적으로 동작하고 있는 것입니다!
이제 처음으로 실행해 보았으니 이것저것 한 번 해봐야겠지요?
다음 번에는 간단한 라우팅을 해볼게요~ 다음에 또 만나요! 😀
참고문서
PerfectDocs - Building with Swift Package Manager
by yagom
facebook : https://www.facebook.com/yagompage
facebook group : https://www.facebook.com/groups/yagom
p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.
RSS Feed 받기