본문 바로가기


[OOP] SRP 와 객체의 역할, 책임의 충돌 SRP 는 Single Responsibility Principle 의 약자로 단일 책임의 원칙이다. 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는 말이다. 객체지향 설계는 '책임' 주도 설계가 바탕이 되어야 하는데 이 개념이 SRP 개념과 충돌하는 지점이 생겼었다. 하나의 객체는 한 협력안에서 하나의 역할만 수행한다면 여러가지 역할을 가질 수 있다. 그리고 역할은 책임의 집합이다. 라는 개념과 클래스는 하나의 책임만 가지며 변경의 이유는 1가지 여야 한다는 개념이 맞물리지가 않았었다. Object 라는 책을 보면서 나온 개념 이었기 때문에 직접 조영호작가님께 여쭤본 결과 놓치고 있었던 키워드를 찾아내었다. 객체 지향설계에서 말하는 책임과 역할은 '객체' 의 관점..
[DL] Deep Learning 시작하기 Google colab 연동 딥러닝 공부를 시작했다. 300만원이지만 GPU 없는 망할 맥북 프로 16인치에는 GPU 가 탑재 됐다고 한다. 무튼 내 노트북에는 GPU 가 없기 때문에 공부에 방해가 될 수 있지만 우리는 구글 코랩으로 이겨낼 수 있다. 1. 구글 코랩접속 https://colab.research.google.com/ 코랩이 뭐에요? 구글 코랩이 뭐냐면 클라우드 기반의 주피터노트북 개발환경이다. 나처럼 딥러닝 입문자들은 사실 주피터가 뭔지도 모르니까 간략하게 찾아본 대로 설명을 하면 웹브라우저 내에서 코드구현을 하고 실행까지 해볼 수 있는것이고 .ipynb 확장자로 되어있다. colab 으로 직접 저 파일을 열어서 확인해보면 어떤 환경인지 이해가 되는데 마치 워드처럼 코드를 작성하지만 그안에서 실행이 된다 그것도 GP..
MacOS에 Python3 설치하고 command 변경 MacOs : Mojave Mac에는 기본적으로 python 이 깔려 있는데 이게 3 이 아니고 2.7 버전이다. 그래서 3 버전을 사용 하려면 설치가 필요하다. 카산드라 때도 말한적이 있는 거 같은데 맥에서 설치할때 제일 편한건? BREW!!! 설치한다 brew 로 설치한 후에도 계속해서 python version 은 2.7 이다 왜냐하면 mac 에서 기본적인 python은 2.7 고 python3 는 python3 라는 커맨드를 써야한다. 근데 불편하니까 alias 설정을 해놓는다. 이렇게해서 bash_profile 에 접근해서 내용안에 추가해준다. 그러면 안 바뀐다. profile 적용이 안돼서 그렇다. 이렇게 하면 끝~ 끝!