오늘 수업에서 MVC 패턴을 배웠다.MVC이란 Model - view - Controller 약자이다.위의 그림처럼 사용자가 controller를 조작하면 model을 통해 데이터를 가져오고 그 데이터를 바탕으로 view를 통해서 시각적 표현을 사용자에게 전달하게 된다
== 연산자=== 연산자JavaScript에서 값을 비교하기 위해 == 연산자와 === 연산자를 사용합니다.두 연산자는 값이 일치하면 true를 반환하며, 값이 일치하지 않으면 false를 반환합니다.==는 양 옆의 값을 비교하기 전에 강제 형 변환(Type Coerc
객체와 함께 사용할 때를 제외하고는 변경 불가능한 변수, 특정 이벤트를 실행하는 버튼이나 특정 요소를 정의할때 사용한다.변경 가능한 변수, 새로운 값을 가질 수도 있고 재할당도 가능하다.템플릿 리터럴은 내장된 표현식을 허용하는 문자열 표기법이다. +연산자를 사용하지 않
목차1\. 중복 선언 가능 여부2\. 재할당 가능 여부3\. 스코프 (Scope)4\. 호이스팅 방식var : 중복 선언 가능(기존에 선언했던 변수의 존재를 까먹고 값을 재할당하게되는 등의 실수를 저지르기 쉽다는 단점이 있다)let / const : 중복 선언 불가능(
javascript는 browser, document 등을 다루는 즉, client에 대한 개발을 하는 것이다.반대로 node.js는 backend를 다룰 수 있는 도구이다.JavaScript는 독립적인 언어가 아니라 스크립트 언어로써, 특정한 프로그램 안에서만 동작을
➡️ 바로 아래 단계의 값만 복사. 즉 참조형 데이터인 객체(Object)의 경우 객체가 가리키는 값들의 묶음을 가리키는 주솟값만 복사 !얕은 복사로 데이터를 복사 후 복사본에서 프로퍼티 값을 바꾸면,복사본과 원본은 모두 같은 객체를 바라보고 있는 상태에서 프로퍼티가
null과 undefined를 보이는 그대로 해석하면 ‘빈 값’과 ‘없는 값’을 의미하는 것처럼 보이지만 사실 큰 차이점이 있다. undefined와 null의 공통점 둘다 각각의 타입명(undefined, null)의 값이 유일하다. •undefined 타입의 값
﹒HTTP (Hyper Text Transfer Protocol)란,브라우저와 서버가 통신할 수 있도록 만들어주는 여러 프로토콜 가운데 한 종류로 웹 브라우저와 웹 서버 사이에 HTML(웹 문서를 만들기 위한 언어) 문서를 주고받는데 쓰이는 통신 프로토콜을 말한다.HT
•ES6이전에는 템플릿 문자열이라고 부르던 것을 ES6에서 템플릿 리터럴이라 부르게 되었다.•템플릿 리터럴이란 내장된 표현식을 허용하는 문자열 리터럴로 표현식 / 문자열 삽입, 여러 줄 문자열, 문자열 형식화, 문자열 태깅 등 다양한 기능을 제공한다.• +연산자를 사용
구조 분해 할당 문법은 배열 혹은 객체에서 각각 값(value)이나 프로퍼티(property) 를 분해하여 손쉽게 별도의 변수에 담을 수 있도록 해 줍니다.배열(array)에서의 구조 분해 할당let a, b = 10, 20;console.log(a); // 10con
•HTTP는 Hyper Text Transfer Protocol 의 약자로써 인터넷에서 데이터를 주고받는 프로토콜을 말한다. 쉽게 말해서 두 컴퓨터간에 텍스트 데이터를 주고 받는 길 이라고 생각하면 된다.•HTTP 라는 길로 요청(request) 와 응답(respons
•Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다.•Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 것이 포함
npm을 통하여 모듈을 설치하면 package.json에 버전이 명시되고, 반대로 package.json에 명시된 모듈을 해당 프로젝트에 설치를 할 수 있다.그만큼 프로젝트의 모듈 관리를 위한 아주 중요한 파일이다.package.json 에서 가장 중요한 항목은 "na
왭에 있는 특정 정보를 추출하는 기술원하는 정보를 추출하기 위해 봇이 특정 사이트에 콘텐츠를 다운로드하기 위한 HTTP GET 요청을 보냄사이트가 이에 응답하면 HTML 문서를 분석하여 특정 패턴의 데이터를 추출정확한 정보를 요구할 떄 쓰이는 스크래핑 기술프로그램으로
콜백이란? 다른 함수가 실행을 마친 뒤, 그 다음에 실행하는 함수 javascript에서 함수는 object(객체)이므로, 다른 함수의 인자나, 함수의 반환값으로 사용할 수 있다. 콜백함수란? 다른 함수의 인자로 사용되는 함수 다른 함수의 반환값으로 사용되는 함수
async와 await는 자바스크립트의 비동기 처리 패턴 중 가장 최근에 나온 문법이다. 기존의 비동기 처리 방식인 콜백 함수와 프로미스의 단점을 보완하고 개발자가 읽기 좋은 코드를 작성할 수 있게 도와준다.async function 함수명() { await 비동기처리
Nestjs는 효율적이고, 안정적이며, 확장에 용이한 서버 어플리케이션을 구축하기 위한 진보된 nodejs 프레임워크입니다.•NestJS는 Express와 같은 서버 프레임워크로, Express는 굉장히 쉽게 서버를 만들 수 있게 만들어 줬지만 시스템 디자인 측면에서
타입스크립트는 마이크로소프트(MS)에서 개발하여 2012년10월에 첫 출시되었다. 오픈소스 프로그래밍 언어로 어떤 브라우저나 호스트, 운영체제에서도 동작하며 자바스크립트이 상위 집합으로 자바스크립트이 모든 단점을 보완해 만든 언어이다. 동적인 자바스크립트의 언어에 타입
ORM(Object-relatinal mapping)이란 객체(클래스)와 관계(관계형 데이터 베이스)와의 설정을 의미 합니다.객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터 베이스는 테이블을 사용합니다. 여기서 객체 모델과 관계형 모델간에 불일치가 존재 하는데
스키마(Schema)란? 스키마는 DB의 구조와 제약 조건에 관한 전반적인 명세를 정의한 메타데이터의 집합입니다. 메타데이터(meta data) : 데이터에 대한 데이터로, 어떤 목적을 가지고 만들어진 데이터로 정의됨. 개체의 특성을 나타내는 속성(Attribute
최신 데이터베이스를 선택할 때 가장 중요한 결정 사항 중 하나는 관계형(SQL) 데이터 구조 또는 비관계형(NoSQL) 데이터 구조를 선택하는 것입니다. 둘 다 실행 가능한 옵션이지만, 사용자가 결정을 내릴 때 염두에 두어야 할 주요 차이점이 있습니다. > 목차 데이
Scope는 직역하면 "범위"라는 뜻이다.JavaScript 에서 Scope(스코프)는 변수에 접근할 수 있는 범위를 말한다.식별자(변수)를 찾기위한 규칙이라고도 한다.let x = 'global';function solution () { let x = 'functi
hoist1.(흔히 밧줄이나 장비를 이용하여) 들어 끌어올리다.2.(화물장애인을 들어올리기 위한) 승강 장치호이스팅이란 변수나 함수가 어디서 선언이 되든지간에 최상단에 위치하게 되어 동일 스코프 에서는 어디서든 참조 할수 있다는 것을 말한다.string("가나다", "
객체의 내부 로직을 감추고 외부에는 상대적으로 안정적인 부분만을 공개함으로써 데이터를 안전하게 보존하는 기법이다. 즉, 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. 객체
•오픈 소스 버전 관리 시스템(VCS: Version Control System)•로컬에서 버전 관리•소프트웨어 개발 및 소스 코드 관리에 사용git은 본인의 코드와 그 수정내역을 기록하고 관리하도록 돕는 버전 관리 프로그램이며, 로컬에서 프로젝트의 기록을 스스로 관리
JWT 는 JSON Web Token의 약자로 유저를 인증하고 식별하기 위한 토큰 기반 인증이다. JWT토큰은 세션과는 달리 서버가 아닌 클라이언트에 저장되기 떄문에 메모리나 스토리지 등을 통해 세션을 관리했던 서버의 부담을 덜어 줄 수 있다.토큰 자체에 사용자의 권한
평문(Plaintext) : 해독 가능한 형태의 메시지(암호화전 메시지)암호문(Cipertext) : 해독 불가능한 형태의 메시지(암호화된 메시지)암호화(Encryption) : 평문을 암호문으로 변환하는 과정복호화(Decryption) : 암호문을 평문으로 변환하는
Authentication(인증)은 사용자를 확인하는 과정이다. 로그인 시점이 해당 된다고 한다.Authorization(권한부여)는 클라이언트가 하고자 하는 작업이 해당 클라이언트에게 허가된 작업인지 확인하는 것이라고 한다. 일종의 권한부여와 가깝다.사용자가 로그인에
Web Storage의 개념은 키/값 쌍으로 데이터를 저장하고 키를 기반으로 데이터를 조회하는 패턴이다.그리고 영구저장소(LocalStorage)와 임시저장소(SessionStorage)를 따로 두어 데이터의 지속성을 구분할 수 있어 응용 환경에 맞는 선택이 가능하다.
유저가 누구인지 확인하는 절차, 회원가입하고 로그인 하는 것.유저에 대한 권한을 허락하는 것.로그인 한 후, 로그인이 필요한 서비스들을 사용할 때 해당 유저임을 확인하는 것(리소스에 접근 할 수 있도록 토큰을 확인하는 과정)• 인증은 내가 누구인지 확인하는 행위이다.•
이는 서로 다른 출처(origin)를 가진 주소로 요청이 들어왔을 때 발생할 수 있는 에러입니다.여기서 말하는 출처(origin)이란, port번호까지 포함한 url을 의미합니다.예를 들어 이러한 url(http://localhost:3000/tokens/ph
소셜 사인 인 (Social Sign-in) 또는 소셜 사인 온 (Social Sign-on)이라고도 하는 소셜 로그인은 소셜 네트워킹 사이트의 정보를 이용해 타사 애플리케이션과 플랫폼에 손쉽게 로그인할 수 있는 프로세스를 말합니다. 이 프로세스는 계정을 만들 필요 없
함수 또는 메소드를 호출한 대상에 실제 함수를 연결해주는 것입니다.함수를 호출하는 부분에 연결시켜줍니다.this는 '자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수'다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나
Redis는 Memcached와 비슷한 캐시 시스템으로서 동일한 기능을 제공하면서 영속성, 다양한 데이터 구조와 같은 부가적인 기능을 지원하고 있습니다. 레디스는 모든 데이터를 메모리에 저장하고 조회합니다. 인메모리 데이터베이스 구조입니다. 다른 인메모리 디비들과의 가
•처리되는 작업의 단위•데이터베이스에서의 Transaction 처리는 Business Logic 상 굉장히 중요한 기능•서로 다른 트랜잭션들을 처리하는 도중 하나의 단위 트랜잭션에서 에러가 발생한다면 이전 에 성공했던 트랜잭션들을 다시 rollback 시켜 데이터의
Iamport는 개발환경과 상관없이원하는 PG사와의 결제시스템을 연결시켜주는 결제 API 서비스입니다.실제로 아임포트가 제공하는 API( 결제 API, 결제취소 API 등 )를 사용하면PG사와의 연결 과정은 모두 아임포트가 대신 처리해주기 때문에복잡한 결제환경을 직접적
하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처를 말합니다.모놀리식 아키텍처는 마이크로 서비스 아키텍처와 반대되는 개념이다.모놀리식 아키텍처는 소프트웨어 프로그램의 전통적인 모델로, 자체 포함 방식이며 다른 애플리
Image Upload Process (이미지 업로드 절차) 란? 실제 이미지는 Storage에 저장하고, 주소를 활용해 처리하는 것. 이미지 업로드의 가장 기본적인 방식 브라우저에서 사용자가 업로드할 이미지 파일을 선택합니다. 브라우저에서 선택된 파일을 변수에
TDD란 Test Driven Development의 약자로 ‘테스트 주도 개발’이라고 한다.•일반적으로 개발 절차는 먼저 어떻게 개발할지 디자인하고 디자인을 바탕으로 실제 코드를 작성하고 최종적으로 테스트를 작동시켜보면서 해보는 과정이었다.•RED : 실패하는 테스
원시 타입은 모두 하나의 값을 담고 있다.문자(string)숫자(number)bigint불리언(boolean)nullundefined심볼(symbol) => ES6부터 추가된 타입 원시 자료형은 값 자체에 대한 변경이 불가능(immutable) 하지만, 변수에 데이터를
Linter의 기능느슨한 형식의 언어인 Javascript에서는 코드 에러가 자주 발생합니다.하지만 JavaScript는 동적 분석(프로그램을 직접 실행해서 코드를 분석 <=> 프로그램을 실행하지 않고 분석하는 정적 분석)을 하기 때문에 에러를 찾기 위해서는 코
Nest는 GraphQL 애플리케이션을 빌드 하는데 코드 우선 및 스키마 우선 등 두가지 방법을 제공한다.스키마 우선에서는 스키마를 작성하기 위해서 데이터 모델을 만들어여야 하는데 이를 나타내기 위해 SDL을 사용한다. (SDL은 Schema Definition Lan
ACID(원자성, 일관성, 고립성, 지속성)는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질을 가리키는 용어이다.트랜젝션은 분해가 불가능한 최소의 단위인 하나의 원자처럼 동작한다는 의미. 트랜젝션 내의 모든 연산들은 반드시 한꺼번에 완전하게 전체가
DNS는 도메인 이름을 IP 주소로 변환하는 기술이다. 하나의 도메인 이름을 라운드로빈(Round Robin) 방식으로 여러 개의 IP 주소로 변환한다면 이것만으로도 쉽게 부하 분산이 가능하다.첫째, 대부분의 클라이언트에서는 DNS 서버의 부하를 줄이고 성능을 향상하기
‘http’란 Hyper Text Transfer Protocol의 약자로 웹사이트에서 서버와 클라이언트 간의 정보를 주고, 받을 때 사용하는 통신 규약입니다.‘https’에서 s란 Secure의 약자로 서버와 클라이언트 간의 송수신되는 데이터를 암호화하여 전송하는 프
컴퓨터 보안에서의 비무장지대(Demilitarized zone, DMZ)는 조직의 내부 네트워크와 외부 네트워크 사이에 위치한 서브넷이다. 내부 네트워크와 외부 네트워크가 DMZ로 연결할 수 있도록 허용하면서도, DMZ 내의 컴퓨터는 오직 외부 네트워크에만 연결할 수
• 컨테이너 운영환경에서 컨테이너들을 적절하게 매니징하는 솔루션, 대표적인 컨테이너 오케스트레이션 툴이다.• 컨테이너 운영을 자동화하기 위한 도구이며 도커 관리자이다.•도커는 컨테이너라는 개념을 실제로 이식하여 운영하게 도와주는 도구. •Kubernetes는 다수의 도
서버리스는 클라우드 컴퓨팅의 모델 중 하나로 사용자가 서버를 직접 관리할 필요가 없는 모델을 의미한다.FaaS는 Function, 즉 함수를 서비스로 제공합니다.사용자가 작성한 코드(백엔드)를 서버리스 제공자의 서버에 업로드하게 되면 해당 서버는 업로드한 코드를 함수
CD(Continuous Delivery)의 약자로, “지속적 통합”을 뜻으로 개발을 진행하면서도 품질을 관리할 수 있도록 하는 것으로 여러 명이 하나의 코드에 대해서 수정을 진행해도 지속적으로 통합하면서 관리할 수 있음을 의미한다.(배포전까지의 과정을 의미)•버그를
클라우드 컴퓨팅의 대표적인 장점으로 필요에 따라 서비스를 빠르게 확장하거나 축소할수있는 유연성있다. 그중 오토스케일링은 클라우드의 유연성을 돋보이게 하는 핵심기술로 서버 사이즈를 자동으로 조절하는 서비스를 말한다. 이를통해 예상치 못한 서비스 뷰하에 효과적으로 대응하고
Generic은 어떤 클래스 혹은 함수에서 사용할 타입을 그 함수나 클래스를 사용할 때 결정하는 프로그래밍 기법을 말한다.기본적으로 Java와 같은 정적 타입의 언어는 클래스 또는 함수를 선언하는 시점에서 매개변수 또는 리턴 타입을 지정해야 한다.이때, Generic을
서브쿼리가 무엇인가? 서브쿼리(subquery)란 다른 쿼리 내부에 포함되어 있는 SELETE 문을 의미합니다. 서브쿼리를 포함하고 있는 쿼리를 외부쿼리(outer query)라고 부르며, 서브쿼리는 내부쿼리(inner query)라고도 부릅니다. 서브쿼리는 반드시
8주가 정말 정신없이 지나갔다....첫날부터 수업이 너무 힘들었고 끝나고 바로 과제가 주어진다. 과제를 하면서 나 자신이 너무 초라해졌다. 온라인 기간 동안 열심히 안 한 게 너무 후회됐다. 영타 또한 너무 느리고 알고리즘도 못했고 블로그도 해야 되고 너무 할 게 많았