Hummingbird (6)
Docker로 로컬 배포 준비하기 이제 Railway에 배포하기 위한 준비 작업을 시작한다. 이 강의에선 Railway Github을 참고하는데, 내용을 보면 Docker로 Postgres와 앱을 함께 띄우는 방식을 쓴다. 로컬에서 먼저 Docker로 정상 동작을 확인한 뒤, 그 이미지를 Railway에 배포하는 순서로 진행한다. Docker...
Docker로 로컬 배포 준비하기 이제 Railway에 배포하기 위한 준비 작업을 시작한다. 이 강의에선 Railway Github을 참고하는데, 내용을 보면 Docker로 Postgres와 앱을 함께 띄우는 방식을 쓴다. 로컬에서 먼저 Docker로 정상 동작을 확인한 뒤, 그 이미지를 Railway에 배포하는 순서로 진행한다. Docker...
인증 시작하기: users 테이블 만들기 이번글에선 인증(authentication)을 다룬다. 인증을 하려면 사용자 정보(username, password)가 필요하고, 이걸 저장할 테이블이 있어야 하니 먼저 migration부터 작성한다. CreateUsersTable 작성하기 import FluentKit struct CreateUse...
ORM(Fluent) 시작하기 지금까지는 SQL을 직접 손으로 작성해서 database와 통신했는데, 이제부터는 ORM인 Fluent를 써서 SQL 생성과 실행을 대신 맡겨보도록한다. 프로젝트를 새로 만들때 위의 사진에서 Fluent를 설치하도록 했다. (다만 이렇게 설치할 경우 강의의 초기 프로젝트와 코드 구성이 상이하다.) 의존성 구성...
One-to-Many 관계 설정하기 이번엔 movie와 review의 관계를 다룬다. 하나의 movie가 여러 개의 review를 가질 수 있으니, 이건 one-to-many 관계다. Review 모델 만들기 Models.swift에 Review를 추가한다. struct Review { var id: UUID? let co...
MVC 패턴 적용하기 MVC는 UIKit 할 때 하도 많이 써서 익숙한 개념이지만, 백엔드에서는 Model, View, Controller가 각각 조금 다른 역할을 한다. Model은 데이터의 형태(dog가 있으면 name, age, breed, weight, height 같은 속성들), View는 클라이언트가 눈으로 보는 화면(웹이든 iOS든 뭐든...
Udemy에 흥미로운 강의가 있어서 수강하면서 과정을 기록해보려고 한다. Hummingbird는 Swift로 작성된 경량 REST API 프레임워크다. Vapor보다 가볍고 의존성이 적은 것이 특징이며, 라우팅부터 미들웨어, 인증, 데이터베이스 연동까지 백엔드 API 개발에 필요한 요소들을 지원한다. 무엇보다 iOS 개발자에게 익숙한 Swift 문법...
1.3.1을 배포하고 나서 지인에게 피드백을 받았다. 마커가 너무 많이 나왔다는 부분이다. 그리고 SINK RATE가 뜬 뒤에 속도를 다시 올려도 경고가 풀리기까지 한참 걸렸다고 한다. (실제로 이건 IIR 필터 계수 값을 조정하면서 나도 느꼈던 부분이었다) 이번 글은 이 두 가지를 AI와 대화하면서 좁혀나간 과정을 그대로 옮긴 것이다. 결론부터 말...
1.3을 배포하고 얼마 안 돼서 실제로 뛰다가 문제를 겪었다. 흐름은 이랬다. OVERSPEED(너무 빠름) 경고가 떠서 속도를 줄였더니 정상적으로 SINK RATE(너무 느림)로 바뀌었고, 다시 속도를 올렸는데 SINK RATE에서 안 돌아왔다. 화면에 뜨는 편차 숫자는 계속 커져서 나중엔 300초까지 갔고, 결국 앱이 강제 종료됐다. 배포한 지 ...
앞 글까지 오므리면 진짜 복사까지 되고, 복사가 안 될 때 원인도 구분되게 만들었다. 그 다음엔 계속 창을 띄워놓고 써야 하는 게 불편해서 백그라운드처럼 쓸 수 있게 바꿨고, 화웨이 원본 영상처럼 사진이 손에 빨려들어가는 느낌도 넣어봤다. 창 대신 메뉴바로 원래는 창 하나 띄워놓고 쓰는 평범한 맥 앱이었다. 이걸 메뉴바 아이콘으로 바꾸고, Do...
지난 글에서 오므리면 진짜 복사까지 되도록 만들었는데, 실제로 여러 번 써보니 “복사가 안 되는 것 같다”는 상황이 몇 가지 다른 이유로 겹쳐서 왔다. 원인을 하나씩 구분해서 정리했다. 어느 앱이 진짜 앞에 있었는지 확인하기 모니터를 여러 개 쓰다 보니, 화면에 사진 앱이 보이고 있어도 실제로 키보드 입력을 받는 앱은 다를 수 있다는 걸 알게 ...