목록전체 글 (134)
PracticeEveryday

프로젝트 방법론 - 프로잭트 개발에 적합한 방법론을 선택하는 일은 프로젝트 성공을 위한 첫걸음이다. 애자일 방법론 Agile : 민첩한 날렵한 - 애자일은 1970년대 윌리엄 로이스가 대형 소프트웨어 시스템 개발에 관해 제출한 논문에서 처음 등장하였으며, ' 스프린트 ( Sprint ) '라는 짧고 점진적은 개발 주기로 구성된 프로젝트 관리 방법론이다. - 각 주기는 제품이나 서비스 개발을 지속적으로 향상시키는 데 초점이 맞춰져 있다. 애자일 뱅법론은 애자일 선언 ( Agile Manifesto )의 4가지 기본 가치와 12가지 원칙에 바탕을 두고 있으며, 반복적이며 사람 중심적인 개발 방식을 취한다. 프로세스 1. 계획 : 고객과 주요 이해관계자들이 함께 프로젝트 개념화, 브래인 스토밍, 정의, 우선순..

Jest 시작하기 1. Jest 설치 yarn add --dev jest 2. package.json에 Test Script 추가 { "scripts": { "test": "jest" } } 3. 바벨 사용 yarn add --dev babel-jest @babel/core @babel/preset-env 4. babel.config.js를 프로젝트 루프에 파일 생성 후 현재 버전 Node를 대상으로 하도록 Babel 구성하기 // babel.config.js module.exports = { presets: [ [ '@babel/preset-env', { targets: { node: 'current', }, }, ], ], }; 5. TypeScript 사용 + 바벨 사용 ( 위 ) yarn add ..

Test Driven Developement - 테스트 주도 개발은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 개발자는 먼저 요구 사항을 검증하는 자동화된 테스트 케이스를 작성한다. 그런 후에, 그 테스트 케이스를 통과하기 위한 최소한의 코드를 작성한다. ※ 장점. 1. 코드의 모듈화 - 코드를 작성할 때 코드가 방대해지지 않고 모듈화가 이루어진다. 따라서 리팩토링이 쉬워진다. 2. 디버깅 시간 단축 - 구현한 기능이 요구사항을 충족하는지, 버그에 대한 낭비 시간도 줄여준다! 단위 테스트 Unit Test - 개발자가 수행하고 자신이 개발한 코드 단위를 테스트합니다. 소스 코드의 개별 단위를 테스트하며 사용 할 준비가 되었는지 확인하는 테스트 방법 - 개발 라이프 사이클의 ..

필요 패키지 - Swagger 형식에는 Yaml과 Json으로 설정하는 방식이 존재하는 데 Swagger 에서는 Yaml 방식을 정석으로 채택합니다. YAML 방식 YAML 방식 필요 패키지 npm install swagger-cli swagger-ui-express yamljs npm install -D @types/swagger-ui-express @types/yamljs swagger: "2.0" info: description: "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagge..

import User from "./user.js"; console.log(new User("kim")); // User { name: 'kim' } 모듈 ( Module 모듈, 교과목 단위 ) - 개발하는 어플리케이션의 크기가 커지면 언젠가 파일을 여러 개로 분리해야 하는 시점이 오게 됩니다 이 때 분리된 각각의 파일을 ' 모듈 ( Module ) ' 이라고 부르는 데 모듈은 대개 클래스 하나 혹은 특정한 목적을 가진 복수의 함수로 구성된 라이브러리 하나로 구성됩니다. - 자바스크립트가 만들어 진지 얼마 안 되었을 때는 표준 문법이 필요하지 않았지만 규모와 기능이 점점 커지고 복잡해짐에 따라 자바스크립트 커뮤니티는 특별한 라이브러리를 만들어 필요한 모듀을 언제든지 불러올 수 있게 해준다거나 코드를 모..

