CoreML (3)
Vision Framework 시작하기 Vision framework는 컴퓨터 비전 작업에 특화되어 있다. 정지 이미지에서의 얼굴 추적, 얼굴 감지, 텍스트 감지, 모양 감지, 바코드 감지 등을 포함한다. 이 섹션에서는 몇 가지 iOS 앱을 만들어보면서 이 기능들을 직접 살펴본다. 이미지에서 사각형 영역을 감지하는 rectangle detec...
Vision Framework 시작하기 Vision framework는 컴퓨터 비전 작업에 특화되어 있다. 정지 이미지에서의 얼굴 추적, 얼굴 감지, 텍스트 감지, 모양 감지, 바코드 감지 등을 포함한다. 이 섹션에서는 몇 가지 iOS 앱을 만들어보면서 이 기능들을 직접 살펴본다. 이미지에서 사각형 영역을 감지하는 rectangle detec...
Natural Language Framework로 언어 감지하기 Natural Language framework는 텍스트를 자연스럽게 분석하는 기능을 제공한다. Hidden Markov Model이나 word embedding, deep neural network 같은 개념을 몰라도, 이런 자연어 처리 기능을 앱에 그대로 가져다 쓸 수 있다. 이 ...
Machine Learning이란 머신러닝은 새로운 개념이 아니다. 1959년 인공지능 초기 선구자인 Arthur Samuel이 처음 소개한 용어로, “컴퓨터가 명시적으로 프로그래밍되지 않고도 학습할 수 있는 능력을 부여하는 학문 분야”라고 정의했다. 계속 코드를 다시 써줘서가 아니라, 경험을 통해 스스로 작업을 더 잘하게 되는 것을 학습이라고 본 ...
지난 글에서 소켓이 뭔지 짚고, 브라우저에서 열 채팅 화면까지 만들어뒀다. 연결 버튼을 누르면 빨간 불이 켜지는 상태였다. 서버에 WebSocket 경로가 없으니 당연한 결과였고, 이번 글에서 그걸 만든다. 목표는 하나다. 브라우저 탭 두 개를 띄워서, 한쪽에서 보낸 글이 다른 쪽에 뜨게 하는 것. 패키지 이름과 모듈 이름이 다르다 WebSo...
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 문법...