Perfect 시작하기

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 받기   

댓글 남기기

Close