머신러닝의 학습 방법은 크게 지도 학습(supervised)과 비지도 학습(unsupervised)으로 나눌 수 있다. 지도 학습이란 라벨링이 된 데이터를 학습시키는 것을 의미하며, 비지도 학습은 라벨링이 되지 않은 데이터를 학습시키는 것이다. 이때, 라벨링이란 트레이닝 데이터에 정답이 표시된 것을 의미하며, 정답 부분을 가리켜 타깃 데이터라고 한다. 또한 타깃의 형태에 따라 지도 학습은 세부적으로 두 가지 종류로 나타낼 수 있다. 타깃이 데이터를 클래스 별로 구분하는 범주형인 경우, 이를 분류(classification) 문제라고 하고, 연속형 숫자인 경우에는 회귀(regression) 문제라고 한다. 본격적으로 머신 러닝을 배우기 전에 데이터의 형태에 따른 접근 방식을 알아야 하며, 방식에 따른 트레..
핀치 제스처 또한 iOS에서 가장 많이 사용하는 동작 중 하나로, 두 손가락을 화면에 터치한 후 간격을 벌리고 좁히는 동작으로 화면을 확대, 축소할 때 많이 사용한다. 기본적으로 제스처를 다루는 방법은 앞서 진행했던 스와이프 제스처와 아주 비슷하기 때문에 그렇게 어려운 내용은 없다. 핀치 제스처로 폰트를 조절하는 예제와 이미지의 크기를 조절하는 예제를 다뤄보려고 한다. 우선, 텍스트의 폰트를 조절하기 위해 스토리보드에 레이블을 하나 올려두자. 코드도 굉장히 간단하다. import UIKit class ViewController: UIViewController { @IBOutlet var txtPinch: UILabel! var initialFontSize:CGFloat! override func view..
iOS는 다양한 제스쳐를 지원하는데, 그 중 가장 일반적으로 많이 사용되는 스와이프 제스처를 다루는 방법을 한번 알아보려고 한다. 이번 포스팅에서는 4개의 이미지 뷰를 놓고, 스와이프 제스처 이벤트를 처리하여 이미지를 바꿔보는 간단한 예제를 진행하려고 한다. 우선은 싱글 터치 제스처를 다루도록 코드를 작성하고, 이후에 멀티 터치 또한 인식하여 처리할 수 있도록 수정할 것이다. 바로 시작해보자. 우선 앱의 구성은 아래와 같이 위, 아래, 좌, 우 방향으로 이미지 뷰를 놓고 각 이미지 뷰에는 화살표 이미지를 셋팅한다. 싱글 제스처는 굉장히 간단하게 처리할 수 있다. 우선, 각 이미지 뷰에 초기 이미지를 셋팅하고, 빨간색 화살표 이미지와 검은색 화살표 이미지를 가지도록 UIImage 배열을 선언하여 초기화한다..
이번 포스팅은 사용자의 탭과 터치 동작을 받아서 처리하는 방법과 이를 이용하여 간단한 스케치 어플을 만들어 보려고 한다. 터치의 경우 View Controller에서 오버라이드 메서드를 제공하기 때문에 구현하기 아주 쉬운 이벤트이다. 바로 한번 들어가보도록 하자. 우선, Navigation Controller를 사용하여 2개의 View를 갖도록 할 것이다. 첫번째 뷰는 터치와 탭, 드래그와 같은 동작에 대한 이벤트를 처리하고 터치, 탭 카운트를 표시해주는 간단한 터치 View로 구성하고, 두번째 뷰는 간단하게 image view 위에 스케치를 할 수 있도록 구현한 스케치 View로 구성한다. 스토리보드는 각각 다음과 같다. ◎ ViewController 제약 조건은 아래와 같다. ◎DrawViewCont..
이번 포스팅은 iOS에서 제공하는 UIImagePickerController 클래스를 사용하여 카메라로 사진이나 동영상을 촬영하여 포토라이브러리에 저장하거나, 포토 라이브러리에 있는 사진이나 동영상을 어플로 불러오는 기능을 실습해보려고 한다. 아직 iOS 개발자로 등록하지 않아서 단말로 직접 카메라 테스트는 불가능하지만, 코드를 한번 익혀본다는 생각으로 진행하려고 한다. 바로 들어가보자. 우선 아래와 같이 이미지뷰 하나와 버튼 4개로 스토리보드를 구성하자. 모든 Item은 다음과 같이 스택뷰 내부에 삽입하였다. 코드는 아래와 같이 outlet 변수와 액션 함수를 먼저 선언해주고, 각 카메라에서 미디어를 가져오는지 라이브러리에서 가져오는 지 확인하기 위한 플래그와 필요한 변수들을 선언해준다. import ..
이번엔 아이폰 앱에서 비디오를 재생하는 방법을 알아보자. iOS에서 제공하는 AVPlayerViewController를 사용하면 앱 내부에 저장되어 있는 비디오 파일 뿐만 아니라 외부에 링크된 비디오 파일도 간단하게 재생할 수 있다. 간단한 예제이니, 바로 들어가보자. 우선, 아래와 같이 스토리보드를 구성하는데 위에서부터 레이블 버튼 레이블 레이블 버튼 으로 구성해준다. 그리고 버튼에 이미지를 삽입할 때는 반드시 아래 설정을 따라줘야 한다. 특히, Type 이 System일 때는 이미지가 표출되는 것이 아닌 Tint 배경색이 표시되니 주의하자. 이제 재생할 비디오 하나를 프로젝트 내부에 추가한다. 보통은 자동으로 삽입되지만, 반드시 프로젝트 클릭 > Target > Build Phases > Copy B..
이번 포스팅은 AVAudioPalyer를 이용하여 오디오 파일을 재생, 일시 정지 및 정지하는 방법과 볼륨을 조잘하는 방법 그리고 녹음하는 방법을 알아보려고 한다. 바로 들어가보자. 1. 오디오 재생 가장 먼저, 아래와 같이 재생, 일시정지, 정지 버튼과 현재 재생 시간, 끝 시간을 나타낼 레이블 두개 그리고 볼륨을 조절할 슬라이더와 재생 구간을 표시할 프로그래스바로 스토리보드를 구성한다. 기기에 따른 자동 레이아웃을 설정하기 위하여, 가로로 정렬된 아이템들은 가로 스택뷰로 묶고나서 모든 아이템들을 세로 스텍뷰로 묶는다. 하나의 스텍뷰로 모든 아이템들을 묶었으면, 상단과 좌우에 알맞는 제약 조건을 아래와 같이 걸어주자. 코드는 동작에 비해 조금 복잡하다고 느낄 수도 있지만, 막상 하나하나 뜯어보면 별 내..
데이터를 목록 형태로 보여 주기 위한 가장 좋은 방법은 테이블 뷰 컨트롤러를 이용하는 것이다. 테이블 뷰 컨트롤러는 사용자에게 목록 형태의 정보를 제공해 줄 뿐만 아니라 목록의 특정 항목을 선택하여 세부 사항을 표시할 때 유용하다. 이번 포스팅에서는 테이블 뷰를 사용하여 데이터를 목록 상에 표시하고 추가, 삭제 기능을 넣어 간단한 리스트 앱을 만들어 보려고 한다. 바로 확인해보자. 우선, 새 프로젝트를 하나 생성하고 Table View Controller 를 사용할 것이기 때문에 기존에 있던 ViewContoller.swift 파일과 스토리보드의 ViewController 를 선택하여 삭제한다. 이후에 Table View Contoller를 라이브러리 목록에서 찾아 추가한다. 이제 테이블에 들어갈 새로운..
직전 포스팅에서 다뤘던 탭 바의 경우, 보통 각 화면이 서로 연관성이 없는 경우가 많다. 그렇지만 앱 생태계에서 대부분의 화면 전환은 해당 뷰가 가지고 있던 데이터 또한 함께 넘겨야 한다. 이를 위해 iOS는 Navigation Controller를 사용하는데, 바로 한번 알아보도록 하자. 우선, 프로젝트를 새로 하나 생성한 뒤에 스토리보드에서 기존 뷰를 드래그하여 선택한 다음에 Editor > embed in > Navigation Controller 를 추가하면 아래와 같이 뷰가 하나 추가되며 연결된 상태가 된다. 이제 새로 추가된 뷰의 상단을 클릭하면 해당 Navigation View의 Title을 변경할 수 있다. 실습에서 하나의 뷰를 더 사용하여 화면 전환과 데이터 이동을 확인해보려고 하니 아래..
iOS 에서 하나의 앱에 여러 화면(View)를 넣을 때 일반적으로 많이 사용하는 것이 Tab Bar 다. 탭 바는 하단에 각각의 탭이 존재하고 이를 클릭할 때마다 다른 View를 보여주는 객체이다. 이번 포스팅에서는 DatePicker와 ImageView를 실습할 때 사용했던 스토리보드와 View를 가져와서 Tab Bar에 삽입하여 3가지의 View를 가진 어플을 만들어보려고 한다. 바로 들어가보자. 우선, 아무 객체도 추가하지 않은 빈 스토리보드 화면에서 아이폰 객체 하나를 전부 드래그 하여 선택한 후, editor -> embed in -> Tab Bar Controller 를 선택한다. 선택하고 나면 아래와 같이 처음에는 없던 탭 바 컨트롤러가 하나 추가되면서 자동으로 존재하던 뷰가 탭으로 추가된..
- 인천 구월동 맛집
- 정보보안기사 #실기 #정리
- react
- 맛집
- redux
- 인천 구월동 이탈리안 맛집
- 파니노구스토
- Async
- await
- react-native
- 이탈리안 레스토랑
- javascript
- Promise
- AsyncStorage
- redux-thunk
- Total
- Today
- Yesterday