macOS sequoia 에서 Ruby 최신 버전으로 바꾸기

Posted on

macOS sequoia의 시스템 ruby는 2.6.x라, 여러모로 버전이 안맞아서 gem 등의 명령어로 설치할때 버전 문제가 있게 되기도 합니다. 이 경우 로 ruby 최신버전을 설치하고 /opt/homebrew/opt/ruby/bin 을 PATH에 추가한후 를 실행해서 homebrew로 설치한 ruby를 쓰도록 강제할 수 있습니다. 플러터 설치할때 CocoaPods 설치 이슈인 경우에는 gem 말고 brew로 설치하면 됩니다. brew로 cocoapods을 설치하면 macOS sequoia의 시스템 ruby 이슈가 …

디자인 패턴을 잘 기억하는 한 방법

Posted on

흔히 이공계통은 외어서 한다고 하기도 합니다. 이 말들이 옳은 부분도 있겠지만 대부분의 경우 이런 조건에 빠지지 않게 잘 받아들이십니다. 제가 이 말을 하는 이유는 이러한 이해가 갖는 추천되는 마인드가 아니면, 공부하는 방법을 저해하기도 해서네요. 대부분의 기술자분들은 긍정적인 마인드로 업무에 임하셔야 해서 한 문제에 대해 심도있게 사유하시니 공부법에 대한 다른 이해를 잘 안하십니다. 보통은 문제가 없는데, …

SOLID 설계의 원칙 5 – 의존 역전 원칙

Posted on

의존 역전 원칙(dependency inversion principle)은 이렇다. 분석철학자는 아래 그림처럼 심리철학에 의존 관계가 있다. 이 경우 분석철학자의 관심사는 심리철학 뿐아니라, 예술철학과 언어철학에도 의존적인데, 이 경우 의존적인 것을 표현하려면 아래처럼 하면 된다. 이 경우 분석철학자가 하는 철학 분야를 넘나들때 구체적인 철학 분야들(심리철학, 예술철학, 언어철학 등등)이 아닌 추상화된 상위 범주인 분석철학에 의존하게 해서 구체적인 다른 철학 분야로 변경되도 …

SOLID 설계의 원칙 4 – 인터페이스 분리 원칙

Posted on

인터페이스 분리 원칙(Interface Segregation Principle)은 인터페이스를 분리할때 지켜야 할 원칙을 말한다. 앞서 단일 책임의 원칙을 준수하기 위해 클래스를 쪼개서 독립된 클래스로 만들고 속성과 메소드를 분배해서 두었다. 이 경우에 만능 개발자 클래스는 사라지고 각각으로 쪼갠 클래스만 존재하게 되었다. 이 경우에 인터페이스를 써서 분리하면 이점이 있는 경우가 있게 된다. 만능 개발자 클래스는 그대로 두고, 각각의 쪼갠 클래스를 …

SOLID 설계의 원칙 3 – 리스코프 치환 원칙

Posted on

리스코프 치환 원칙(Liskcov Substitution Principle)은 클래스 상속의 구조가 지켜야 하는 원칙을 말한다. 보통 상속을 말할때, inheritance라는 단어의 의미에 주목하면 부모클래스, 자식클래스로 분류할 수 있다. 이로부터 상속의 구조를 구성하면 아래와 같이 된다. 일종의 가족의 계보도와 같은 계층이 그려지는데, 이를 객체지향 문법으로 구현하면 아래처럼 된다. 부모 돌쇠 = new 아들(); 그러나 부모라는 타입이 아들을 의미할 수 있는가? …

SOLID 설계의 원칙 2 – 개방 폐쇄 원칙

Posted on

개방 폐쇄 원칙(OCP – Open Closed Principle)은 클래스 자신의 확장에는 열려 있고, 주변의 변화에 대해서는 닫혀있어야 한다는 원칙이다. 종교인이 종교활동을 하는 예를 들어보자. 기독교인은 예배를 드린다. 반면 카톨릭 신자는 미사를 드린다. 그리고 불교 신자는 108배를 한다. 기독교인은 찬송을 부르고 카톨릭 신자는 복음성가를 부르고 불교 신자는 불경을 외운다. 즉 종교인의 활동은 종교가 변하면 행동에도 변화가 생긴다. …

SOLID 설계의 원칙 1 – 단일 책임 원칙

Posted on

단일 책임 원칙(SRP – Single Responsibility Principle)은 한 클래스가 너무 많은 책임을 가지고 있는 경우, 코드의 기능상으로 코드의 방만함이 예상될때 클래스의 기능을 여러개로 나누어 책임을 분산하는 원칙을 말한다. 아래와 같이 클래스를 작성했다고 하자. 만능 기술자의 업무를 분류한 클래스로 만능 기술자라는 클래스 아래 여러 작업을 구현한 메소드가 어지럽게 늘어서 있다. 만능 기술자라서 Angular도 배워야 하고 Vue.js도 …

[RPI-PICO] 라즈베리파이 피코 1 (RP2040) 부트롬 재컴파일해서 심기

Posted on

가끔 라즈베리파이 피코가 오작동하는 것이 느껴질 때가 있습니다. 오작동이 아니더라도 튜닝을 의도한다든가 하는 위자드리급 고수시라면 한번쯤 해볼만한 작업입니다. 우선 RP2040용으로 나온 부트롬은 아래 명령어로 받아올 수 있습니다. 해당 사이트에 가보면 해설이 나오는데, 컴파일하는 컴파일러의 버전이 딱 맞아야 합니다. 이후 버전으로 하면 pico-bootrom-rp2040/bootrom/bootrom.ld 의 ROM이 16K로 되어 있는 량을 늘려야 해서, RP2040의 표준에 안맞게 됩니다. 16K를 …

1 2 3 35