tsconfig.json - 매번 컴파일을 입력할 때마다 옵션을 추가하거나 제거하는 것은 매우 귀찮고 불편합니다. 명령어를 매번 입력하지 않고 보다 쉽게 사용하기 위해서 tsconfig.json을 만들어 사용합니다. tsc 옵션 더보기 Documentation - tsc CLI Options A very high-level overview of the CLI compiler options for tsc www.typescriptlang.org - tsconfig.json 파일이 있는 위치가 TypeScript의 루트 디렉토리로 결정됩니다. 이 파일에는 프로젝트를 컴파일 하는 데 필요한 루트 파일, 컴파일러 옵션들을 설정할 수 있습니다. TypeScript 프로젝트는 다음 방법 중 하나로 컴파일 됩니다. ..

@types - 자바스크립트로 만들어진 써드 파티 라이브러리 ( jQuery, lodash, chart 등 )을 타입스크립트로 사용하기 위해서는 각 기능에 대한 타입이 정의되어 있어야 한다. // app.ts import $ from 'jquery'; $(document).ready(); - 위 코드는 작동하지 않는데 제이쿼리 라이브러리 내부에 타입에 대한 정의가 있지 않기 때문이다. 이 라이브러리를 들고와 사용할 때 타입스크립트 파일에서 타입 추론을 할 수 없기 때문에 @types 라는 라이브러리를 설치해 주어야 한다. - 대중적으로 사용되는 자바스크립트 라이브러리는 대부분 @types 라는 별칭으로 타입스크립트 추론이 가능한 보조 라이브러리를 제공하지만 이 라이브러리가 없는 경우 스스로 선언하는 방법..

3rd Party - 하드웨어 생산자와 소프트웨어 개발자의 관계를 나타낼 때 사용한다. 그 중 서드파티는 프로그래밍을 도와주는 라이브러리를 만드는 외부 생산자를 말한다. Ex ) 프로그래밍 개발과 개발자 사이에 플러그인, 라이브러리, 프레임워크 등을 서드파티로 볼 수 있다. 서비스와 사용자 사이에 서드파티는 응용 프로그램, 애플리케이션, 웹 서비스로 볼 수 있다. 개발자 측면 1. 하드웨어 생산자가 ' 직접 ' 소프트웨어를 개발하는 경우 : 퍼스트 파티 개발자. 2. 하드웨어 생산자인 기업과 자사간의 관계 ( 또는 하청업체 )에 속한 소프트웨어 개발자 : 세컨트 파티 개발자 3. 아무 관계 없는 제 3자 소프트 웨어 개발자 : 서드 파티 개발자 주로 편한 개발을 위해 플러그 인, 라이브러리, 프레임워크를..

맵 - 객체 : 키가 있는 컬렉션을 저장함. - 배열 : 순서가 있는 컬렉션을 저장함. ※ 그러나 현실 세계를 반영하기에 위 두 자료구조만으론 부족하여 맵과 셋이 등장하게 되었씁니다. 맵 ( Map ) - 맵은 키가 있는 데이터를 저장한다는 점에서 객체와 유사합니다. 맵은 키에 다양한 자료형을 허용한다는 점에서 차이가 있습니다. new Map() - 맵을 만듭니다. map.set( key, value ) - key를 이용해 value를 저장합니다. map.get( key ) - key에 해당하는 값을 반환합니다. key가 존재하지 않으면 undefined를 반환합니다. map.has( key ) - key가 존재한다면 true, 존재하지 않으면 false를 반환합니다. map.delete( key ) -..

이터레이터 vs 배열 const array = [1, 2, 3, 4]; const iterator = (() => { let num = 1; return { next: () => { return num > 4 ? { done: true } : { done: false, value: num++ }; }, }; })(); console.log(iterator.next()); // { done:false, value: 1 } console.log(array); // [1, 2, 3, 4] console.log(iterator.next()); // { done:false, value: 2 } - 이터레이터의 경우 생성하면 기본적으로 next 함수 하나만 있다고 생각하면 편하다. next 함수에는 done과 va..