본문 바로가기

2021/1115

🖥 ↩️ macOS에서 모니터 피벗 단축키 설정하기 (Apple API + Alfred Workflows) 이 글은 Apple API를 사용한 디스플레이 회전 명령을 알프레드 workflows를 활용해 단축키로 사용하는 방법입니다. 테스트 환경 : 2019 인텔 맥북 프로 16인치, 카탈리나, 빅서 동작 O, m1 맥북 확인 못함 아래 소스코드를 참고했습니다. https://github.com/CdLbB/fb-rotate#readme 순서 소스코드(.c)를 다운로드한다. 소스코드를 컴파일(gcc)하여 모니터 회전 프로그램을 만든다. 모니터 회전 프로그램을 사용하여 현재 내 모니터 정보를 확인한다. 회전할 모니터를 정하고, 회전시키는 명령어를 만든다. 모니터 회전 명령을 단축키로 설정한다. (알프레드 workflows 사용) 준비물 모니터 회전 프로그램 소스코드 Xcode 알프레드 workflows 1. 소스코.. 2021. 11. 26.
📔 역할, 책임, 협력 (객사오 4장) 객체지향을 설계의 핵심은 협력, 책임, 역할이다. 협력 협력이란 객체들 사이에 요청과 응답으로 이루어진 네트워크이다. 그 네트워크는 어떤 목적이 있다. 1장의 예처럼 "커피 주문"의 협력이 있다고 한다면 손님, 캐시어, 바리스타 객체들 간에 커피를 위해 서로 수많은 요청과 응답이 필요하다. 책임 책임은 어떤 객체가 다른 객체에게 받은 요청 메시지를 수신하고, 이에 대해 응답하고 처리해야 하는 것을 말한다. 손님이 캐시어에게 '커피 한 잔 주세요'라고 요청한다면, 캐시어는 손님의 요청에 대한 응답을 해야 할 책임을 갖느다. 협력을 위해 객체가 다른 객체에게 요청을 보내고, 수신한 객체에게 책임을 수행하게 만드는 것을 메시지 전송이라고 한다. 객체지향의 설계는 클래스, 상속의 관계를 먼저 생각하는 것이 아닌.. 2021. 11. 25.
📓 은총알은 없다. (오브젝트 0장) 현대의 '패러다임(paradigm)'이라는 단어는 '한 시대의 사회 전체가 공유하는 이론이나 방법, 문제의식 등의 체계'를 의미한다. 1962년 토마스 쿤은 의 책에서 과학이 단순히 계단식 발전의 형태를 이루는 것이 아니라 새로운 발견이 기존의 과학적 견해를 붕괴시키는 혁명적인 과정을 거쳐 발전해왔다고, 이를 '과학혁명', '패러다임 전환' 이라고 주장했다. 예를 들어 천동설에서 지동설로 변화한 사건처럼 말이다. 이 책(오브젝트)은 절차형 패러다임에서 객체지향 패러다임의 변화를 이야기한다. 하지만 과학혁명과는 다르게 프로그래밍 패러다임은 절차지향 패러다임을 붕괴시키고 객체지향 패러다임이 바뀐 혁명적인 패러다임이 아닌 서로 상호 보완, 발전적인 패러다임을 이야기한다. 객체지향 프로그래밍을 하는 개발자들이 .. 2021. 11. 23.
책 '오브젝트(Object)' 소개 📓 오브젝트 - YES24 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 조영호 님의 '객체지향 프로그래밍' 관련된 책은 두 권이 있고 4가지 주제를 이야기한다.(2021년 기준) 객체지향은 클래스 중심이 아닌 객체를 바라보는 것이다. 객체는 독립적인 존재가 아니라 기능 구현을 위해 협력하는 공동체의 존재이다. 객체들에게 적절한 역할과 책임을 부여할 수 있어야 한다. 1,2,3의 내용을 요구사항에 맞게 설계하고 프로그래밍 언어로 담아내야 한다. 책 "오브젝트" 는 4가지 주제 중 3,4번을 이야기한다. 객체에 적절한 역할과 책임을 부여하는 방법과 유연하.. 2021. 11. 23.
📔 타입과 추상화 (객사오 3장) 추상화를 통한 복잡성 극복 과거 지하철 노선도는 실제 지도와 1:1 매칭 되었지만 이해하기 어려웠다. 하지만 해리 벡은 승객이 알아야 할 사실(열차 타는 곳)의 정보만 추상화하여 현실의 복잡성을 단순화했다. 실제 역의 거리와 위치는 달랐지만 목적지와 방향을 쉽게 알 수 있었고 이는 현대의 대표적인 지하철 노선도가 되었다. 객체지향과 추상화 객체지향 패러다임도 마찬가지이다. 객체라는 추상화를 통해 현실의 복잡성을 극복한다. 객체 간의 공통점을 일반화하고, 불필요한 세부 사항을 제거해 단순화한다. 타입 컴퓨터는 0,1 비트로 되어있다. 얼핏 보면 랜덤 한 숫자 같지만 데이터를 목적에 따라 분류하고 타입 시스템이 시작됐다. 1) 어떤 데이터에 어떤 연산자를 적용하느냐에 따라 그 데이터 타입이 결정되고, 2) .. 2021. 11. 21.