전체 글

전체 글

    비즈니스 로직(Service layer)의 역할

    비즈니스 로직(Service layer)의 역할

    개발자로 일을 하다 보면 개발에 관련된 모든 것들은 추상화로 이루어져 있다는 생각이 들 때가 있다. 결국 개발 언어나 라이브러리, 프레임워크 전부 다 내부적으로 어떻게 구동되는지는 몰라도 결과값을 유추할 수 있고 해당 결과값들의 집합으로 완성된 서비스를 만들 수 있다. 서비스를 구현할 때 좋은 구조의 설계를 하기 위해 역할과 책임에 따라서 계층을 나누게 된다. 보통 3계층 아키텍처를 많이 사용하는데 구조는 아래와 같다. 1. 비즈니스 로직 비즈니스 로직은 서비스의 핵심 로직이라고 생각하기 때문에 Service 계층에서 구현하고 다른 계층의 문제가 전파되지 않게 아키텍처 설계를 하고 있다. 1-1. Service 계층에서의 의존성 회사에서 개발할 때 Service 계층에선 Repository 계층을 의존..

    객체지향적으로 머드게임 만들기 - DI 프레임워크 만들어서 리팩토링

    객체지향적으로 머드게임 만들기 - DI 프레임워크 만들어서 리팩토링

    1. 객체지향적으로 머드게임 만들기 (2022년) 2022년 말에 객체지향적으로 머드게임 만들기라는 주제로 회사 내부 세미나를 진행했었다. 객체지향적으로 간단한 머드게임 만들기 최근 회사 개발자 전원에게 '객체지향적으로 간단한 머드게임 만들기'라는 과제가 주어졌다. 기본적인 룰은 제공을 해주는 과제였다. 해당 자료는 해당 과제 발표자료이다. 게임 기초 룰 위의 joorrr.tistory.com 해당 세미나는 언어나 프레임워크에 제한이 없어서 Typescript로 프레임워크나 라이브러리 사용 없이 구현했었다. 그러면서 객체지향적으로 구현하기 위해서 역할과 책임에 따라 나누고 객체 간의 관계를 의존성 주입으로 설계했기 때문에 객체 간에 얽혀있는 의존성을 직접 관리해 줘야하는 불편함이 있었다. 아래는 그때 ..

    Reflect API

    Reflect API는 Reflection이라는 개념(런타임 시점에 사용되는 자신의 구조와 행위를 관리하고 수정하는 개념)이 들어간 자바스크립트 내장 객체로 Proxy와 같이 자바스크립트 명령 중간에 실행할 수 있는 기능이다. 1. Reflect.get, Reflect.set 대표적인 Reflect api로는 get, set이 있다. 먼저 MDN에 나와있는 Reflect.get 예제 코드를 보게 되면 아래와 같다 1-1. Reflect.get // Reflect.get(target, propertyKey, receiver?) // MDN 예제 코드 const object1 = { x: 1, y: 2 }; console.log(Reflect.get(object1, 'x')); // Expected out..