아이단은 어디갔을까

순간 순간이 소중한 목적지

Golang Fan-Out Fan-In 디자인

2019-01-16 Code Golang Aidan.bae
회사일을 바쁘다보니 이것저것 신경쓸게 많아 정리해야지정리해야지 하고 너무 늦게 글을 쓰는 감이 없지 않네요. 이어서 해보도록 하겠습니다. 이전 시간에 Pipeline 패턴을 알아봤는데 이를 좀더 활용해 Fan out Fan in 패턴을 알아보고자합니다. golang 멀티플렉싱 디자인패턴 중 하나인 Fan out Fan In은 큰 건물의 회전문을 생각하면서 이해하면 편합니다. prerequisites chan에 대한 이해를 토대로 pipe함수를 작성할 수 있다. Pipeline 디자인패턴을 숙지했다. Basic Fan의 사전적 의미는 선풍기, 환풍기, 회전문 같은 것입니다. 회전문처럼 생각했습니다. Continue reading

Golang Design Pattern - Pipeline

2018-08-12 Code Golang Aidan.bae
저번 시간에 채널 중심의 생각전환으로 하나의 작업 파이프를 만드는 방법을 배웠습니다. 이번엔 여러가지 작업 파이프들을 이어서 하나의 작업 파이프라인을 구축해봅시다. 혹시 이전 채널 중심 프로그래밍이라는 포스트를 놓치셨다면 보고오시길 추천드립니다. Why 작업 파이프라인을 구축해서 고루틴과 채널 활용을 극대화합니다. What 어떤 작업 파이프라인을 구성해볼까요? 이해하기 쉬운 설명을 위해 쉬운 작업들 위주로 예제를 구성해보았습니다. 0에서 99까지 랜덤한 수를 특정 횟수만큼 만들어내는 task 해당 랜덤한 수를 출력하는 task 숫자들을 제곱하는 task 마지막으로 그 제곱된 수들을 모두 더하는 task 총 4개의 작업이 있습니다. Continue reading

Golang Design Pattern - Bridge

2017-11-03 Code Golang Aidan.bae
브릿지 패턴 Bridge Pattern은 두 구현체 간의 강한 결합을 제거하기 위해서 사용하는 패턴입니다. 두 클래스 모두 추상화된 상위 클래스 또는 인터페이스를 가지게 되고, 의존성은 상위 클래스만 가지게됩니다. 제가 공부하고 있는 Golang Design패턴책은 프린트 예제가 있었는데 이해가 더 어렵다고 생각해 좋은 예제를 찾다가 게임개발에 맞는 예제 블로그를 찾았습니다.(아쉽게도 자바) http://effectiveprogramming.tistory.com/entry/Bridge-%ED%8C%A8%ED%84%B4 여기있는 무기 핸들러와 무기 간의 브릿지 패턴을 예로 Golang에 적용해서 이해해보았습니다. 위 다이어그램은 Weapon과 WeaponHandler라는 상위 인터페이스를 보여줍니다. 의존관계는 이 인터페이스들 간에만 존재합니다. Continue reading

Golang Design Pattern - Command

2017-11-01 Code Golang Aidan.bae
그림판이나 Photoshop을 사용해본 경험이 있다면! Ctrl+z키라는 마법의 주문 으로 우리는 우리가 했던 액션들을 취소해본 경험 유! 요구사항에 대한 캡슐화와 요구사항을 큐에 저장하거나 기록,취소 할수 있다는 장점! 명령패턴 게임프로그래밍을 접하면서 첫 디자인패턴을 공부했을때 만난 패턴 그땐 왜이렇게 어렵게 느껴졌었는지.. 유저의 요청사항(명령) 캡슐화! 요청사항과 큐를 이용해서 작업내역을 관리! 그냥 가볍게 위 두가지만 생각하면 편하다. 우선 Command Interface를 구현해보자. 스터디한 책에는 ConsoleCommand와 Excute만 있지만 그대로하면 재미없다. 실수가 많은 나는 Ctrl+z의 광팬, 도전해보자. Continue reading