본문 바로가기

전체 글

(67)
iOS) SwiftLint 적용하기 - CocoaPods SwiftLint A tool to enforce Swift style and conventions, loosely based on GitHub's Swift Style Guide. Realm에서 제공하는 Swift 전용 Lint이다. 여기서 Lint란 소스 코드를 분석하여 프로그램 오류, 버그, 스타일 오류, 의심스러운 구조체에 표시(flag)를 달아놓기 위한 도구들을 가리킨다. 1. CocoaPod 설치 sudo gem install cocoapods 혹시 CocoaPod이 설치되어 있지 않다면 다음의 명령어를 실행하면 된다. 2. CocoaPod 적용 pod init 터미널에서 프로젝트 디렉토리로 이동한 후 pod init을 한다. 그러면 다음과 같이 Podfile이 생성된다. 3. Podfile ..
iOS) gitignore 적용하기 gitignore Specifies intentionally untracked files to ignore 프로젝트를 깃에 올릴 때 특정 파일이 추적되지 않도록 하기 위해서 사용한다. 보통 불필요한 충돌을 발생시키는 것을 막거나 공유되지 말아야 할 프로젝트 정보를 감추기 위해 사용된다. 만일 프로젝트 진행 중에 gitignore를 추가하면 이미 추적된 파일에 대해서는 적용되지 않는다. 추가 방법 gitignore.io를 이용하면 쉽게 gitignore 파일을 생성할 수 있다. gitignore.io에서 원하는 키워드를 다음과 같이 작성한다. 그러면 위와 같은 text가 생성된다. 전체 선택하여 복사한 후 프로젝트를 진행할 디렉토리에 .gitignore 파일을 생성하면 된다. 당연히 디렉토리는 깃과 연결된..
iOS) Core Data - 다른 저장소와의 비교 Core Data Persist or cache data and support undo on a single device. 코어 데이터는 데이터를 저장하고 관리하기 위한 프레임워크이다. 코어 데이터의 경우 해당 기기에 데이터를 저장하므로 오프라인에서도 동작 가능하며, 클라우드를 제외하고는 데이터를 공유할 수 없다. Object Object-Oriented Database 코어 데이터의 경우 SQL을 쓸 일 없이 오롯이 Object-Oriented 방식으로만 데이터를 다룰 수 있다. 데이터는 Object로 표현되며, NSManagedObjectModel의 인스턴스로 구현된다. 이러한 Object가 관계를 형성하여 Object Graphs를 이루고 이를 관리하는 프레임워크가 바로 코어 데이터이다. Map 어..
Middleware Protocol과 Communication Types of Communication 우리가 지금까지 생각했었던 컴퓨터 통신은 메세지를 보내고 받는 것이다. TCP나 UDP를 가지고 소켓 프로그래밍을 해봤으면 이런 방식을 사용해 봤을 것이다. 커뮤니케이션 타입을 보면 애플리케이션 레이어 입장에서 메세지를 주고 받는 방식이 단순히 tcp, udp를 사용하는 방식만 있는게 아니다. 우리가 매일 사용하고 있는 애플리케이션의 커뮤니케이션 방식은 사실은 다 다르다. 세부적으로 따져보면 커뮤니케이션 타입을 나눌 수 있고 기준에 따라 다음과 같이 나눌 수 있다. Persistent vs. transient communication Synchronous vs. asynchronous communication Discrete vs. streaming communi..
Middleware Protocol Middleware 애플리케이션과 OS 사이에 존재하면서 분산 시스템에서 중요한 역할을 한다. 분산시스템의 기본 목적이었던 distribution transparency와 같은 것들을 제공해 줄 수 있는 이유가 미들웨어가 가려주기 때문이다. 애플리케이션에게는 노출하고 싶은 부분만 노출하고 밑단에서 일어나는 것들은 미들웨어 레이어에서 숨겨준다는 것이다. Layered protocol 입장에서는 분산 시스템 역할을 수행하기 위해 미들웨어 레이어가 들어갈 수 도 있다. 미들웨어 프로토콜은 통신을 이용해야 하므로 애플리케이션과 전송 계층 사이에 위치해야 한다. 미들웨어를 사용하는 애플리케이션은 이제 TCP, UDP를 직접 사용하는 것이 아니고 미들웨어를 통해 통신을 하고 분산 시스템 서비스를 이용할 수 있게 된..