본문 바로가기

Language/Node.js23

[JEST] Supertest Supertest란? supertest는 jest와 함께 사용하여 부분적인 테스트 뿐만 아니라, 원하는요청(Request) 를 이용해 반환(Response)된 정보를 검증하기 위해 사용되는 대표적인 테스트 라이브러리입니다. supertest는 저희가 구현한 Express.js를 이용해 통합 테스트(Integration Test)를 구현할 수 있는 테스트 라이브러리입니다. 대표적으로 Express의 서버를 구동시켜 가상의 API 요청(Request)을 보내고 원하는 결과가 발생하였는지 검증할 수 있습니다. 저희가 구현할 통합 테스트는 supertest 라이브러리 하나만을 이용해 테스트 코드를 구현할 것이 아닌, jest와 supertest를 함께 사용해 더욱 명확하게 테스트 코드를 구현할 예정입니다. su.. 2022. 12. 29.
[JEST] 테스팅 프레임워크 JEST Jest는 출시한지 얼마 지나지 않아 주목받았는데요, 페이스북에서 개발한 프론트엔드 라이브러리인 React.js와도 궁합이 아주 좋기 때문에 엄청난 성장세를 보이며 2020년 기준 JavaScript 개발자들 사이에서 가장 많이 사용되는 테스팅 프레임워크로 뽑혔습니다. Jest는 다른 테스팅 프레임워크와 비교하면 여러가지 장점이 있지만, 그 중 가장 제일이라고 생각되는것은 테스트 코드의 표현이 다른 프레임워크보다 훨씬 간결합니다. Jest Configs 설정하기 Jest의 경우 jest.config.js 파일을 정의하거나, CLI 환경에서 추가적인 옵션을 설정하여 커버리지를 출력하거나, 실시간 모니터링 등 다양한 기능을 사용할 수 있습니다. 특정 경로의 테스트 파일을 무시하고 모든 Test Case(ex.. 2022. 12. 29.
[JEST] 테스트 코드 테스트 코드란? 테스트 코드란 말 그대로 우리가 작성한 코드에 문제가 없는지 테스트하기 위해 작성하는 코드입니다. 흔히 테스트 기본 원칙이라고 불리는 "일곱 테스트 원칙"에서는 첫번째 규칙이 아래와 같습니다. Testing shows the presence of defects, not their absence 테스팅은 결함이 없는것이 아니라, 결함의 존재를 보여주는것이다. 테스트 코드를 작성하는 방법은 앞으로 같이 알아볼것이지만, 여러분이 테스트 코드를 작성하기 전에 반드시 머릿속에 박아두어야 할 말입니다! 테스트 코드를 작성하는 목적은 "내 코드가 멀쩡하다!" 라고 증명하기 위한게 아니고, "내 코드가 멀쩡하다면 이렇게 결과가 나와야 한다!" 라고 생각하셔야 합니다. 하나의 기능을 여러번 수정하다 보면.. 2022. 12. 29.
계층형 아키텍처 패턴 (Layered Architecture Pattern) 계층형 아키텍처 패턴 (Layered Architecture Pattern) 계층형 아키텍처 패턴(Layered Architecture Pattern)은 계층을 분리해서 관리하는 아키텍처 패턴이고, 현재 가장 흔하게 사용되고 있는 아키텍처 패턴 중 하나입니다. 단순하고 대중적이면서 비용도 적게 들어 모든 애플리케이션의 사실상 표준 아키텍처입니다. 어떤 아키텍처 패턴을 도입할지 확신이 없을 때에는 계층형 아키텍처 패턴은 좋은 선택지가 될 수 있습니다. 계층형 아키텍처 패턴은 어떤 경우든 계층을 분리해서 유지하고, 각 계층이 자신의 바로 아래 계층에만 의존하게 만드는 것이 목표입니다. 계층화의 핵심은 각 계층은 응집도(Cohesion)가 높으면서, 다른 계층과는 낮은 결합도(Coupling)를 가지고 있어야.. 2022. 12. 27.
아키텍처 패턴 (Architecture Pattern) 아키텍처 패턴 (Architecture Pattern) 아키텍처 패턴은 소프트웨어의 구조를 구성하기위한 가장 기본적인 토대를 제시합니다. 아키텍처 패턴은 각각의 시스템들과 그 역할이 정의되어 있고, 여러 시스템 사이의 관계와 규칙 등이 포함되어 있습니다. 검증된 구조로 개발을 진행하기 때문에 안정적인 개발이 가능합니다. 아키텍처 패턴을 도입할 경우 도메인이 복잡할수록 모델이나 코드를 더 쉽게 변경할 수 있다는 측면에서 큰 이익을 얻을 수 있습니다. 대표적인 아키텍처 패턴 저장소 패턴 (Repository pattern) 영속적인 저장소에 대한 추상화 서비스 계층 패턴 (Service layer pattern) 유스 케이스(Usecase)의 시작과 끝을 명확하게 정의하기 위한 패턴 작업 단위 패턴 (Uni.. 2022. 12. 27.
도메인 (Domain) 도메인이란? 개발자 대부분은 비즈니스 프로세스를 개선하거나 자동화하기 위해 일한다. 도메인은 이런 프로세스가 지원하는 활동을 의미한다. 가구 판매 회사의 도메인은 구매 및 조달, 제품 설계, 물류 및 배달 등 다른 분야를 뜻할 수 있습니다. 도메인(Domain) 예시 개발자 입장에서 온라인 서점을 구현해야 할 소프트웨어의 대상이 됩니다. 온라인 서점 = 소프트웨어로 해결하고자 하는 문제의 영역 = 도메인 (Domain) 한 도메인은 다시 하위 도메인으로 나눌 수 있습니다. 도메인 구성 : 주문, 회원, 혜택, 결제, 배송, 정산, 카탈로그, 리뷰 하위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공합니다. ex) 고객 → 물건 주문 → 결제 → 배송 → 혜택 제공 하위 도메인을 어떻게 구성할 지.. 2022. 12. 27.