이번 프로젝트는 서점앱을 만들 예정입니다.코드베이스 UI 구현UIkit을 활용해 화면 구성 및 화면 전환Rest API 활용한 네트워크 통신CoreData 활용한 데이터 저장MVVM 아키텍쳐를 활용한 구조 설계RxSwift 활용한 비동기 작업Get 매서드를 이용해 서버
오늘은 새롭게 알게된 Xcode의 도구에 대해서 적어보려고 한다.Xcode에서 제공하는 Instruments이다.앱의 성능 분석 및 디버깅 도구로이며, 메모리 누수가 일어나는지에 대해서 분석할때 사용하면 좋다.메모리 누수를 확인하면서 Stack Trace도 함께 확인이
오늘은 ScrollView에 대해서 이야기를 해보려고 한다.그동안 앱을 만들면서 사용해보지 않았던 스크롤뷰를 사용해보았다.View안에 있는 내용을 스크롤하거나 확대가 가능한 뷰를 의미한다.
오늘은 간단하게 순환참조에 대해서 알아보자 A 가 B 를 참조하고 (A→B), B 가 A 를 참조해서 (B→A), 서로가 서로를 참조하는 상황을 순환 참조라고합니다. 일반적으로 순환 참조는 메모리 누수를 발생시키는 대표적인 사례입니다. 아래 예시를 보고 순환 참조 개
오늘은 UITextField와 UITextView의 차이에 대해서 알아보았다. 아래의 사진은 첫번째 상자는 UITextField, 두번째 상자는 UITextView이다. # UITextField > 사용자가 인터페이스에서 수정 가능한 텍스트 영역을 보여주는 개체라고
현재 스토리보드 없이 코드로 구현하는 프로젝트를 진행중이다. iOS는 Xcode에서 스토리보드와 코드베이스를 이용해 개발이 가능하다. 코드베이스로 구현을 하기 위해서는 가장 먼저 세팅을 해줘야한다. codebase Setting # storyboard 파일 삭제 초기
오늘은 API를 통한 데이터를 받아와 간단한 날씨 앱을 만들어보는 시간을 가졌다. # API 요청 이번 앱을 만들기 위해 날씨 데이터를 요청할 수 있는 사이트는 https://openweathermap.org라는 날씨 정보를 제공해주는 사이트이다. 여러가지 종류의
이번에는 URLSession에 대해서 알아보았다. # URLSession > An object that coordinates a group of related, network data transfer tasks. 네트워크 데이터 전달 작업에 연관된 일련의 일을 처리하는
# UserDefaults > iOS 앱에서 데이터를 영구적으로 보관하기 위한 방식에는 여러가지가 있다. 그 중 한가지는 UserDefaults 이다. UserDefaults는 앱이 실행되는 동안에 key-value 형태로 데이터를 저장하는 사용자의 기본 데이터베이스
오늘은 프로젝트 도중에 탭제스처를 사용하다가 발생한 문제에 대해서 써보겠습니다. UITapGestureRecognizer > UIGestureRecognizer을 상속 받은 class이다. single 혹은 multi tap을 해석하는 제스처를 인식하는 class라고
이번 프로젝트 과제는 계산기 앱을 만드는 것이다. 보통 iOS개발에는 storyBoard방식과 codeBase방식이 존재한다. 나는 보통 storyBoard를 활용해 앱을 만들어왔다. 두 가지의 방식은 각각의 장점이 존재한다.3 버튼 구성때 ![](https://v
문제에서 요구하는건 각 카테고리별 옷을 겹치지않게 입을 수 있는 경우의 수를 구하는거라고 생각한다. 입출력 예에서 보듯 이중 배열로 각각 의상의 이름과 카테고리를 받아온다. 우선 문제의 키워드에서 힌트를 얻을 수 있었다. 해시를 활용해 문제에 접근해서 풀면 된다.Has
오늘은 뷰컨트롤러의 생명주기에 대해 공부했다.우리가 Xcode를 이용해 개발을 하려고 프로젝트를 만들었다면 아래의 사진과 같은 코드를 자주보았을 것이다. 아래의 코드에 대해서 좀 더 깊이 알아보도록 하자.생명주기(Life cycle) : 무언가 태어나고 죽는 순간까지의
오늘은 알고리즘 문제에서 마주하게된 Hash에 대해서 공부해 보았다.Hash(해쉬) : 데이터를 고유하게 식별하기 위해 고정된 길이의 값(해시값)을 생성하는 과정으로 Swift에서는 주로 컬렉션 타입(Set, Dictionary)에서 객체를 비교하거나, 데이터를 빠르게
오늘은 어제에 이어서 남은 타입 속성 프로퍼티와 속성 감시자에 대해서 공부해보았다. Type Properies(타입 프로퍼티) > 타입 프로퍼티는 타입 자체에 속한 프로퍼티로, 클래스나 구조체, 열거형의 모든 인스턴스가 공유하는 프로퍼티이다. 즉, 특정 인스턴스에 속
오늘은 속성 properties(프로퍼티)에 대해서 공부해보았다. 프로퍼티랑 인스턴스 또는 타입의 부분인 저장된 값과 계산된 값에 접근한다. 값을 특정 클래스, 구조체, 또는 열거형을 연결한다. 프로퍼티로는 저장, 지연, 계산, 타입, 속성 감시자 # Stored P
오늘은 저번에 다뤘던 클로저에 대해서 더 알아보기로 하자. Capturing Values(캡처값), Reference Types (참조 타입) > 클로저는 정의된 둘러싸인 컨텍스트에서 상수와 변수를 캡쳐 할 수 있다. 즉, 클로저는 상수와 변수를 정의한 원래 범위가 더
막상 사용하려고 할때마다 계속 찾게되서 제 블로그에 작성하기로 했습니다.commit message(커밋 메세지) : commit이 정확히 무엇과 관련한 개발에 해당하고, 어떤 변경 사항이 있는지 등을 작성하는 것을 말한다.밑에 커밋메세지에 대한 예시가 있지만 실제로 팀
openpublicinternalfileprivateprivateopen 접근 제어자는 가장 높은 수준의 접근 제어자로, 다른 모듈에서도 해당 클래스나 메서드를 서브클래싱하거나 오버라이딩할 수 있습니다. 오통 외부 라이브러리를 만들고 사용할 때 유용합니다. open으로