← Lab
---
Vapor 시작하기
스터디2025.06.27
- Swift
- Xcode
- Codable
- Vapor
Vapor란?
- Vapor는 Swift로 작성된 오픈 소스 웹 프레임워크
- API, 웹사이트, 클라우드, 백엔드 서버를 쉽게 만들 수 있도록 도와줌.
→ Swift를 사용해 서버 및 RESTful API, 웹 앱과 같은 다양한 서버 측 기능 구현이 가능하다!
Vapor의 특징
- Swift 개발자를 위해 설계되어 있어 iOS 개발자가 익숙한 문법과 환경(예: Xcode 디버깅)을 그대로 사용하며 서버도 개발할 수 있다.
- 비동기 이벤트 기반 기술(Apple의 SwiftNIO)을 활용해 성능이 뛰어나고 현대적인 웹 개발 패러다임을 지원한다.
- 다양한 샘플 프로젝트와 공식 문서가 존재하고 커뮤니티가 활발하게 발전 중이다.
🤔 SwiftNIO란?
[번역] SwiftNIO Readme Conceptual Overview
📌 위 블로그 정리본
- SwiftNIO는 유지 관리 가능한 고성능 프로토콜 서버 및 클라이언트의 신속한 개발을 위한 크로스 플랫폼, 이벤트 드리븐, 네트워크 애플리케이션 프레임워크
- 기본적으로 Swift에서 고성능 네트워킹 어플리케이션을 구축하기 위한 도구
- SwiftNIO는
non-blocking-I/O를 광범위하게 사용한다. - SwiftNIO의 기본 아키텍처(기본 빌딩 블록은 8가지의 타입 객체)
- EventLoopGroup: 프로토콜
- EventLoop: 프로토콜
- Channel: 프로토콜
- ChannelHandler: 프로토콜
- Bootstrap: 몇가지 연관된 구조체
- ByteBuffer: 구조체
- EventLoopFuture: 제네릭 클래스
- EventLoopPromise: 제네릭 구조체
Vapor 설치 및 실행하기
# 2025년 11월 9일 기준
swift --version
# swift-driver version: 1.115.1
# Apple Swift version 6.0.3 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
# brew로 vapor 설치
brew install vapor
vapor --version
# toolbox: 19.2.0
# 프로젝트 생성 (-n 옵션 추가 시 프로젝트 생성 시 옵션 미적용으로 즉시 base born 프로젝트 생성)
vapor new vaporStudy -n
cd vaporStudy
code . # VSCode로 열기
open Package.swift # Xcode로 열기

Vapor Routing + JSON Response
Vapor - Routing + JSON Response
Vapor 로그인 구현 예제
Fluent란?
[Vapor] Swift로 서버 만들기 04 - Fluent 설치 및 개념 (Models, Field, Timestamp, Migration 등)
swift - Vapor, Fluent란? — happyytw
- Vapor에서 Fluent는 Swift의 ORM(Object Relational Mapping) 프레임워크
- Swift 객체와 관계형 데이터베이스의 테이블 구조를 자동으로 매핑해 주어 Swift 코드로 데이터베이스를 쉽게 다룰 수 있게 한다.
- Fluent를 사용하면 데이터베이스의 구조를 나타내는 모델을 Swift 클래스 형태로 정의할 수 있고, 이를 통해 CRUD(생성, 조회, 수정, 삭제) 작업을 SQL 문법 없이 Swift 코드로 수행할 수 있다.
→ ⭐ 이게 바로 ORM!
Fluent의 주요 특징
- 모델은 데이터베이스의 테이블과 대응하며, Codable을 준수하는 여러 필드를 가진다.
- 각 모델은 고유한 식별자(ID)를 가지며, @ID 프로퍼티 래퍼를 사용해 정의한다.
- 필드는 @Field와 같은 프로퍼티 래퍼로 표시하며, 데이터베이스 컬럼과 매핑된다.
- 자동으로 UUID 식별자를 생성하고 관리한다.
- 마이그레이션을 통해 데이터베이스 스키마를 업데이트한다.
- Vapor 프로젝트 생성 시 Fluent 사용 여부를 선택하여 패키지 의존성을 자동 추가할 수 있으며 PostgreSQL, MySQL, SQLite, MongoDB 등 여러 데이터베이스를 지원한다.
→ ⭐ Fluent는 Vapor 서버 애플리케이션에서 데이터베이스를 손쉽게 다루기 위한 Swift 친화적인 ORM 솔루션!