-
[Server/Swift] Vapor 디렉토리 구조/Vapor 2024. 8. 16. 12:21반응형
디렉토리 구조
. ├── Public ├── Sources │ ├── App │ │ ├── Controllers │ │ ├── Migrations │ │ ├── Models │ │ ├── configure.swift │ │ ├── entrypoint.swift │ │ └── routes.swift │ ├── Tests │ └── AppTests └── Package.swift
Public
이 폴더에는 FileMiddleware가 활성화된 경우 앱에서 제공할 공개 파일이 포함되어 있습니다. 이것은 보통 이미지, 스타일 시트 및 브라우저 스크립트입니다. 예를 들어, localhost:8080/favicon.ico에 대한 요청은 Public/favicon.ico가 존재하는지 확인하고 반환합니다.
Vapor가 공개 파일을 제공하기 전에 configure.swift 파일에서 FileMiddleware를 활성화해야 합니다.
// Public/ 디렉토리에서 파일을 제공합니다. let fileMiddleware = FileMiddleware( publicDirectory: app.directory.publicDirectory ) app.middleware.use(fileMiddleware)
Sources
이 폴더에는 프로젝트의 모든 Swift 소스 파일이 포함되어 있습니다. 최상위 폴더인 앱은 SwiftPM 매니페스트에 선언된 대로 패키지의 모듈을 반영합니다.
App
앱을 구성하는 데 필요한 코드를 포함합니다.
Controller
로직을 그룹화하는 컨트롤러가 위치합니다. 대부분의 컨트롤러는 요청을 수락하고 일종의 응답을 반환하는 많은 기능을 가지고 있다.
Migrations
마이그레이션 폴더는 Fluent를 사용하는 경우 데이터베이스 마이그레이션이 가는 곳입니다.
Model
모델 폴더는 Content 구조체 또는 Fluent 모델을 저장하기에 좋은 장소입니다.
configure.swift
이 파일에는 configure(_:) 함수가 포함되어 있습니다. 이 방법은 새로 생성된 Application을 구성하기 위해 entrypoint.swift에 의해 호출됩니다. 이곳은 경로, 데이터베이스, 공급자 등과 같은 서비스를 등록해야 하는 곳입니다.
entrypoint.swift
이 파일에는 Vapor 애플리케이션을 설정, 구성 및 실행하는 애플리케이션의 @main 진입점이 포함되어 있습니다.
routes.swift
이 파일에는 routes(_:)기능이 포함되어 있습니다. 이 방법은 Application에 대한 경로를 등록하기 위해 configure(_:)가 끝날 때 호출됩니다.
Tests
Soures 폴더의 실행 불가능한 각 모듈은 Tests에 해당 폴더를 가질 수 있습니다. 여기에는 패키지를 테스트하기 위해 XCTest 모듈에 구축된 코드가 포함되어 있습니다. 테스트는 명령줄에서 swift test 를 사용하거나 Xcode에서 ⌘+U를 눌러 실행할 수 있습니다.
AppTests
이 폴더에는 App 모듈의 코드에 대한 단위 테스트가 포함되어 있습니다.
Package.swift
마지막으로 SPM의 패키지 매니페스트입니다.
기본 동작 흐름 정리
1. @main 진입점으로 된 entrypoint의 main() 함수가 실행
2. configure.swift의 configure(_:) 호출
3. routes.swift의 routes(_:)
' > Vapor' 카테고리의 다른 글
[Server/Swift] Vapor - Xcode 사용시 Custom directory 지정 (0) 2024.08.14 [Server/Swift] Vapor 시작하기 (0) 2024.08.12