2014년 8월 27일 수요일

[Python] 클래스 오브젝트 생성 제어

좀 특별한 경우겠지만, 특정 클래스의 오브젝트를 생성 할 때 조건을 만족하지 않으면 생성되지 않고 None이 되게 하고 싶은 경우라고 가정하자. 이렇게 하면 클래스 오브젝트 생성을 이용해 밸리데이션(Validation)이 가능해진다.

하지만 파이썬의 클래스 생성자격인 __init__ 은 값을 리턴 할 수가 없다. (정확히는 None만 리턴이 가능하다) 사실 대부분의 OOP에서 클래스의 생성자는 리턴을 가질 수 없다. Objective-C 같이 특이한 경우를 제외하고는...

2014년 8월 22일 금요일

Swift의 기본 프로토콜 세 가지: Equatable, Comparable, Printable

애플의 공식 스위프트 가이드(?)에 언급된 세 가지 프로토콜로 Equatable, Comparable, Printable이 있다. '-able' 이라는 이름이 붙은 걸로 보면 특정 동작이 가능하도록 유도하는 프로토콜로 추측이 가능하다. 이 프로토콜들에 대해 간략히 정리해본다.

2014년 8월 21일 목요일

OS X Yosemite DP 에서 Homebrew 실행문제 해결하기

현재 애플에선 한창 개발중인 OS X Yosemite Developer Preview 에서 내부 프레임워크들이 버전업이 됨이 따라 이에 의존성이 있는 소프트웨어들이 영향을 받게 되었다. 그 중에는 Homebrew도 끼어 있다.

2014년 8월 20일 수요일

Xcode 6 Beta 6 에서 발생한 링크에러 및 해결

Xcode 6 Beta 6를 사용하면서 약간의 변경점 때문에 Swift 코드를 일부 수정하고 빌드를 했더니 링크 단계에서 에러가 발생했다. 이번 베타에서도 뭔가 깊숙한 곳에서 바뀐게 있나 하고 답답해 했었다. 다행히도 해결책이 있어서 글로 정리해 본다.

2014년 8월 19일 화요일

Swift - 값(Value)과 레퍼런스(Reference)

애플의 공식 스위프트(Swift) 블로그에서 재미있는 내용이 올라와서 이를 설명해보는 글을 작성해본다. 참고로 글 내용은 값과 레퍼런스의 차이에 대한 것인데, 이 덕분에 클래스(class)와 구조체(struct)의 차이점을 한 가지 더 알 수 있게 되었다. 이 글에서는 이 중 값과 레퍼런스에 대한 부분만 정리한다.

2014년 8월 13일 수요일

Xcode 6 유닛테스트(Unit Test) 기초가이드

앞서 Swift 프로젝트에서 유닛 테스트 하기에 관한 글을 썼었는데 이번 글은 Xcode 6 에서 제공하는 유닛 테스트(Unit Test)의 기본 가이드이다. 코드는 스위프트를 기준으로 하겠지만 Objective-C 에서도 구조가 동일하기 때문에 이해하기에 어려울 것은 없을 것이다.

Swift 프로젝트의 유닛테스트(Unit Test)

Xcode에서 새 프로젝트를 생성하면 기본적으로 (옵션을 해제하지 않으면) Test를 위한 타겟과 프레임워크를 자동으로 생성한다. 이 테스트 기능은 테스트 자동화나 TDD(Test Driven Development, 테스트 주도 개발)을 위해 사용되는 유용한 기능이다.

다만 스위프트(Swift) 기반의 프로젝트에서는 만들어 놓은 모듈을 테스트 할때 사소한 애로사항(?)이 있어서 이를 정리해 본다.

혹시나 Xcode 6 유닛테스트 가이드를 찾는다면 Xcode 6 유닛테스트 가이드 글을 참고하자.

2014년 8월 11일 월요일

Objective-C 프로젝트에서 Swift 코드 사용하기

앞서 Swift 프로젝트에서 Objective-C 코드를 사용하기에 관한 글을 적으면서 '과연 스위프트 모듈을 Objective-C 프로젝트에서 쓸 일이 있을까' 라고 적긴 했었는데, 실상은 왠지 쓸 수도 있을 것 같다는 느낌이었다. 그래서 관련 내용을 글로 정리해본다.

2014년 8월 5일 화요일

Swift - Xcode 6 Beta 5 변경점​

이번에도 한국시간기준 화요일에 Xcode의 새로운 베타가 올라왔다. 애플 이 녀석들 미국기준 월요일에 릴리즈 한다는 건데 부러운 녀석들... ;ㅁ;

어쨌건 이번에도 많이 바뀌었다. 물론 이번에도 Swift와 관련된 부분만 간추려본다.