깃은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다.인터넷 저장소에 나의 작업 물을 올릴 수 있다. 내 작업 물들을 깃과 연결해보자.먼저 터미널을 열어준 뒤, 작업 위치는 터미널의 깃을 연결시킬
Template literals:내장된 표현식을 허용하는 문자열 리터럴여러 줄로 이뤄진 문자열과 문자 보관 기능을 사용할 수 있다. ${expression} 문자열 로 사용이 가능하다.이중 따옴표 나 작은 따옴표 대신 백틱을 이용. 두 줄 표현 가능 플레이스 홀더를
구조분해할당 : 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 JavaScript 표현식할당할 변수들을 선언하면 배열이 차례대로 그 변수에 할당이 된다.일부 반환 값 무시하기배열의 나머지 할당하기나머지 요소의 오른쪽 뒤에 쉼표가 있으면 Syn
데이터 전송방법에 대해 알아보자 HTTP / API / Graphql / Rest데이터 전송 실습을 직접 해보자 Postman / PlaygroundFTP : 파일 SMTP : 간단한 메일 HTTP : 텍스트/하이퍼텍스트 front-end에서 state를 바로 DB로
다른 함수의 인자로써 넘겨진 후 특정 이벤트에 의해 호출되는 함수. 어떠한 이벤트가 발생한 후 매개변수로 전달한 함수가 다시 호출되는 것을 의미한다.callback은 쉽게 말하자면 어떤 일을 다른 객체에게 시키고, 그 일이 끝나는 것은 기다리지 않고 끝나고 부를 때까지
데이터를 주고 받을 수 있는 도구 중 하나.HTTP는 하이퍼 텍스트 전송 프로토콜의(Hypertext Transfer Protocol)의 약자. 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜인웹 서핑을 할 때 서버에서 브라우저로 데이터를 전
범위라는 뜻을 갖고있다. '변수에 접근할 수 잇는 범위'우리가 변수 혹은 함수를 선언하게 될 때 해당 변수 또는 함수가 유효한 범위를 의미전역에 선언되어있는 어느 곳에서든지 해당 변수에 접근할 수 있다.해당 지역에서만 접근할 수 있고, 지역을 벗어난 곳에서는 접근할 수
node를 사용하다 보면 프로젝트 내에서 흔히 봤던 package.json!과연 이것은 뭘까?배포한 모듈 정보를 담고자 만들어졌다.기몬적으로 CommonJs의 명세를 충실히 따르고 있으며 JSON 형식의 파일이다.직접 작성할 수도 있고 npm init 을 통해 만들어
TypeScript는 JavaScript 기반의, JavaScript에 추가적인 구문(type)을 추가하여 editor에서 초기에 코드의 오류를 잡을 수 있다.JavaScript의 상위 집합으로 JavaScript의 모든 기능이 있다.Javascript가 실행될 수 있
개발 협업을 하다보면 우리는 git을 사용하게 된다.만약 오류인 코드가 올라가면 다른 기능에게까지 영향을 줄 수 있다.이를 미연에 방지하기 위해 husky를 사용해준다.husky는 git commit 전 규칙을 지키며 코딩했는지 검증해주는 도구이다.규칙에 어긋나나는 코
사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴. 더 나은 업무의 분리와 향상된 관리를 제공한다.쇼핑 리스트 앱이 있다고 가정하자. 여기서 MVC 패턴을 살펴볼 것이다.데이터와 비즈니스 로직을 관리정보들의 가공을 책임지는 담당
Nest로 프로젝트를 만들었을 때 볼 수 있는 초기 구조이다.Nest js의 보일러 플레이트 (회사마다 다르다)app.controller.ts 는 컨트롤러를 담당app.module.ts 앱에서 사용하게 될 모듈을 설정하는 역할app.service.ts 는 비지니스 로직
schema는 데이터 베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타 데이터의 집합이다.Entity, Attribute, Relationship 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관한 것들을 전반적으로 정의한다.데이터 베이스를 구성하
분산 응용 프로그램을 설계했을때 단일 클라이언트의 요청을 충족하기 위해 원격 인터페이스에 여러 번 호출해 응답 시간이 허용 가능한 수준 이상으로 늘어났나면??그래서 나온 해결책이 DTO다.Data Transfer Object의 약자로 데이터를 전송을 위해 생성되는 객체
ERD는 Entity Relationship Diagram의 약자.데이터베이스 구조를 한 눈에 알아보기 위해 시각적으로 표현한 것.관계형 데이터베이스를 설계하는데 사용된다. ER스키마는 Entity는 테이블이 되고, 속성 및 데이터 베이스의 스키마가 된다.데이터베이스
소셜 로그인,, 그거 뭔데,,, 그거 어떻게 하는건데,,,우리가 웹사이트를 이용할때 로그인 혹은 가입하기를 한다면이렇게 네이버나 카카오 혹은 구글로 사이트에 회원가입을 직접 하지 않고 이미 가입되어있는 사이트를 통해 해당 사이트에 가입 혹은 로그인을 한 경험이 있을 것
후속 요청으로 서버로 다시 보내야하는 데이터를 저장한다.만료는 유형에 따라 다르며 만료 기간을 설정할 수 있다.쿠키는 주로 서버 측에서 읽기(클라이언트 측에서 읽을 수도 있음) 위한 것이며, - Local Storage 및 Session Storage는 클라이언트 측에
Json Web Token의 약자로 당사자 간에 정보를 JSON 객체로 안전하게 전송하기 위한 간결하고 그 문자안에 정보들을 정의하는 토큰 기반 인증이다.권한 부여JWT가 가장 많이 사용되는 예. 사용자가 로그인하여 JWT를 발급받으면 해당 토큰으로 허용되는 경로
로그인은 웹사이트 인증의 필수 요소이다.더 나은 보안 관점에서 조직은 기존 제품을 뛰어넘는 보다 강력한 등록 및 로그인 프로세스를 필요로 한다.웹 환경을 접근하려면 시스템 관리자와 보안 관리자가 사용자 계정을 설정해야한다. 계정은 사용자에게 컴퓨터의 일부 기능을 사용할
eslint eslint는 ES + Lint의 합성어로 자바스크립트 코드에서 발견되는 문제시되는 패턴들을 식별하기 위한 정적 코드 분석 도구이다. ESLint의 규칙들은 구성이 가능하며, 사용자가 지정한 규칙들을 정의하고 로드할 수 있다. 규칙 .eslintrc 디
Cross-Origin Resource Sharing 예전 express로 브라우저에서 받은 데이터값을 받아오려 했는데 CORS오류가 나서 받지 못했던 경험이 있다. port번호가 달라서 에러가 났는데 그때 cors 라이브러리를 다운받아 요청을 허용해 줬었다. co
primitive type (원시값) : JavaScript에서 원시값이란?객체가 아니면서 메서드도 가지지 않는 데이터를 말한다. 모든 원시 값은 불변하여 변형할 수 없다. 원시 값 자체와, 원시값을 할당한 변수를 혼동하지 않는 것이 중요.stringnumberbigi
범위라는 뜻을 갖고있다. '변수에 접근할 수 잇는 범위'우리가 변수 혹은 함수를 선언하게 될 때 해당 변수 또는 함수가 유효한 범위를 의미전역에 선언되어있는 어느 곳에서든지 해당 변수에 접근할 수 있다.해당 지역에서만 접근할 수 있고, 지역을 벗어난 곳에서는 접근할 수
프로미스는 자바스크립트 비동기 처리에 사용되는 객체이다.자바스크립트에서 비동기 처리란 ? 특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성언제 사용하는가 ?시간이 걸리는 작업을 할 때. (외부 api를 요청할 때)프로미스 쓰
undefined은 변수를 선언하고 값을 할당하지 않은 상태, null은 변수를 선언하고 빈 값을 할당한 상태(빈 객체)이다. 즉, undefined는 자료형이 없는 상태이다.따라서 typeof를 통해 자료형을 확인해보면 null은 object로, undefined는
"클라우드"는 인터넷을 통해 액세스 할 수 있는 서버와 이러한 서버에서 작동하는 소프트웨어와 데이터베이스를 의미한다. 쿨라우드 서버는 전 세계 데이터 센터에에 위치한다. 사용자와 기업은 클라우드 컴퓨팅을 사용하면 직접 물리적 서버를 관리하거나 자체 서버에서 소
프런트 엔드에 이미지 표시사용자에게 이미지 다운로드 권한 부여확장 가능한 방식으로 서버에 이미지 업로드이미지 데이터 검증이미지 처리, 자르기, 최적화 및 기타 작업 수행배너 및 썸네일과 같은 이미지 변형 만들기이미지 저장이미지 업로드 하는 모든 레코드에 이미지 연결.이
콘텐츠를 별도의 페이지로 나누는 사용자 인터페이스 패턴.페이지를 하단으로 스크롤 하여 숫자 행을 보면 해당 숫자는 사이트 또는 앱의 페이지 표시이다pagination을 사용하면 많은 양의 콘텐츠를 쉽게 찾고 여러 항목 또는 웹 콘텐츠를 여러 페이지로 분할하여 콘텐츠를
마이크로서비스는 소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식이다. 이러한 서비스는 독립적인 소규모팀에서 보유한다. 마이크로서비스 구조는 애플리케이션의 확장을 용이하
"this" 키워드는 모든 함수 대부에서 별도의 변수 선언 없이 사용이 가능.\->화살표 함수에서는 일반 변수와 동일하게 스코프 체인을 따라 탐색하게 된다. 함수 실행 방식에 따라 this의 의미가 달라진다.1\. Regular Function Call2\. Dot N
중복 선언 가능var 로 선언한 변수는 동일한 이름으로 여러 번 중복해서 선언이 가능함. 이와 같은 경우, 마지막에 할당된 값이 변수에 저장됨. 위의 예제를 보면 에러 없이 각기 다른 값이 출력되는 것을 볼 수 있음.이는 필요할 때마다 변수를 유연하게 사용할 수 있다는
Redis란 무엇인가? Redis는 빠른 오픈 소스 인 메모리 key, value 데이터 구조 스토어다. Redis는 다양한 인 메모리 데이터 구조 집합을 제공하므로
모두가 필요한 검색을 더 빠르게 찾도록 도와준다.텍스트, 숫자, 위치 기반 정보, 정형 및 비정형 데이터 등 모든 유형의 데이터를 위한 무료 검색 및 분석엔진으로 분산형과 개방형을 특징으로 한다.Apache Lucene을 기반으로 구축되었으며, 간단한 REST API,
복사본에 영희를 다시 넣었을 때, 복사본은 영희로 바뀌고 원본인 aaa에 철수 그래도 있어야 한다. 객체를 복사해보자 분명 프로필2의 이름만 바꿨는데 원본의 이름도 바꼈다. 객체와 배열은 저장을 하면 주소값을 갖고 있다.객체와 배열은 주소가 복사되어서 복사본
제네릭은 Java 등의 정적 타입 언어를 사용하던 사람에게는 익숙한 단어일지도 모르겠다. 그러나 JavaScript를 사용해왔던 개발자에게는 그렇지 않다.제네릭은 어떠한 클래스 혹은 함수에서 사용할 타입을 그 함수나 클래스를 사용할 때 결정하는 프로그래밍 기법을 말한다
검색은 어떻게 작동하는 걸까🤔 ???큰 틀을 말해보자면 사용자가 브라우저에서 검색어를 입력하고 검색 버튼을 클릭하는 순간검색어를 갖고 백엔드로 API요청이 들어간다.API는 DB에서 검색어를 찾아 다시 API에 돌려주고 백엔드에서 브라우저로 결과 값을 보여줄 것이다.
Object Relational Mapping 객체 - 관계 매핑객체와 테이블 시스템(RDBMs)을 변형 및 연결해주는 작업이다.ORM을 이용한 개발은 객체와 데이터베이스의 변형에 유연하게 대치할 수 있도록 해준다.ORM을 객체 지향 프로그래밍 관점에서 생각해보면, 관
Google에서 만든 큰 데이터에 대한 SQL 쿼리를 빠르게 수행하주는 Google cloud Platform의 서비스 중 하나.데이터를 빠르게 분석할 수 있다.자체 클러스터를 구성하고 운영하는 수고로움은 덜고, 데이터 분석에만 집중할 수 있는 툴로 많은 기업들에서 데
Load Balancer는 sever farm sever pool이라고도 하는 백엔드 서버 그룹에 들어오는 네트워크 트래픽을 효율적을 분산하는 것을 말한다.트래픽이 많은 웹사이트는 사용자 또는 클라이언트의 동시 요청을 동시다발적으로 처리하고텍스트, 이미지, 비디오등의
Virtual Private Cloud(VPC) 네트워크는 Andromeda를 사용하여 Google의 프로덕션 네트워크 내에서 구현되는 물리적 네트워크의 가상 버전이다. (Andromeda: 구글 네트워크 가상화 스택에 있다.) Compute Engine 가상 머신
미리 정의된 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템이다. 일반적으로 신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크(ex: 인터넷)간의 장벽을 구성한다.패킷 필터 네트워크 계층에서 동작하는 방화벽
ECMAScript(ES): 자바스크립트를 표준화하기 위해 만들어진, ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어객체와 함께 사용할 때를 제외하고는 변경 불가능한 변수. 특정 이벤트를 실행하는 버튼이나 특정 요소를 정의할 때 사용여
애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트 웨어 플랫폼이다.소프트웨어를 컨테이너라는 표준화된 유닛으로 패킹하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있다.환경에 구애받지
이러한 거래의 안정성을 확보하는 방법이 트랜젝션이다.DB에선 테이블에서 데이터를 읽어 온 후 다른 테이블에 데이터를 입력하거나, 갱신, 삭제하는데 처리 도중 오류가 발생하면 모든 작업을 원상태로 되돌린다.작업이 모두 성공했을 때만 최종적으로 DB에 반영이 된다.모든 부
동기 : 서버 컴퓨터가 작업이 끝날 때까지 기다리는 통신.하나 끝나면 다음 하나를 실행.비동기: 서버 컴퓨터가 작업이 끝날때까지 기다리지 않는 통신.서버에 요청(등록, 수정, 삭제 등) 저장이 될 때까지 기다리지 않고 다른 작업을 진행한다.기존에는 비동기를 동기로 바꿔
Object Oriented Programming의 약자로써 class와 object에 기반한 프로그래밍 패러다임(디자인 패턴) 이다. 관련된 데이터끼리 묶어서 class를 형성하고 그 안에서 object instance를 만듬으로써 프로그램을 디자인한다.코드의 재사용
Javascript는 스크립트 언어로써 브라우저가 있어야 사용가능Node.js는 브라우저 외(터미널 등)에서도 다양한 용도로 사용가능하다. Chrome의 console이 밖으로 나온것이라고 정리해놓은 블로그도 많다.nodejs는 chrome의 자바스크립트 엔진인 v8을
==은 Equal Operator이고,===는 Strict Equal Operator이다. a == b 라고 할 때, a와 b의 값이 같은지를 비교해서 같으면 true, 다르면 false라고 한다. (값만 같으면 true)Strict, 엄격한 Equal Operator
인스턴스의 부하를 모니터링해서 특정 이벤트에 대해 인스턴스를 추가 / 삭제 하는 기능을 제공하는 서비스.기준치를 초과하면 똑같은 인스턴스 그룹안에 하나의 백엔드를 자동 생성한다.자동으로 스케일아웃한다.규모 조정을 신속하게 설정: 직관적인 단일 인터페이스에서 여러 리소스
웹 사이트에 있는 특정 정보를 추출하는 기술. 보통 웹 사이트의 html을 긁어 온다. 한 번만 실행한다.이 정보들을 갖고오고 싶은데 어떻게 갖고와야할까 ?다 일일히 갖고 올 순 없다. 스크랩핑은 데이터를 한 번만 갖고오는데 언제 사용할까?discord가 naver를
CI는 간단히 요약하자면 빌드/테스트 자동화 과정 과정. CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다. CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되
TDD(Test Driven Development) 테스트를 기반으로 개발하겠다\-▶︎ 테스트를 먼저 만들고, 기능 만들기반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.기능이 없
쉽게 말하자면 docker의 관리자도커 vs 도커 컴포즈 vs 도커스웜<컨테이너> < 컨테이너 묶음 > <컨테이너 관리자>메소스 : 컨테이너 관리자도커스웜 : 컨테이너 관리자 도커에서쿠버네티스 : 컨테이너 관리자. 클라우드에
gitflow는 과거에 git 브랜치를 관리하기 위한 전략이었던 레거시 Git workflow다.Featrue 브랜치 등 여러 브랜치 들을 사용하여 개발하는 git 브랜치 모델이다.master : 배포 가능한 브랜치. 이 브랜치의 HEAD는 항상 production 상
Google Cloud Platform 인프라에서 자신의 빌드를 실행할 수 있게 해주는 서비스. Cloud Storage, Cloud Source Repositories, GitHub 또는 Bitbucket에서 소스 코드를 가져오고, 자신의 사양에 맞게 빌드를 실행하고
테스트 코드를 도와주는 라이브러리.테스트 그룹을 묶어주는 역할. 그 안의 콜백함수 내에 테스트에 쓰일 변수, 객체 들을 선언하여 일회용으로 사용할 수 있다.test. 한 테스트이 단위a + b의 기대값이 3과 같다면 true를 의미한다.참조 : \[JEST] jest
스키마 설계의 우선 순위 프로세스Schema-first는 코드가 스키마에 저장된 정의를 따르도록 접근하는 방식.장점 : 종속성 반전 원리 (DIP)를 따름으로써 더 추상적이고 덜 의존적이다.프론트엔드 및 백엔드를 동시에 허용하여 개발 시간을 단축한다.단점 :스키마 정의
원본 문자열을 알아볼 수 없는 난해한 문자열로 정의(표현)하는 과정.
사용자 측면에서 보자면 결제는 간단하고 금방 끝나는 일이다.그렇지만 개발자 측면에서 보자면 위의 그림처럼 결제 시스템은 결코 간단하지 않다는 것을 알 수 있다. 결제는는 카드결제, 계좌이체, 무통장 입금 등 종류가 다양하고 이에 따른 각각의 API 로직이 필요하다. 이
한 명령어로 linux에서 특정 작업을 주기적으로 실행하기 위해 사용한다.crontab은 일종의 작업 스케쥴러로 "매일 1시간 마다 이 작업을 실행하라" 또는 "이 작업은 10초마다 실행하라"와 같은 설정을 할 수 있다.크론탭 해당 처리 내역에 대해 로그로 남기고 싶을
Server performance Tuning? > 서버 무중단 배포