study/others

    Dependency Inversion Principle - 의존관계 역전 원칙에 대해서

    객체지향 설계 SOLID 5원칙 중에서 마지막 원칙에 해당하는 DI (Dependency Inversion Principle)에 대해서 알아보자. 객체지향적 설계에는 의존관계가 생기기 마련이다. 각 클래스는 단일 책임 원칙에 따라 하나의 책임만 져야 하고, 각 클래스가 결합돼 프로그램이 구동된다는 것을 보면, 어떤 클래스가 다른 클래스에 의존하는 것은 당연하다. class Dog: def speak(self): print("Bark") class Cat: def speak(self): print("Meow") class Zoo: def __init__(self): self.cat = Cat() self.dog = Dog() def speak_all(self): self.cat.speak() self.do..

    [파이썬 | Python] Mutable object, Immutable object

    파이썬의 모든 것은 객체(object)이다. 거의 모든 객체는 속성(attributes)과 메서드(methods)로 이루어져 있으며, 객체끼리의 식별은 id(object)를 통해서 한다. id가 같다면 동일한 객체, 그렇지 않으면 다른 객체이다. id는 해당 객체를 가리키는 유일한 상수(unique constant)이며, 객체가 서로 같은지 비교를 위해서는 $==$ 가 아닌 is 를 사용한다. C언어의 포인터와 같은 개념이지만, 실제로 id가 가리키는 것이 메모리의 주소를 의미하는 것은 아니다. 객체는 변경 가능하거나, 그렇지 않다. 이것이 mutable object와 immutable object의 차이이다. 쉬운 예로, a = "abc" a.replace("a", "x") # a는 여전히 "abc"이..

    [깃 | Git] Udacity Git Commit Message Style Guide - 깃 커밋 메시지 일관성있게 쓰기 (스타일 가이드)

    커밋 메시지가 보기 좋아야 (일관성있고 체계적으로 작성해야) 나중에 다시 보았을 때 어떤 기능을 추가했는지, 어떤 버그를 고쳤는지 알기 편하다. 최근에 코드를 체계적으로 작성하기 위해서 Java, Python의 Style Guide를 참고했었는데, 커밋 메시지에도 가이드라인이 있다! 오늘은 그 중에서 유다시티의 커밋메시지 스타일가이드를 소개한다. - Commit Message Structure (커밋 메시지 구조) 커밋 메시지는 빈 줄로 나뉘어진 세 가지 파트로 구성된다. title, body(optional), footer(optional) 레이아웃은 아래와 같다. type: Subject body footer - The Type (커밋 타입) 커밋 타입은 제목(title)에 해당하며, 아래 중 하나이..

    42서울 (42SEOUL) 온라인테스트 후기

    1학년을 마치고 공군 입대, 9월말 전역전 휴가 나와서 본격적으로 어떤 공부를 하면 좋을까 고민. 다양한 코스들을 접하고 들어보는게 좋겠다고 생각했다. 여럿 있었지만 내 눈길을 끌었던 건 삼성 SSAFY, 우아한형제들 우아한테크코스, 이노베이션아카데미(정부) 42서울. SSAFY는 4년제 졸업자 및 졸업 예정자에게 지원자격이 주어져 나에게는 해당이 안 됐고, 우아한테크코스는 다음주 수요일(11/3)에 접수마감이라 고민중에 있다. 서울42에서는 현재 모집중이 아니다. 그래도 상시 온라인 테스트 결과를 통해 교육과정에 입과할 기회를 주기에, 테스트를 한 번 봤다. 테스트는 4분, 2시간이 소요되는 두 가지의 게임이 전부이다. 한 번 보고 나면 다시는 지원할 수 없다는 게 긴장되는 데 한몫했다. 4분이 걸렸던..