변수 (Variable)란? 데이터를 쉽게 다루기위해 동일한 데이터가 등장하는 곳을 변수로 지정한다.
타입이란?변수에 할당할 수 있는 형태이다. 타입마다 다른 속성과 메소드가 있다.타입들string 문자열number 숫자boolean 참과 거짓undefined 정의되지 않음함수도 타입이다.타입 확인typeof() 를 사용한다.
상상의 기계상상의 기계를 만들어보자기계의 이름은 'mulTablePrinter'이며 재료 'num'을 넣고 버튼을 누르면 num의 구구단이 나온다.표현식은 다음과 같다.function 기계이름(재료 이름){작동방식}함수란?코드의 묶음이다. 버튼을 눌러 사용할 수 있으니
조건문이란조건문은 어떠한 조건을 판별하는 기준을 만드는 것이다.조건문에는 반드시 비교 연산자(comparison operator)가 필요하다.비교 연산자비교의 결과는 늘 Boolean 이다.아래 연산자들은 타입을 엄격하게 비교하지 않는다조건문 작성법연산자모음if구문이
문제수를 입력받아 짝수인지 여부를 리턴해야 합니다.나머지 연산자 : %왼쪽 피연산자 를 오른쪽 피연산자로 나눈후 나머지값을 구한다.수학식으로 풀이하면 13=(5x2)+3 이므로 3이 나오게된다.이를 이용해 짝수와 홀수를 구분할 수 있다.풀이
문자열이란?모든 글자의 나열을 문자열이라 한다.코드와 문자열을 구분하기 위해서 작은따옴표(')나 큰따옴표 (")를 사용한다.문자열은 string문자하나는 character, char 라 부른다.문자열의 길이 확인length라는 메서드를 활용한다.
반복문이란? 지정한 코드를 반복하게 하는 명령문이다. 같거나 비슷한 코드를 일일히 작성하지 않고 컴퓨터에게 연산하라 줄 수 있다. >for문 >>괄호에 초기화, 조건식, 증감문 순으로 넣어준다. >while문 >>괄호에 조건식만 넣고 초기화, 증감문은 따로 넣는다
HTML이란? >HyperText Markup Language의 약자로 웹페이지의 틀을 만드는 마크업 언어이다. Tag란? >HTML은 tag들의 집합으로 tag는 부등호()로 묶인 HTML의 기본 구성 요소 이다. 기본적으로 tag들은 쌍을 이루며 parent
CSS 란? HTML,CSS 와 JS는 웹 어플리케이션을 만드는 세가지 주축이다. 그 중에서 CSS는 스타일링을 담당한다. CSS는 화려함만을 위해 사용되지는 않는다. 더 나은 사용자 경험(UX, User experience)을 제공할 수 있다. 콘텐츠의 배치와 위
컴퓨터를 조작하려면 입력(Input)이 필요하다. 화면을 보기 위해 마우스를 사용하고, 메시지를 입력하기 위해 키보드를 사용한다. 입력을 담당하는 키보드나 마우스를 입력소스(Input source)라 한다. 반대로 입력소스에 의해서 또는 프로그램에 의해 모니터에 화면
Git은 버전 관리 시스템 중 가장 많이 쓰이며 협업에 유용한 도구이다. 오픈소스 생태계에 기여하는 개발자가 되보자. 버전 관리를 사용하는 이유 > 변경 이력을 저장할 수 있다. 이전 버전으로 돌아갈 수 있다. 어떤 변경 사항이 발생했는지 알아보기 쉽다. (누가 어떤
배열? >배열 이용해 수 많은 데이터를 한 번에 처리할 수 있다. 매번 새로운 변수를 선언한다면 같은 일을 여러번 반복하게 된다. 한 번에 여러개의 데이터를 사용할 때, 배열과 객체를 사용해 단 한 번의 선언으로 해결할 수 있다. 배열: 순서가 있는 값 순서: 인덱스(index) 인덱스의 값: 요소(element) 배열 생성과 요소 변경 > 대괄호를 이...
객체? 각기 다른 값을 가질 수 있지만 입력해야 하는 데이터의 종류가 동일한 경우 객체를 사용하면 쉽게 데이터 관리를 할 수 있다. 공통적인 속성을 가지는 경우 사용. 사용자를 추가해 보자 매번 이렇게 변수를 선언해야 할까? 배열을 써보자 음... 각 index가
Scope? 변수의 유효범위 Scope 규칙 안쪽 스코프 에서는 바깥쪽 스코프 사용 가능 바깥쪽 스코프 에서는 안쪽 스코프 사용 불가능 scope는 중첩이 가능하다. 가장 바깥쪽 스코프를 Global scope(전역 스코프)라 한다. 다른 스코프들은 전부 Loca
Closer? MDN에서의 Closer 정의에 따르면 >함수와 함수가 선언된 어휘적 환경의 조합을 말한다. 이 환경은 클로저가 생성된 시점의 유효 범위내에 있는 모든 지역변수로 구성된다. 간단히 정의하면 > Closer은 외변접내! 외부함수의 변수에 접근할 수 있는
원시 타입(primitive type) 데이터 >- 고정된 저장공간을 차지하는 데이터이다. 데이터 보관함의 한 공간에 값이 직접적으로 들어간다. number, string, boolean, null, undefined 등이 있다. 참조 타입(reference type
DOM? Document Object Model의 약자, HTML 요소를 JS의 Object처럼 조작할 수 있다. DOM을 다뤄 HTML을 단순한 문서에서 웹 앱으로 업그레이드할 수 있다. HTML에 JavaScript 적용 HTML과 같은 디렉토리에 있는 myScr
고차함수란?일급 객체(first-class citizen)의 세 가지 특징을 설명할 수 있다.고차 함수(higher-order function)에 대해 설명할 수 있다.고차 함수를 자바스크립트로 작성할 수 있다.
프론트앤드 개발을 위한 JavaScript 오픈소스 라이브러리이다.하나의 페이지를 보여주기 위해 HTML, Css, JS로 나눠서 작성하기 보다는하나의 파일에 명시적으로 작성할 수 있게 JSX (HTML과 JS가 결합한 문법) 를 활용한 선언형 프로그래밍을 지향한다.하
알아두고 가기객체의 속성(property)은 키-값 쌍을 의미한다.프로그래밍 패러다임이란 그 시대에 (인정된) 개발 방식이다.(ex. C언어)개체를 순차적으로 처리한다프로그램 전체가 유기적으로 연결되어야 한다.컴퓨터의 처리구조와 유사하며 실행 속도가 빠르다.엄격하게 순
주어진 문제를 비슷한 구조로 작게 나눌 수 있는 경우중첩된 반복문이 많거나 중첩 횟수를 예측하기 어려운 경우모든 재귀 함수는 반복문으로 표현할 수 있다. 하지만 대부분의 경우에재귀를 적용한 코드가 간결하고 이해하기 쉽다.문제를 추상적(간단하게)으로 정의한다.입력값, 문
자료구조란 여러 데이터의 묶음을 저장하고 사용하는 방법을 정의한 것이다.데이터는 분석하고 정리하여 활용해야만 의미를 가질 수 있다.데이터를 사용하려는 목적에 따라 형태를 구분하고 분류하여 사용해야한다.데이터를 체계적으로 정리하여 저장해두는 게, 데이터를 활용하는 데 있
자료구조의 그래프는 마치 거미줄처럼 여러 개의 점과 선으로 이어져 있는 복잡한 네트워크망의 모습을 가지고 있다.그래프는 관계를 표현한 자료구조이다.직접적인 관계라면 두 점 사이를 이어주는 선이있다.간접적인 관계라면 여러개의 점과 선에 걸쳐 이어진다.그래프에서 점은 정점
리소스가 존재하는 곳과 리소스를 사용하는 앱을 분리시킨 것을 2티어 아키텍처, 클라이언트-서버 아키텍처라고 부른다.손님(Client)이 점원(Server)에게 물품을 요청하고 점원(Server)은 물품을 담아 손님(Clinet)에게 응답한다 생각하면 이해하기 쉽다.보통
인터넷 리소스를 식별할 수 있는 문자열로 브라우저의 검색창의 주소가 URI이다.URI의 주요 요소로는 scheme, hosts, url-path, query, bookmark가 있다.URI의 하위개념으로,네트워크 상에서 웹페이지,이미지,동영상 등의 파일이 위치한 정보를
command + shift + J를 눌러 개발자도구(DevTools)를 연다.Network 탭을 클릭해 Network패널을 연다.개발자도구가 열려있는 상태에서 새로고침을 하면 페이지로드 네트워크 활동이 기록되고 볼 수 있다.하단의 총 요청 수와 전송된 총 데이터 양을
HTML과 같은 문서를 전송하기 위한 Application layer 프로토콜이다.HTTP는 웹 브라우저와 웹 서버의 소통을 위해 디자인되었다.HTT
JavaScript, DOM, Fetch, XMLHttpRequest, HTML 등의 다양한 기술을 사용하는 웹 개발 기법이다.가장 큰 특징은 웹 페이지에 필요한 부분에 필요한 데이터만 비동기적으로 받아와 화면에 그려낼 수 있다는 것이다.AJAX를 구성하는 핵심 기술은
REST는 네트워크 아키텍처 원리의 모음이다.REST API는 웹에서 사용되는 리소스를 HTTP URI로 표현하고 HTTP 프로토콜을 통해 요청과 응답을 하는 방식이다.단순히 HTTP 프로토콜을 사용하는 단계로, 해당 API를 REST API라고 할 수는 없다.REST
React의 개발 방식의 가장 큰 특징은 페이지 단위가 아닌 컴포넌트 단위로 시작한다는 점이다.페이지를 만들기 이전에 컴포넌트를 찾아내 먼저 컴포넌트를 만들고페이지를 조립해 나간다.장점테스트가 쉽고 확장성이 좋다.하나의 컴포넌트는 한가지 일만 해야한다.데이터는 위에서
Node.js가 설치되있는 상태에서 작업하고 있는 디렉토리에서 Express를 설치한다.npm install express종속 항목에 목록에 저장하려면npm install express --saveapp.METHOD(PATH, HANDLER)app: express의 인
Linux에서 사용하는 폴더와 파일에는 권한이 있다.권한은 Read, Write, Execute로 나뉜다.프롬프트에서 js파일 생성nano 파일명.jsctrl + x 나가기y 파일 저장 동의프롬프트에 ls -l을 입력하면 현재 위치에 있는 폴더와 파일들의 정보가 출력된
입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 알고리즘이효율적인 알고리즘이라 볼 수 있다.Big-O는 상한 점근, Big-Ω(omega)는 하한 점근,Big-Θ(theta)는 그 둘의 평균을 나타낸다.빅오 표기법은 프로그램이 실행되는 과정에서 소요되는 최악의 시
보이는 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법이다.현재 상태에서의 최적의 해답을 선택한다.선택한 해답이 문제의 조건을 만족하는지 검사한다.원래의 문제가 해결되었는지 검사하고, 해결되지 않았다면 선택 절차로 돌아가 위의 과정을 반복한다.매 순간, 최적이라 생
서로 다른 n개의 원소를 가지고 중복 없이 순서에 상관있게 r개의 원소를 선택 혹은 나열 하는것입출력 예시입력: 1, 2, 3출력: \[ 1, 2, 1, 3, 2, 1, 2, 3, 3, 1, 3, 2 ]서로 다른 n개의 원소를 가지고 중복을 허용하여 r개의 원소를 선택
JS에서 변수를 만들어 저장한 경우, 프로그램이 종료될때 해당 프로그램이 사용하던 데이터도 사라진다. 저장한 데이터가 프로그램 실행에 의존한다.파일을 읽는 방식으로 작동하는 형태이다.단점데이터가 필요할 때마다 전체 파일을 매번 읽어야 한다.파일이 손상되거나 복잡하고 데
기본키라 한다.Representative하나의 PK는 하나의 레코드를 대표한다.Unique유일한 값이다.named 'id' (usually)보통 id칼럼으로 명명되고 데이터베이스에 의해 자동 생성된다. (알아서 insert된다)MySql에서 생성외래키라 하며 단계 형성
node.js의 require메서드로 외부모듈 dotenv, mysql을 가져온다.dotenv.config 메서드를 이용해 .env를 process.env에 적용한다.SingletonBase의 자식클래스 DatabaseConnector 클래스에서.env의 정보를 가져온
MVC란 Model-View-Controller의 약자로 어플리케이션을 세 가지 역할로 구분한 개발 방법론이다.아래의 그림처럼 사용자가 Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시각적
이전 과정에 이어서 model을 작성해본다.server/db/index.js 파일에서는 데이터베이스와 서버 인스턴스를 연결하기 위해 mysql 모듈을 사용한다.server/models/index.js 파일에는 controller 에서 사용할 orders, items 모
(Object Relational Mapping)객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.객체 모델과 관계형 모델 간에 불일치가 존재하는데 ORM은 S
NoSQL은 매우 넓은 범위에서 사용하는 용어로, 관계형 테이블의 레거시한 방법을 사용하지 않는 데이터 저장소를 말한다.다음과 같은 경우에 많이 사용한다.비구조적인 대용량의 데이터를 저장하는 경우자유로운 형태로 데이터를 저장할 수 있으므로 필요에 따라 새로운 데이터 유
Hyper Text Transfer Protocol Secure Socket layer의 약자로HTTP over SSL(TLS),HTTP over Secure 이라고 부르기도 한다.HTTP 요청을 SSL 혹은 TLS 라는 알고리즘을 이용해 HTTP통신 과정의 내용을 암
서버혹은 DB에 유저 정보를 담는 방식의 세션 기반 인증 방식은매 요청마다 데이터베이스를 살펴봐야하는 부담이 있다.이 부담을 클러이언트에게 넘겨주는 방식이 고안되었다.토큰 기반 인증 중 대표적인 인증방식이다.클라이언트는 XSS, CSRF 공격에 노출이 될 위험이 있으니
직접 작성한 서버에서 인증을 처리해 주는 것과는 달리, OAuth는 인증을 중개해 주는 매커나즘이다.OAuth 2.0은 인증을 위한 표준 프로토콜의 한 종류로보안된 리소스에 엑세스하기 위해 클라이언트에게 권한을 제공하는 프로세스를 단순화하는 프로토콜 중 한 방법이다.유
웹 개발의 백엔드 영역에서의 발생하는 문제를 푸는 방법을 이해하고 사용하기 위해서는 컴퓨터 공학의 이론을 알아야 한다.2010년 이후, 유니코드라 불리우는 인코딩 방식으로 통일 되어있다.프로그래밍 언어마다 문자열을 다루는 자료형의 차이를 이해하기 위해선 기본적인 방식을
프로그램에서 더 이상 사용하지 않는 메모리를 자동으로 정리하는 기능이다.이 기능을 가진 언어나 엔진은 자바,자바스크립트,C한 객체에 flag를 두고 가비지 컬렉션 사이클마다 flag에 표시 후 삭제하는 mark and sweep 방법이다.객체에 in-use flag를
IP(인터넷 프로토콜) 주소를 컴퓨터에 부여하여 복잡한 인터넷 망 속 수많은 노드(서버 컴퓨터)를 지나 데이터가 목적지까지 무사히 전달되게 한다.IP는 지정한 IP Addredd에 Packet이라는 통신단위로 데이터를 전달한다.IP Packet은 소포로 비유할 수 있다
Git은 개발자들의 협업을 위한 최적의 툴이다.소프트웨어를 개발할 때에 개발자들은 동일한 소스코드를 함께 공유하고 다루게 된다.여러 사람이 동일한 소스코드를 기반으로 서로 다른 작업을 할 때에는 각각 서로 다른 버전의 코드가 만들어 질 수 밖에 없다.이런 경우, 여러
클라우드 등장 이전에는 흔히 말하는 전산실 등에 컴퓨터를 배치하고 인터넷을 연결하여 서비스를 제공했다.서버가 요청에 대한 수용 능력이 한계에 도달할 경우컴퓨터 한 대의 성능을 높이거나 더 많은 컴퓨터를 추가해야 했다.단점주기적인 관리가 필요하다.공간의 한계가 있다.추가
EC2 콘솔을 통해 EC2 인스턴스를 생성해야 합니다.간단한 서버 애플리케이션을 생성하고 EC2 인스턴스에 코드를 배포해야 합니다.서버를 실행시키고 브라우저에서 서버에 접속할 수 있어야 합니다.S3 콘솔을 통해 버킷을 생성해야 합니다.클라이언트 파일을 빌드하고 결과물을
MacOS 유저용 Docker Desktop 설치로 들어가 Docker를 다운로드한다.설치 후 앱을 실행해 보조프로그램들을 추가로 설치한다.설치가 완료되면 터미널에 docker --version 명령어를 입력해 확인할 수 있다.물자를 싣고 내릴 때에, 선박이 입항해 있
서비스가 규모가 복잡해지고 커질수록, 서비스를 배포하는 과정이 복잡해지고 소요되는 시간이 늘어나게 된다.서비스의 변경 사항이 생길 때마다 배포 과정을 매번 수동으로 진행한다면 많은 시간을 허비해야 될것이다.수동적이고 반복적인 배포 과정을 자동화함으로써 시간이 절약된다.