하지마이씌

https://simth999wrld.tistory.com/82

위 게시물 이후 3개월 후 군여 훠훠 ㅋ

저는 잘 살아있습니다 아니 죽어있나..? 아무튼 새해 복 다들 많이 받으시길 바랍니다! 누가읽을진 모르겠지만..(매크로 쳐내)

개발을 공부하고 있냐구 말하신다면... 그럼요 요즘 잘 진행하고 있는 것 같습니 다? 

iOS에 대해 조금씩 공부하면서 요즘은 플러터도 조금씩 맛보는 중입니다요~ 예제코드 돌려보면서 이런저런 앱들 만들어 보는즁..

 

이번년도엔 취직을 할 수 있을까여? 

     ㄴ 몰루?

     ㄴ ㅋㅋ 빨리하셈;;

     ㄴ (작성자) 아 가능;;!!

 

제가 조그만한 개인 프로젝트를 진행중입니다. 메트로놈 앱입니다. 제가 밴드를 하고있어서 메트로놈을 사용하는데 조금씩 불편한곳이 있더라구요?? 제 입맛에 따라 만들어 보고 싶어서 만들고있습니다.

여기서 모두 같은 bpm을 동시간대에 같이 보는 기능이 있어숴!! Swift로 서버를 만들 수 있는 Vapor로 프로젝트를 진행하는 중입니다요.

이 이야기는 vapor에대한 내용..

 

배운점

Vapor?

vapor는 Swift로 작성된 서버 사이드 웹 프레임워크로 백엔드, 웹 앱 Api 및 HTTP 서버를 구출할 수 있게 됩니다!

 

설치방법

https://docs.vapor.codes/ko/install/macos/

설치방법은 위 링크 참조 해서 따라하셔용~

 

프로젝트 생성

vapor가 성공적으로 설치가 되었다면 밑의 명령으로 새로운 프로젝트를 생성할 수 있습니다~

vapor new 프로젝트이름 -n

 

이후 프로젝트 이름으로된 폴더에 이동해

swift run

의 명령어로 vapor를 실행할 수 있습니다.

 

폴더구조

├── Public
├── Sources
│ ├── App
│ │ ├── Controllers
│ │ ├── Migrations
│ │ ├── Models
│ │ ├── configure.swift
│ │ ├── entrypoint.swift
│ │ └── routes.swift
├── Tests
│ └── AppTests
└── Package.swift

 

크아악 폴더구조는 링크 에 들어가면 아주 친절하게 정리가 되어있지만! 저도 공부를 해야하니 조금 끄적여 보겠습니다.

 

Public

정적 파일을 저장하는 폴더.

일반적으로 이미지, 스타일시트, 브라우저 스크립트 등이 포함됩니다.

FileMiddleware가 활성화 되면 자동으로 서빙됨.

Tests

XCTest 기반의 단위 테스트 코드가 위치하는 폴더

Sources

프로젝트의 모든 Swift 소스파일이 들어있음.

최상위 폴더인 App은 SPM manifest에 선언된 대로 모듈을 반영함

Sources/App

모든 애플리케이션의 로직이 있는곳

Sources/App/Controller

애플리케이션의 로직을 그룹화 할수 있는 곳.

대부분의 컨드롤러는 요청을 수락하고 응답을 반환하는 많은 함수가 있음.

Sources/App/DTOs

링크

DTOs는 Data Transper Objects라는 뜻

데이터 전송 및 변환을 명확하고 안전하게 관리하기 위해 있다고해.

DTO는 클라이언트와 서버 간 데이터를 주고받을 때 사용되는 객체를 말해

Sources/App/Migrations

Fluent 데이터 베이스 마이그레이션 파일들이 위치

데이터베이스 스키마 변경사항을 관리

테이블 생성, 수정등의 마이그레이션 정의

Sources/App/Models

데이터 구조를 정의하는 파일이 위치.

Content 프로토콜을 준수하는 구조체가 위치함

Content 프로토콜
-> Json 자동 변환 지원
-> 요청, 응답 핸들링 간소화 : 클라이언트가 보낸 JSON 데이터를 구조체로 쉽게 받을 수 있음.
-> 다양한 데이터 포멧 지원
-> validatable를 사용하여 데이터의 유효성을 검증할 수 있음.

따라서
Vapor에서 데이터 모델을 HTTP 요청/응답 처리에 쉽게 사용할 수 있도록 해주는 핵심 기능입니다. 이를 통해 데이터 변환, 유효성 검증, 다양한 포맷 지원 등 많은 작업이 간소화되고, 코드의 유지보수성이 높아집니다.

 

Sources/App/configure.swift

이파일엔 configure(_:) 함수가 포함되어 있음.

앱의 설정을 담당

앱 구동에 필요한 초기 설정을 수행

데이터베이스, 미들웨어, 라우터등 서비스 등록

Sources/App/entrypoint.swift

@main 이 있는 파일

앱을 설정하고 실행하는 역할

configure.swift를 호출하여 앱을 구성

Sources/App/routes.swift

API 엔드포인트를 정의하는 파일

모든 라우트 설정이 이루어지는곳

HTTP 요청에 대한 핸들러를 정의

 

생각과 감정

간단하게 vapor를 알아보았습니다~ 물론 다만들어진건 아니구요 아직 조금씩 공부하면서 만드는중입니더~

아 그냥 파이어베이스나 슈퍼베이스 쓸걸 ㅋㅋ

 

https://github.com/jjwon2149/Metronome/tree/main/Server/MetronomeServer

 

Metronome/Server/MetronomeServer at main · jjwon2149/Metronome

합주를 위한 앱. Contribute to jjwon2149/Metronome development by creating an account on GitHub.

github.com

https://docs.vapor.codes/

 

Vapor Docs

Welcome Welcome to the Vapor Documentation! Vapor is a web framework for Swift, allowing you to write backends, web apps APIs and HTTP servers in Swift. Vapor is written in Swift, which is a modern, powerful and safe language providing a number of benefits

docs.vapor.codes

https://www.postgresql.org/

 

PostgreSQL

The world's most advanced open source database.

www.postgresql.org

 

 

 

+ Recent posts