전체 글
-
디자인 패턴 스터디 기록 (6) - 싱글톤 패턴✏️ 스터디 모음집/디자인 패턴 스터디 2022. 11. 2.
싱글톤 패턴 객체의 인스턴스가 오직 1개 “싱글톤 패턴” 컴퓨터 측면에서 더 디테일 하게 말하면, 프로세스가 실행 중에 "오직 하나의 오브젝트만 생성되도록 강제" 하는 디자인 패턴 입니다. 싱글톤 디자인 패턴을 가진 클래스를 사용해서 여러개의 오브젝트를 만들더라도 단 한개만 만들어집니다. 아래의 경우를 살펴볼까요? class Singleton { static instance; // 한번만 메모리 공간을 차지 constructor() { if (!Singleton.instance) { Singleton.instance = this } return Singleton.instance; } } const s1 = new Singleton(); const s2 = new Singleton(); 위 코드에서 s1 ..
-
디자인 패턴 스터디 기록 (5) - 팩토리 패턴, 의존성 역전✏️ 스터디 모음집/디자인 패턴 스터디 2022. 11. 2.
4. 객체지향 팩토리 패턴 이번장에서는 최대한 느슨한 결합으로 객체지향 디자인을 하는게 목표인 장입니다. 4-1. Simple Factory 예제 1) Pizza orderPizza() { Pizza pizza = new Pizza(); /* 이부분 */ *if(type.equals("cheese")) { pizza = new CheesePizza(); } else if (type.equals("greek")) { pizza = new GreekPizza(); } else if (type.equals("pepperoni")) { pizza = new PepperoniPizza(); }* pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pi..
-
디자인 패턴 스터디 기록 (4) - 데코레이터 패턴✏️ 스터디 모음집/디자인 패턴 스터디 2022. 11. 2.
데코레이터 패턴 코드를 직접 수정하지 않고 코드를 확장하는 기법. 주로 특정한 로직에 대한 전처리, 후처리가 계속해서 반복되는 경우 이를 재사용 하는 목적으로 사용된다. 예를 들어 백엔드에서 REST API를 작성하려고 할때, HTTP Method를 엔드포인트 별로 다르게 설정해주고 싶다면, 매번 엔드포인트를 작성 할 때마다 어떠한 HTTP Method로 요청 되었는 지 확인하는 로직이 필요할 것이다. 이런 경우 메소드 데코레이터를 사용하여 전처리 과정을 재사용 할 수 있다. from django.views.decorators.http import require_http_methods @require_http_methods(["GET", "POST"]) # HERE! def my_view(request)..
-
디자인 패턴 스터디 기록 (3) - 객체 간의 강한 결합 VS 느슨한 결합✏️ 스터디 모음집/디자인 패턴 스터디 2022. 10. 27.
강한 결합 VS 느슨한 결합 이것을 이해하기 전에 먼저 객체간의 강한 결합에 속하는 상속(= is-a 관계) 을 보자! public class Lotto { protected List lottoNumbers; public Lotto(List lottoNumbers) { this.lottoNumbers = new ArrayList(lottoNumbers); } public boolean contains(Integer integer) { return this.lottoNumbers.contains(integer); } ... } public class WinningLotto extends Lotto { private final BonusBall bonusBall; public WinningLotto(List..
-
디자인 패턴 스터디 기록 (2) - 옵저버 패턴✏️ 스터디 모음집/디자인 패턴 스터디 2022. 10. 27.
옵저버 패턴이란? 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고, 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의하는 방식 옵저버 패턴의 구조 Subject 객체 Subject가 알고 있는 것(멤버 변수, 프로퍼티) → Observer들이 관심있어하는 타깃 인 상태값을 가지고 있음 → Observer들을 저장 할 컨테이너를 가지고 있음 Subject 하는 일(멤버 함수, 메소드) → Observer를 컨테이너에 추가 → Observer를 컨테이너에 삭제 → 상태값이 바뀌었을때 컨테이너를 순회하며 등록된 옵저버들에게 알리기 → 상태값에 대한 getter와 setter가 있을 수 있다. Observer 객체 Observer가 알고 있는 것(멤버 변수, 프로퍼티) → 없다. O..
-
디자인 패턴 스터디 기록 (1)✏️ 스터디 모음집/디자인 패턴 스터디 2022. 10. 27.
이전에 사내에서 진행 했던 클린코드 스터디에서 처음 접했 던 어댑터 패턴을 실무에도 적용해 보면서 다음에는 디자인 패턴에 대해 더 공부하면 좋겠다는 생각이 들었고 팀원들에게 디자인 패턴 스터디를 제안했다. 스터디는 헤드퍼스트 디자인 패턴 책을 메인으로, 자바스크립트 디자인 패턴책을 부교재로 정해 매주 2개의 패턴을 알아가는 식으로 진행하기로 했다. 스터디를 진행한다는 소식에 다른 팀에서 게임을 개발하시던 개발자 분들도 최근 게임에 적용할 디자인 패턴을 공부 중이셨다고 스터디에 함께 합류 하기로 했다! 🎉 그러면서 아래 사이트를 추천해 주셨다! 역시 사람이 많이 모여야 여러 정보가 쌓이는것 같다. 앞으로의 스터디가 너무 기대 된다. https://www.patterns.dev/
-
YouTube 데이터와 친해지기 (1) - YouTube Analytics API VS YouTube Reporting API🏢 업무 리서치 기록 2022. 10. 27.
회사에서 YouTube 데이터 관련 이슈가 들어왔다. YouTube 채널들의 구독자수, 조회수 등 지표를 YouTube 스튜디오를 통해 관리하고 있는데 이 YouTube 스튜디오에서 제공하는 분석기능에 불편한 점이 많은 것 같다. 불편 한 점 중 몇가지를 적어보면 비디오 갯수가 500개로 제한이 걸려있어서 500개 이상의 비디오들의 구독자 수, 조회 수 등 지표를 확인하고 싶을 경우 수동으로 일일이 그룹을 만들어서 지표를 뽑아야한다. 콘텐츠 관련 회사라 운영하는 채널들도 많고, 비디오 갯수가 500개가 넘어 관리가 쉽지 않은 상황인것 같다. YouTube에서 제공하는 API를 활용하면 이런 문제를 해결 할 수 있을것 같다는 생각에 업무자동화를 해보기로 하였다. 먼저 YouTube에서 제공하는 API는 크..
-
docker-compose 로 개발환경 구성✍️ 개인 스터디 기록 2020. 4. 24.
프로젝트는 다음과 같은 폴더구조로 Vue CLI 로 생성 된 gallery_app패키지가 들어있는 front 폴더와 express로 작성된 패키지 인 back 폴더로 되어있습니다. gallery_app ㄴback ㄴ package.json ㄴ front ㄴ gallery_app ㄴ package.json 1. Docker for Mac 설치 -> https://docs.docker.com/v17.09/docker-for-mac/install/#download-docker-for-mac -> docker-compose 도 같이 설치 되었는지 확인 $ docker-compose —-version 2. Front / Backend 폴더 구조 나누기 개발 단계에서 Front 와 Backend 각각 Dockerf..