소스코드 읽을때 표류안하는 기법 2

Posted on

이 글에서 소스코드 공부에 임하는 요령을 몇가지 소개했습니다. 이번 글에서는 심화해서 요령을 더 말씀드려보겠습니다. 소스코드 실행 흐름을 알아차리는 요령입니다. 저 글에서 소개한 변수 선언문을 예로 들면요. int a = 10; 이 구문을 딱 보면 우선 자료형 변수명 대입기호 값 이렇게 구성 성분 분류를 떠올려보셔야 하는데요. 여기에는 이유가 있습니다. 우선 변수니까 메모리에 값을 저장하는 공간을 예약한다고 …

소스코드 읽을때 표류안하는 기법

Posted on

소스코드를 읽을때 첫대면시에 어렵게 느껴지는 이유가 무엇일까요? 이 두가지가 일반적입니다. 우리가 익숙한 방식으로 기호를 보게 되는 것이 당연하고, 아직 체현이 안된 방식은 익숙하지 않으니 시선에 안들어오는 것이죠. 우선 소스코드는 언어별로 상이한 문법과 기호로 표시되는데요. 그럼에도 불변하는 형식과 의미가 공통되기도 합니다. 이점에 기반해서 한 언어를 배우고 익숙해지면 공통된 것과 차이나는 것을 구별하게 될때 타언어에서도 적용되는 것을 …

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

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

1 2 3 4