짧은인사, 하루의 사건, 나의 행동
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
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
PostgreSQL
The world's most advanced open source database.
www.postgresql.org
'TIL' 카테고리의 다른 글
TIL_20241009 Rx를 곁들인.. (0) | 2024.10.09 |
---|---|
TIL_20240119 iOS)CoreData로 부숴지기.. CRUD (0) | 2024.01.19 |
TIL_20240116 iOS에서 데이터를 저장하는 방법 (0) | 2024.01.16 |
TIL_20240110 Swift_AppSandbox, NSCoder (0) | 2024.01.10 |
TIL_20240109 Swift_SingletonPattern (0) | 2024.01.09 |