내용 복습/Node.js (7) 썸네일형 리스트형 Jest 공부 3일차 1. TDD란테스트 주도개발(Test Driven Developmen)의 약자로 핵심 규칙중 하나는 먼저 테스트를 작성하고 그 다음 구현하는 것이다. 테스트 코드를 작성하면서 요구사항을 정확하게 인식하는 장점이 있다. 물론 대규모 프로젝트에 TDD를 적용한다고 해서 대규모의 테스트코드를 전부 작성하고 구현하는 코드를 작성하진 않는다. 기본적으로 작동하는 데 필요한 코드만 작성하고 테스트를 작성하는 방식으로 진행한다. 작동 상태를 먼저 구현하게 되면 어떤 기술, 디자인패턴을 사용할 지 아이디어가 생기고 나아가 무엇을 테스트 할지에 대한 개념이 생긴다. 프로젝트의 작동 상태가 확보되면 TDD 스타일로 코드를 작성할 수 있다. 즉, 테스트 주도 개발은 프로젝트의 기본 단계에서 시작하는 것이 아니라 이미 작동하.. Jest 공부 2일차 1. FIRST principalFast(빠름): 테스트가 빠르면 피드백을 신속하게 받을 수 있습니다. 특히 한개의 모음이 수천 개의 테스트로 이루어진 경우, 개발 속도를 위해 빠른 테스트는 필수적이다.Independent(독립성): 단위테스트는 다른 테스트에 영향받지 않고 독립적으로 시행되어야 한다.Repeatable(반복 가능): 동일한 입력에 대해 항상 같은 결과를 반환해야 합니다. 랜덤 값이나 날짜 값을 사용하는 테스트는 이 원칙을 지키기 어려울 수 있으며, 이 경우 모킹(mocking)을 사용할 수 있습니다.Self-validating(자기 검증): 개발자가 일일히 sout를 해보면서 값을 확인하는게 아니라 단위 테스트는 스스로 검증할 수 있어야 합니다.Thorough(철저함): 테스트는 가능한.. Jest 학습 1일차 이번에 jest 강의를 듣게 되었는데, 영문 강의라 번역을 다시 하는 불상사가 없도록 강의내용을 정리해보려 한다. 1. Jest를 왜 써야하는가?소프트웨어 테스트는 단순히 다른 코드를 실행하는 코드이고 소프트웨어 테스트는 단순히 다른 코드를 실행하고 어설션 또는 검사를 수행하는 코드입니다. 여기서 어설션이란 테스트를 위해 가정한 논리식으로 개발자가 참이어야 테스트를 통과하도록 지정한 식을 말한다.단일 테스트와 단위 테스트에 대한 가장 좋은 정의는 요구사항이나 명세서의 역할을 한다는 것이다.유닛테스트는 가장 작은 단위로 볼 수도 있겠지만, 메소드, 클래스, 모듈이라고 생각할 수도 있다. 따라서 단위는 별개가 아닌 함께 테스트 할 수 있는 작은 단위의 조합으로 볼 수 있다.가장 큰 장점은 테스트를 진행하면서.. 게임 개발 공부 2일차 웹서버와 다른 구조 1. 데이터 테이블 로드파일시스템을 사용하여 서버에서 필요한 데이터 테이블을 메모리에 로드할 수 있다. Node.js의 fs 모듈은 파일 시스템에 접근하고 파일을 읽고 쓰는 기능을 제공합니다. 동기적·비동기적 방식 모두로 파일 I/O작업을 수행할 수 있고, 파일 생성, 읽기, 쓰기, 삭제, 수정 등의 작업을 할 수 있어 다양한 형태의 파일기반 작업을 가능케 한다. 데이터 테이블의 관리 방법은 여러가지가 있는데, DB, CDN, file 등의 형태로 관리하게 된다. file의 형식으로 프로젝트를 진행했는데, 파일을 json형식으로 제공하고 그 파일을 지정해 그 파일의 내용을 사용할 수 있게 된다.1) 최상위폴더에 assets 폴더를 만들어 json파일을 넣는다. 소스코드가 아니니 src 밖에 위치한다.2).. express 5 변경점 정리 이번에 게임 개발팀에 들어가 서버를 만들게 되었는데, express가 올해 중순에 5버전으로 업데이트되었다는 소식을 듣고 이번 프로젝트에서 써보기 위해 변경점을 정리해보고자 한다. 일단 나는 4버전만 경험해봤고, 10년전의 3 -> 4의 마이그레이션보단 변경점이 적다고 한다. 아마 프레임워크가 많이 안정되어 있는 모양. 이번 프로젝트에서 prisma를 이용해 typescript도 적용해봐야 해서 할 게 많다. 제로초님의 유튜브 영상에 따르면 중구난방이던 메소드를 규격화하여 정리한 느낌이라고 합니다. api에 정규표현식이 들어가는 것을 수정했고, 써보지는 않았지만 기본적으로 이렇게 쓰면 응답속도가 느려진다고 한다. 특정 문법의 에러처리에 try-catch를 쓰지 않아도 처리가 되도록 수정했다고 하는데 기대.. error: MongoServerError: E11000 duplicate key error collection node.js에 mongoDB를 연동하다가 발생한 에러이다. 코드를 간소화하는 과정에서 skema의 필드의 이름을 좀 더 명확한 이름으로 정의하려고 원래의 프로젝트에서 이름만 변경했는데 post메소드를 thunder client로 시험하는 과정에서 문제가 발생했다. get메소드에서는 문제가 없어서 원래 필드와 다른 이름을 가진 데이터는 직접 삭제했기에 눈치채지 못했는데, post를 하면서 원래의 이름과 같은 필드명을 가진 필드에서 문제가 발생한 것이다. 그래서 몽고디비 아틀라스 사이트에 들어가서 직접 지워주고 다시 post를 시도하니 해결되었다. 이렇게 프로퍼티에 unique 문제가 발생했다는 표시가 있다. 이 문제가 발생한 필드를 지워주니 정상적으로 post메소드가 동작하였다. 에러 문제를 해결하기 전.. 함수와 변수선언 3가지씩 정리 *선언과 할당 - 선언 : 변수명을 자바스크립트 엔진에 알리는 것 - 할당 : 변수에 값을 저장하는 것(=할당연산자) => 변수선언은 '선언 - 초기화 - 할당'의 3단계를 거친다. 이를 lifecycle이라고도 한다. i)선언단계(Declaration phase) : 변수를 실행 컨텍스트의 변수 객체에 등록. 이 객체가 스코프가 참조하는 대상이 된다. ii)초기화단계(Initialization phase) : 선언단계의 변수 객체를 위한 메모리는 만드는 단계. 할당된 메모리는 undefined로 초기화 iii)할당단계(Assignment phase) : 사용자가 undefined로 초기화된 메모리의 다른 값을 할당하는 단꼐 *TDZ(Temporal Dead Zone) 직역하면 일시적인 사각지대라는 뜻인.. 이전 1 다음