목록전체 글 (305)
Git git은 '분산 버전관리 시스템'으로 파일의 변경사항을 추적(파악)하고, 여러 명의 개발자들 간 작업을 조율하는 것에 도움을 준다. 쉬운 말로는 여러 명이서 하나의 프로젝트를 작업할 때, 소스 코드를 관리하기 편하게 해주는 것이 바로 git. 분산 버전관리 시스템 분산 버전관리 시스템은 다음의 예시를 들면 편하다. 내가 날마다 작업한 소스 코드를 저장한다고 한다면, 한 파일에 작업한 내용이 모두 덮어지는 것이 아니라, 엊그제 / 어제 / 오늘이 모두 각기 작업한 내용이 저장된다는 것이다. 이는 작업의 변경 사항을 보기 편할 뿐더러 백업에도 유용하다. 자주 사용하는 git 명령어 git init : 깃 명령어 사용 전 필수로 활용해줘야 하는데 명령어. 깃 저장소를 초기화한다는 의미다. git hel..
지난 nestJS 포스팅에서 OOP와 FP에 대해 잠깐 언급한 적 있다. 이름으로 보아 대략적으로 무슨 의미인지는 알 것 같기는 하나, 알 것 같은 것과 아는 것은 다르기에 포스팅을 해보려 한다. OOP (객체지향 프로그래밍) 객체지향 프로그래밍은, 그 말마따나 객체를 중심으로 하여 객체 간의 상호 작용을 통해 로직을 구성하는 방법을 의미한다. 여기서 객체란 실제 사물을 프로그래밍에서 모델링하는 것으로 각각의 속성과 메서드를 갖는다. * 속성 : 상태, 성질, 데이터 // 메서드 : 객체의 기능, 데이터를 조작하기 위한 연산을 의미한다. 사실 무슨 말인지 모르겠지만, 아래와 같은 느낌이 아닐까 싶다. let 개 = { 속성 : { 상태 : 건강함, 성질 : 사나움, 데이터 : 털이 김 }, 메서드 : {..
https://docs.nestjs.com/ 미래의 나에게 nestJS 설치 npx @nestjs/cli new 폴더이름 graphql 설치 yarn add @nestjs/graphql @nestjs/apollo graphql apollo-server-express 라이브러리 & 프레임워크 라이브러리 - 다른 사람들이 만들어 놓은 기능 (작은 기능) 프레임워크 - 라이브러리들이 모여있는 도구 모음 언어별 대표적 프레임 워크 (각 프레임워크는 의존성 주입(DI)을 지원한다.) 자바 : 스프링 파이썬 : 장고 자바스크립트 : NestJS NestJS nest.js 는 효율적이고 확장 가능한 node.js 서버를 구축하기 위한 프레임워크다. 자바스크립트와 타입스크립트 모두 호환이 가능하며, OOP(객체 지향프..
TypeScript Typescript 는 자바스크립트를 기반으로 '정적 타입 문법'을 추가한 프로그래밍 언어이다. 정적 타입 문법 (정적 타입 언어, 컴파일 언어) 정적 타입 문법이란, 변수를 선언할 때 명시적으로 변수의 타입(ex, String, Number,...)을 명시적으로 선언하며 그에 맞는 값을 변수에 할당하는 것을 의미한다. * 컴파일 타입스크립트는 자바스크립트와 달리 브라우저에서 실행하려면 파일을 한번 변환해 주어야 한다. 이 변환 과정을 우리는 컴파일(complile) 이라고 부른다. ** 그런 의미에서 자바스크립트는 변수를 할당할 때, '', {}, [], 등과 같이 각각 기호를 활용해 타입을 명시해주기에 정적 타입 문법이 아닐까 생각할 수 있지만 그렇지 않다. let test; co..
graphQL graphQL 은 rest-API 와 마찬가지로 API 를 생성하는 방식이다. 요청하는 데이터 크기와 상관 없이, 관련된 모든 데이터를 응답받는 REST 방식과 달리, GRAPHQL 은 요청하는 데이터 만큼만, 데이터를 응답받을 수 있다는 장점을 가진다. graphQL 을 구현하는 방식은 두 가지로 나뉜다. Schema-first 와 Code-first Schema-first 스키마 우선 방식(=schema-first) 는 2016년 graphQL 이 출시했을 때 처음부터 사용했던 방식이다. 스키마 우선 방식은 먼저 GraphQL 의 스키마에 대해 설계하고 정의한 후에 이후 API 기능을 추가하는 것에 중점을 둔다. 예시로 위와 같은 스키마를 먼저 작성한 뒤, 해당 스키마에 정의된 내용과 ..
재귀함수 재귀함수는 어떤 함수 내부에서 자기 자신을 부르는 함수이다. 어떤 측면에서는 조건을 만족하기 전까지 무한히 반복하는 while 문과 닮아있다. 재귀함수는 두 가지 조건을 충족해야 한다. 자기 자신을 함수 내에서 반드시 return 해야 한다. 무한히 실행되는 것을 방지하기 위해 종료 조건문을 작성해야 한다. // 재귀함수 예시 function recursion () { if()// 종료 조건문 recursion() // 자기자신 실행 } 어떤 면에서는 이게 말이 되는 문법인가 싶긴 하지만, 조건을 추가해주면 가능하다. 직접 만들어본 문제 전달인자 s(5)에 대해 반복적으로 1씩 차감한다고 할 때, 's
이전에 배열에서 스프레드 연산자를 활용하는 방법에 대해서 설명한 적 있다. 오늘은 객체에서 스프레드 연산자를 활용하는 방법까지 포함하여 포스팅해보려 한다. 배열에서의 스프레드 연산자 배열 복제 let arr = [1,2,3] let copyArr = [...arr] console.log(copyArr) // [ 1, 2, 3 ] // 기존 arr 변경 arr.pop() console.log(arr) // [ 1, 2 ] console.log(copyArr) // [ 1, 2, 3 ] 배열의 복제는 스프레드 연산자를 활용하여 위와 같이 사용할 수 있다. 기존의 배열이 변경되더라도 복제한 배열이 변경되지 않는다. (참조값 복사가 아닌 값 복사라는 의미다.) 스프레드 연산자를 활용한 구조분해할당 (rest 문..