본문 바로가기
Server/Vapor - ServerSide

Vapor ) Vapor - Swift의 ServerSide 언어

by 후르륵짭짭 2020. 10. 8.
728x90
반응형

안녕하세요 후르륵짭짭 입니다.

오늘은 Swift 언어로 서버를 개발 할 수 있도록 하는 Vapor에 대해 알아가볼려고 합니다.

일단 제가 Vapor를 공부하게 된 계기는,,, 불편해서 입니다.

평소에 Node.JS로 서버를 구축했는데, JavaScript라는 다른 언어를 사용해서 불편했고

그래서 결국 FireBase를 사용했습니다.

그러다가 운이 좋게 Vapor라는 것을 알게 됐고, 계속 해야지, 해야지 하다가 드디어 하게 됐습니다.

 

** Vapor의 장점 **

아직 제가 Vapor로 많은 것을 해본 것은 아닙니다.

그런데, 짧게 경험을 해보고 나서 느낀 장점들이 있습니다.

1. Swift언어로 서버를 개발하는 것 입니다.

- Swift로 IOS도 개발하고 서버도 개발하고, 앱등이인 저로서는 너무 큰 장점 입니다.

2. Xcode로 디버깅을 지원한다.

- JAVA가 아니라면 Python 이나 JavaScript로 개발해야하는데, 이들을 단독으로 지원해주는 IDE는 없다고 생각합니다.

- 하지만 Vapor는 익숙한 Xcode로 디버깅을 할 수 있습니다.

3. Node.JS 만큼 서버 개발이 간단하다.

- 아직 깊게 사용해본 것은 아니지만 Node.JS 만큼 라우터 개발이 간단하고 쉬웠습니다.

 

이렇게 제가 생각하는 Vapor의 장점입니다. 

위에도 말했듯이, 아직 Vapor를 사용해본 것이 3일 밖에 안되기 때문에 깊게 잘은 모르지만, 초반에 느낀 저의 장점 이였습니다.

 

** Vapor 설치 방법 **

이제 Vapor의 장점을 설명했으니, 이제 설치 방법을 알려드리겠습니다.

(설치 하면서 많은 오류를 경험 했기 때문에, 꼭 큰 도움이 됐으면 좋겠습니다.)

 

일단 Vapor를 설치하기 위해서는 HomeBrew를 설치해야합니다.

저는 딱히 HomeBrew를 사용한 적이 없었는데, 이번에 처음으로 설치하게 됐습니다.

brew.sh/index_ko

 

Homebrew

The Missing Package Manager for macOS (or Linux).

brew.sh

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

터미널에 위 코드를 복붙 하고 엔터 누르면 알아서 설치가 됩니다.

( 위의 사진 처럼 진행이 되는데, Xcode가 깔려 있으면 느리니깐, 오래 걸린다고 걱정하지 마시고 기다려주세요 )

 

이렇게 설치가 완료 되면 Vapor를 설치하면 됩니다.

docs.vapor.codes/3.0/install/macos/

 

macOS - Vapor Docs

Install on macOS To use Vapor on macOS, you just need to have Xcode 9.3 or greater installed. Install Xcode Install Xcode 9.3 or greater from the Mac App Store. Warning After Xcode has been downloaded, you must open it to finish the installation. This may

docs.vapor.codes

여기 사이트는 Vapor 공식 다큐먼트 입니다. 

저도 여길 보면서 공부해 갈 생각 인데, 설치 방법을 보면 

brew tap vapor/tap
brew install vapor/tap/vapor

이렇게 치면 됩니다.

그런데 저는 두번 째 brew install vapor/tap/vapor 를 했는데,, 계속 오류가 뜨는 겁니다.

vapor --help

를 해도 알 수 없는 명령어라 나오고,,, 쩝 ㅠㅠ

그래서 오류를 열심히 찾아 봤습니다.

github.com/onevcat/FengNiao/issues/49

 

xcrun: error: unable to find utility "xctest", not a developer tool or in PATH · Issue #49 · onevcat/FengNiao

environment:macOS Catalina 10.15,Xcode 11.1 (11A1027) error: terminated(72): xcrun --sdk macosx --find xctest output: xcrun: error: unable to find utility "xctest", not a developer tool o...

github.com

여기를 통해서 해결 하게 됐는데요. 이 오류가 발생하는 이유는 Xcode 설치 경로 설정이 안되어 있어서 그런것 같습니다.

따라서 아래 사진 처럼 명령어를 적어주면 끝~~!!

이렇게 하면 설치가 완료 된 겁니다!!! 축하합니다

 

이제 Vapor 프로젝트를 생성해보도록 하겠습니다.

이제 아래 처럼 코드를 적어주면 

vapor new Hello

이런식으로 Fluent를 사용 할거냐고 물어보는데, 일단 저는 잘 몰라서 다 YES 했습니다 ㅎㅎㅎ

 

그러면 이제 이렇게 Vapor 프로젝트가 생성 된 겁니다!!!

그럼 이제 위에서 시킨 대로 cd "Hello_Vapor (프로젝트 명)"으로 이동하고 vapor xcode를 해주면 Xcode 프로젝트가 생성 됩니다.

 

그리고 Xcode에서 프로젝트 run 을 해주면 

이렇게 Server starting on 로컬호스트:8080 이라고 나옵니다!

그리고 웹 사이트를 키고 나서 localhost:8080/hello 를 치면 

이렇게 성공적으로 웹사이트가 켜진 것을 확인 할 수 있습니다!!

 

혹시,, Address already in use (errno: 48) 이런게 나온 다는 것은 

현재 동일 PID를 사용 하고 있다는 것을 의미해서 제거 해줘야합니다.

stackoverflow.com/questions/53298296/vapor-address-already-in-use-errno-98

 

vapor: Address already in use (errno: 98)

I deployed my vapor project to Ubuntu. And made the configuration of supervisor and Nginx. When I invoke my server. first call is success but When I try second call I get 502 bad gateway error from

stackoverflow.com

여기에 가면 자세한 해결 방법이 있습니다.

$ sudo lsof -i :8080

을 적어서 현재 사용중인 PID 숫자를 확인하고

$ kill {PID of the process}

그 PID를 삭제 해주면 됩니다!!!

참 간단하죠??? ㅎㅎㅎㅎ

 

다음에는 Vapor 사용 방법에 대해 다뤄 보도록 하겠습니다 

감사합니다~~!!

 

소스 코드 : github.com/HururuekChapChap/Xcode_TestProj/blob/master/Vapor/Hello_Vapor/Sources/App/routes.swift

728x90
반응형

댓글