본문 바로가기

분류 전체보기17

이펙티브 엔지니어 PART 1 레버리지 = 생산한 효과 / 투자한 시간 시간은 한정적이기 때문에 레버리지는 매우 중요하다. 도전적인 업무를 해라. 자신이 모르는 코드에 뛰어드는것에 겁내지 마라. 로켓을 탈 기회가 생기면 묻지말고 일단 타라. 성장에 집중하라. 구글의 '20%시간' 하루 한시간 정도 자신의 성장에 투자하라. 근무시간을 투자해 새로운 기술을 발전 시켜라. 블로그를 개설해 설명하고 가르쳐라. 긴급성과 중요성을 혼돈해서는 안된다. 사사분면 활동 구분. 만약~한다면 계획. 다음 활동 전 20분이 남는다면 ~해야겠다.(간단한 업무 목록이 해당) 우선순위를 매긴 할일 목록. 우선순위. 진행 중. 오늘. 이번 주 할일. 아사나 앱. PART 2 시간절약 도구에 투자. 커밋 시점에 빌드 시스템 구축. 전체 테스트. 지속적.. 2023. 2. 6.
Singleton Pattern (싱글톤 패턴) Singleton Pattern (싱글톤 패턴) Singleton Pattern은 유일하게 하나의 인스턴스만 존재하도록 보장하며, 생성된 인스턴스는 전역변수를 참조하는 것 처럼 어디서든 참조할 수 있다. Implementations Coin 인스턴스는 private static으로 선언하고, 외부에서는 getInstance()를 통해서만 사용할 수 있도록 한다. public class Coin { private static final int ADD_MORE_COIN = 10; private int coin; private static Coin instance = new Coin(); // eagerly loads the singleton private Coin() { // private to preven.. 2023. 2. 3.
디자인 패턴 개발자5의 이야기 약 15년간 개발자로 있으면서 개발자에게 중요하다고 생각하는 몇 가지 중 하나를 꼽으라면 바로 이다. 사실 나는 기억력이 매우 나쁜 편이라 아직도 패턴 이름을 다 매칭 시키지 못한다. 어떤 구현에 들어갈 때 ㅇㅇ패턴을 사용하면 좋을 것 같군, 혹은 코드를 보고 ㅇㅇ패턴을 사용했군. 이라고 말하지 못하지만, 중요한 것은 상황에 맞는 적절한 패턴을 찾아 구현할 수 있으면 된다고 생각한다. 우리가 구현하는 많은 코드들은 엄청나게 패턴을 사용하고 있지만 실제로 패턴을 사용하는지 조차 인지하지 못하고 사용하는 경우가 많다. 사실 인지할 필요가 없이 개발하다보면 그냥 이렇게 구현해야겠다. 라고 떠오르는 경우가 대부분이므로 이부분이 문제라고 말하고 싶은 것은 아니다. 어쨋든, 디자인 패턴에 대해 한.. 2023. 2. 3.
Factory Method Pattern (팩토리 메소드 패턴) Factory Method Pattern (팩토리 메소드 패턴) 부모클래스에서는 객체 생성의 인터페이스만 제공하고, 구체적인 객체 생성은 자식 클래스에서 한다. 즉, 자식 클래스가 어떤 객체를 생성할 지 결정한다. 이를 이용하면 기존코드를 수정하지 않고(인터페이스 동일) 인스턴스를 생성하는 부분을 확장시킬 수 있다. 팩토리 메소드 패턴은 "생성"에 사용된다는 점만 다를 뿐 궁극적으로는 템플릿 메소드 패턴과 동일하다. Structure Creator : 부모 클래스로 객체 생성 인터페이스를 제공한다. ConcreateCreator : Creator를 상속받는 구체 클래스로 실제 인스턴스 생성을 수행한다. Product : ConcreateCrator에 의해 생성되는 결과물이다. 확장성을 위해 Product.. 2023. 2. 2.
Abstract Factory Pattern (추상 팩토리 패턴) Abstract Factory Pattern (추상 팩토리 패턴) 서로 연관되거나 의존적인 객체로 이루어진 제품군을 생산하는 인터페이스를 제공하는 것이 목적이다. Example 엘레베이터에는 Motor와 Door 부품이 들어간다. Samsung 엘레베이터에는 Samsung Motor와 Door, LG 엘레베이터에는 LG Motor와 Door, A사 엘레베이터는 Motor와 Door를 직접 만들지 않아 Samsung Motor와 LG Door를 사용한다고 하자. 이해하기 쉽도록 아래 UML과 매칭시켜 보자. Product는 부품이다. 즉, Motor와 Door이다. AbstractProductA : Motor ProductA1 : Samsung Motor ProductA2 : LG Motor Abstrac.. 2023. 2. 2.