트랙킹 캔버스 뷰 만들기 (Cocoa)

예전에 코어 그래픽을 사용해서 UIView위에 손가락으로 그림을 그릴 수 있는 간단한 핑거 드로잉 캔버스를 구현해본 바 있는데, 똑같은 내용을 NSView에 적용해보고자 한다. 이전글이 Objective-C로 작성되어 있는데, 이번에는 Swift로 간단하게 작성해보려 한다. 원리는 동일하다. CGLayer를 하나 만들고, 마우스를 사용해서 뷰를 긁을 때(드래그할 때)마다  코어 그래픽을 사용해서 레이어에 그림을 그리고, 다시 뷰 리드로잉 사이클에서는 뷰에 레이어를 그리는

파이썬은 처음이라 – 값이란 건 처음이라

이번 글에서는 파이썬에서의 값에 대해서 살펴보겠다. 프로그래밍 언어를 배울 때에는 흔히 문법이나 알고리듬, 자료 구조와 같은 부분에 집중하면서 “값”이라는 부분, 즉 데이터 자체에 대해서는 소홀해지는 경향이 있다. 하지만 컴퓨터 프로그램은 본질적으로 데이터를 다루는 논리적인 기계장치이며, 어떤 입력값을 조작/변형처리하여 출력하는 구조를 가진다. 그 과정에서 다루어지는 값에 대한 특성을 이해하는 것은 값외의 다른 모든 것들을 이해하는 것과

프로퍼티 상속 파고들기 – Swift

프로퍼티에 대한 이야기를 몇 번 하긴하였는데, 실제로 프로퍼티 상속은 실제로 상당히 오묘하게 헷갈릴 수 있는 여지가 많아서 다시 한 번 정리하는 차원에서 예제와 함께 포스팅한다. 이 글에서는 클래스의 프로퍼티가 서브클래싱할 때 어떤식으로 처리되는지를 살펴볼 것이다. 먼저 저장 프로퍼티와 계산 프로퍼티에 대해서 살펴보자. 다음 예제 코드는 정수형 프로퍼티 4개를 가지고 있는 클래스 Foo를 구현한 예이다. class

AppKit의 스크롤뷰, NSScrollView 사용법

iOS에서 화면에 표시할 수 있는 뷰 영역보다 큰 콘텐츠를 표시하기 위해서는 UIScrollView를 사용해서 스크롤 및 확대/축소에 대한 지원을 손쉽게 구현할 수 있음을 우리는 알고 있다. 그렇다면 macOS 환경에서 스크롤뷰는 어떤식으로 구현될 수 있고, 또 그만큼 손쉽게 사용할 수 있을까? 비슷한 스크롤 서비스를 제공한다는 공통점에도 불구하고 데스크톱 환경은 우리가 생각하는 것보다 훨씬 더 복잡하고 많은 요소가

(연재) 파이썬은 처음이라 – 문법은 처음이라

이번 시간에는 파이썬의 문법에 대해서 알아볼 생각인데, 가능하면 딱딱하지 않은 내용으로 소개하고 싶었지만 그래도 문법의 구조에 대해서는 잠깐 언급하고 넘어가는게 좋겠다. 아마 교과서 같은 책이라든지 파이썬 공식 문서에서도 이런 식의 문법 구조 설명은 나올텐데, 대부분 “너무 빤한 이야기라서 왜 써있는지도 모르겠고 그냥 대충 몰라도 아는 이야기라 넘어간다”며 읽지 않는 것이 대부분이다. 절대로 재밌는 내용이 아닌데,