개발자로 밥을 먹고 있으면서 수년동안 읽은 개발서 중에 머리가 아닌 가슴을 에이게 하는 책이 있다면 그중 하나가 바로 이책입니다. 개발서 치고는 얊은 데다가 타이포그래피가 구닥다리 냄새를 풍기고 있기는 하죠.
많은 좋은 내용이 있지만 그중 머릿속에 멤도는 몇가지는 아래와 같습니다.
1. Install Python | |
https://www.python.org/downloads/ | |
2. update pip | |
python -m pip install --upgrade pip | |
3. install numpy first | |
according to PyTorch official guide recommand that install numpy first. | |
pip install numpy |
NetworkManager supports WiFi powersaving but the function is rather undocumented.
From the source code: wifi.powersave can have the following value:
설계 원칙은 관리가능(maintainable)하고 재사용(reusable) 가능한 소프트웨어를 작성하기 위해 제시된 기준 입니다.
SOLID Principle은 Uncle Bob으로 알려진 Robert C. Martin 이 정리한 Object-Oriented Design (OOD) Principles.
인-하우스 개발팀이 프레임워크를 개발해 사용한다는 말은 닷넷프레임워크와 같은 '기반 프레임워크'가 아닌, 어플리케이션 프레임워크를 말하는 것입니다. 이 포스트는 어플리케이션 프레임워크란 무엇이며 개발기법에 대한 것입니다. 포스팅의 그림과 내용은 Developing Application Framework in .NET by Xin Chen (ISBN:1590592883) , Apress , 2004 일부 내용 요약 및 정리입니다.
“당신이 애플파이를 맨 처음부터 만들고자 한다면, 세상을 먼저 만들어야 할 것이다. If you want to make an apple pie from scratch, you must first create the universe.” 칼 세이건, Carl Sagan
어플리케이션 프레임워크란 이 어떠한 문제를 해결하는 어플리케이션을 개발할 때 '어떻게 하면 맨손으로 개발 하지 않을 수 있을까?' 의 고민으로 부터 시작된 것입니다. 맨손으로 시작하지 않기 위해서는 구조화된 '그 무엇'을 개발자에게 제공해야 하며, 그 '무엇' 이 바로 '어플리케이션 프레임워크 이다' 라고 Xin Chen이 제안한 용어(selling idea) 입니다. 닷넷, 자바 개발자들은 닷넷프레임워크 와 자바프레임워크 위에서 개발을 합니다. 각각의 문제를 해결하기 위한 코드의 덩어리, 공통문제 해결을 지원하는 라이브러리등을 개발하게 되죠. 어플리케이션을 개발 할 때마다 데이터베이스로부터 화면표시까지 모든 개개의코드 덩어리를 만들고 있다면 여러분은 맨손으로 세상을 만들고 있는 중 입니다.
소프트웨어 개발의 목적은 어떠한 문제를 해결하는 것 입니다. 원래의 의도대로 정확하게 구동 되는 것이 가장 첫번째 달성해야 하는 목표라고 할 수 있습니다. 허나 소프트웨어는 구동되는 것 만이 전부가 아닙니다. 잘 개발된 객체지향 소프트웨어가 가져야 할 특성은 구획화 된 모듈성 modularity, 변경을 반영할 수 있는 유연성 flexibility, 요구 추가를 위한 확장성 extensibility, 이 요소들을 갖추고 있으면서도 소프트웨어가 생명주기동안 살아 있을 수 있도록 하는 유지관리성 maintainability 입니다.
언급한 특성들을 갖추게하는 증명된 방법 그 것이 바로 '패턴 Pattern' 입니다.
소프트웨어를 개발하다 보니 구현 코드는 달라도 유사한 문제가 발생하는데, 그 때 패턴을 사용하게 되고, 개발 관련자들 사이에 의사소통 도구로 사용됩니다. 또한 잘 구성된 패턴은 해결하려는 문제가 무엇인지 유추 가능케 합니다.