전체 글

전체 글

    테스트 코드 공부 기록_ 20221006

    테스트 코드 공부 기록_ 20221006

    테스트 코드 테스트 코드 이 글은 jest를 활용한 TDD 하는 방법에 대한 내용은 아니다. layer가 나눠져 있는 환경에서의 테스트 코드 작성, 의존성을 활용해 mock 함수 제거에 대한 개인적인 고민이 담긴 글이다. 그렇기 때문에 해당 글이 정답 일리는 없고, 그냥 테스트 코드에 매우 미숙한 1년 차 주니어 개발자의 개인 공부 기록이다. 최근 테스트 코드를 제대로 작성해보고 싶어서 작년에 샀던 강의를 다시 들었다. 해당 강의는 간단한 CRUD 기능을 TDD로 개발하는 강의였다. 강의에선 javascript와 express, jest를 활용해 테스트코드를 작성했지만, 직접 해볼 땐 Typescript와 express, jest를 활용해 진행했다. 먼저 아래는 모든 비지니스 로직이 한 곳에 모여있는 코..

    AWS_CDK

    AWS_CDK

    AWS_CDK 최근 어떤 유튜브 영상에서 CS 세계의 방향성에 대한 얘기를 봤다. 인프라를 추상화해서 관리하고 비즈니스 로직에 집중하는 방향으로 흐른다는 영상이었다. 사실 개발을 처음 시작한 지 아직 1년도 안됐기 때문에 개발 업계의 방향성에 대해서 느껴지는 바는 없지만, 최근 AWS를 다룰 일이 많아지면서 AWS lambda, 서버리스 등의 단어를 자주 접했고, 해당 개념에 대해 궁금해 찾아보니 인프라의 추상화, 비즈니스 로직에 집중이라는 말을 어느 정도 이해할 수 있었다. 서버리스? AWS lambda? 서버리스는 서버가 없다는 뜻이 아니라 서버를 직접 관리할 필요가 없는 (혹은 적은) 아키텍처를 뜻한다. 일반적으로 알고 있는 Firebase 같은 서버리스 아키텍처는 BaaS로 Backend as a..

    헥사고날 아키텍처(포트 앤 어뎁터 아키텍처)_Express example

    헥사고날 아키텍처(포트 앤 어뎁터 아키텍처)_Express example

    클린 아키텍처 클린 아키텍처가 갖는 기본적인 목적은 관심사의 분리다. 각각 계층별로 관심사를 나누고, 도메인 (비즈니스 로직) 중심으로 설계해야 한다. 또한 프레임워크나 외부 UI에 의존하지 않아야 한다. 헥사고날 아키텍처 (포트 앤 어뎁터 아키텍처) 헥사고날 아키텍처는 클린 아키텍처와 거의 비슷하다. 둘은 도메인 (비즈니스 로직)을 인프라 (단순히 AWS와 같은 인프라 뿐만 아니라 view layer와 도 포함)에서 분리하는 것이다. → 위 그림은 클린 아키텍처 그림이다. 엔티티가 가장 안쪽에 있고, 의존성은 밖에서 안쪽으로만 존재한다. 그렇기 때문에 엔티티에 접근하기 위해선 계층을 전부 거쳐야 들어올 수 있다. → 해당 그림은 헥사고날 아키텍처의 그림이다. 클린아키텍처 그림과 동일하게 의존성은 밖에서..