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

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도 …

아주 오래된 기술이 지원에서 해제되는 이유

Posted on

전산학은 프로그램과 하드웨어 개발이 주로 이루어지는 분야입니다. 많은 경우 기술이 발전되면 성능이 개선되고 버그도 잡히는 것이 기대되죠. 때로는 버전업이 될때 오래전의 기술이 지원 해제가 되기도 합니다. 어떤 경우 그 기능 자체가 없어지고 다른 기술로 대체되기도 하구요. 하위 호환성을 위해 지속되더라도 실재 제작시에는 사용을 권장하지 않는 공지를 합니다. 이를 풀어서 설명하자면 이렇습니다. 보안이 문제인 경우오래된 표준으로 …

암달의 법칙, 구스타프슨의 법칙, 리틀의 법칙

Posted on

무어의 법칙이 프로세서 성능 향상의 주기를 논의했다면 단일 프로세서의 클락 속도 향상만으로는 발열 문제나 여러 다른 원인들이 겹쳐서 성능 향상이 불가능해졌다. 하나의 CPU 다이 안에 여러 개의 코어를 두고 처리하는 방안이 대안으로 유력하다. 그러나 이 경우에도 프로세서의 처리 속도와 타부품들의 처리 속도, 프로그램의 성능 등의 요인으로 인해 프로세서 코어를 늘린만큼 배수가 되지 않고 병목현상이 있게 …

1 2 3 4