입사 후 처음으로 맡은 온보딩 태스크는 클린 아키텍처로 작성된 레거시 프로젝트를 리팩토링하는 작업이었다.AI 에이전트와 깐부를 맺은 나는 기존 구조를 파악하는 데 큰 자신감이 있었다. 결론부터 말하면 개망했다. 단순히 파일 구조를 파악하는 것과 비즈니스 로직의 전체 흐름을 이해하는 것은 전혀 다른 문제였다. 이에 근본적인 이해가 필요하겠다 생각했고, 내것으로 만들기 위한 과정에서 포스팅을 작성하게 되었다. 클린 아키텍처를 검색하면 나오는 것들이 있다. 동그라미 여러 개로 된 그 유명한 그림, Dependency Rule, Entities/Use Cases/Interface Adapters/Frameworks & Drivers... 처음 보는 사람 입장에선 뭔 소린지 감이 안 잡힌다. 이번 포스팅에서는 그..
시작하며개발 진행 중에 에러가 났고, 꽤나 쓸데없이 삽질을 해서 화가나는 바람에 기록하고자 글을 작성한다. TypeORM의 Date 반환내가 사용중인 Entity는 다음과 같았다.@Entity({ name: 'activity',})@Unique(['user', 'activityDate'])export class Activity extends BaseEntity { @PrimaryGeneratedColumn() id: number; @Column({ name: 'activity_date', type: 'date', nullable: false, }) activityDate: Date; @Column({ name: 'view_count', type: 'int', ..
시작 하며...Nest.js 와 같이 체계적으로 잘 설계되어 있는 프레임워크를 사용하다보면 아래와 같은 Decorator 들을 자주 볼 수 있다.import { Injectable } from '@nestjs/common';@Injectable()export class TestService { ... 내부 구현들 }}이때 이 @Injectable() 데코레이터를 달아주면 어떤 기능이 있는지는 알고 있었지만, Typescript에서 제공하는 Decorator 가 정확하게 어떤 역할을 하는지 잘 모르고 있었던 것 같아 별도로 공부가 필요하다고 생각하게 되어 글을 쓰기 시작했다. 본 글에서는 데코레이터를 공부하며 알게된 개념들을 함께 정리해본다. 함수 == 일급 객체오늘 주제를 이해하기 위해서 선행해서 알..