본문 바로가기

전체 글

(137)
Class와 OOP 코테스터디때 팀원들이 설명하면서 class,class하는데 나는 아직도 class가 뭔지 모른다. 딥다이브를 읽다보면 알겠지했는데 딥다이브에서 만나기전에 nestjs에서 만났다. 정확히 class가 뭘까? 1. Class class 객체 지향 프로그래밍에서 객체를 정의하기 위한 상태와 함수로 구성된, 객체를 생성하기위해 변수와 함수를 정의하는 틀이다. tree 라고도하는데 객체를 만들기위한 설명서라고 생각하면된다. class를 사용하여 새로운 객체(인스턴스)를 만들 수 있다. 클래스를 사용하는 이유는 동일한 종류의 객체를 여러개 만들어야하는경우, 같은 기능들을 하나로 묶어서 호풀하면 편하게 사용할수 있기 때문이다. class name{설명}의 설명대로 만들면 new name()의 새로운 인스턴스(객체) ..
제어문 제어문은 조건식에따라 코드블록을 실행하거나 반복문을 실행할때 사용한다. 코드는 보통 위에서 아래로 실행되는데, 제어문을 사용하면 실행순서를 인위적으로 제어할 수 있다. 하지만 인위적으로 제어시 가독성이 나빠지고 오류가 발생 할 수 있다. 1. 블록문 블록문은 자바스크립트에서 하나의 실행단위로 중괄호로 묶인 블록(코드블록)이다. { //블록문 let a = 1; } 단독으로 쓰이거나 제어문, 함수정의로 사용된다. 블록문은 항상 문의 종료를 의미하기때문에 세미콜론을 붙이지 않는다. 2. 조건문(conditional statement) 조건문은 조건식의 평가결과에따라 실행할 코드브록을 결정한다. if (a % 5 == 0) { /*조건식*/ return a; } 조건문에는 if..else문과 switch문의 ..
연산자 연산자란 연산자는 하나 이상의 표션식을 대상으로 산술,할당,비교,논리,타입,지수연산등을 하나의 값으로 만드는작업을 수행한다. 연산자는 피연산자를 연산하여 새로운 값을 만드는데 피연산자는 값으로 평가될 수 있는 표현식이여야한다. 연산자의 부수효과 대부분의 연산자는 다른 코드에 영향을 주지않으나 일부 연산자는 다른 코드에 영향을 주는 부수효과를 가지고 있다. 대표적으로 부수효과가 있는 연산자는 할당 연산자(=), 증감연산자(++/--),delete연산자가있다. 연산자 예시 = 변수 값이 변하는 부수효과가있으며, 변수를 사용하는 다른 코드에 영향을 준다. ++/-- 피연산자의 값을 재할당하여 변수를 사용하는 다른코드에 영향을 준다. delete 객체의 프로퍼티를 삭제하는 부수효과가있다.객체를 사용하는 다른코드..
Data Type 데이터타입은 값의 종류를 말하며, 자바스크립트의 모든 값은 데이터타입을 갖는다. 자바스크립트는 ES6에서 7개의 데이터 타입을 제시하며, 원시타입과 객체타입으로 분류할 수 있다. JavaScript의 데이터타입의 종류 Data(자료)란 프로그램이 처리할수 있는 모든것으로 자효형태에 따라 나눠놓은것을 자료형(DataType)이라 한다. 자바스크립트의 데이터 타입은 원시타입과 객체타입으로 나뉜다. 원시타입(Primitive dataType): 객체가 아닌 기본자료형이라고 하며, 변경불가능한 값으로 값에 의해 전달(pass-by-value)된다. 객체(참조)타입(Object type, Reference type):객체를 기반으로 하는 자료형으로, 참조에의한 전달(pass-by-reference)방식으로 전달된..
Nodejs 분명 nodejs는 크롬의 v8엔진을 사용한 런타임이라고 배웠다.근데 면접스터디에서 팀원이 "nodejs가 뭐에요?"라는 질문을했고, 나는 "자바스크립트를 기반의 크롬의 v8엔진을 탑재한 내pc에서 동작하는 서버입니다"라고 대답했다.그리고 팀원의 "엄밀히 말하면 틀렸습니다. 서버가 아닙니다" 라는 대답.다시공부하자..0. 등장 배경1. nodeJs란?nodejs를 한문장으로 말하자면크롬 브라우저의 V8 javascript 엔진을 탑재한 server side 오픈소스 javascript runtime이다.서버를 만드는 런타임 환경이지 nodejs가 서버는 아니다.JavaScript브라우저(크롬,사파리.웨일)에서 HTML의 생성부터 페이지의 기능을 동적으로 처리되도록 만들어주는 브라우저에서 실행되는 프로그..
SSH 오늘은 인턴 첫날~ 떨리는 마음으로 회사에갔다 오후 두시반에 미팅을 잡았기에 첫날이라 많이 배우지 못 할 줄 알았는데, 초기세팅부터 많은것을 알려주셨다. (git-Fork, Sem Ver, ssh를 이용한 git 레포지토리 접근, git subModule, bitBucket, SSH 등..) 그중 오늘의 목표는 SSH와 bitBucket, NVM으로 노드 버전 낮추고 ProseMirror과제파일 실행하기였다. 오늘한것 중 한번도 해보지않았던것은 SSH라서 오늘의 배운것으로 골랐다. 1.SSH Secure Shell(암호화된 셀)의 약자로, 네트워크를 통해 안전하게 원격으로 다른 컴퓨터에 접속하고 명령을 실행하는 프로토콜 및 프로그램이다. 즉, 암호화를통해 데이터를 보호하고 무단접근을 방지하여, 원격으로 ..
표현식과 문 변수는 하나의 값을 저장하기위해 확보한 메모리공간자체 또는 그 메모리 공간을 식별하기위해 붙인 이름으로 변수에 할당되는 것이 값이다. 1. 값(value) 과 리터럴(literal) 1. 값 값은 표현식(statement)을 평가(evaluate),참조하여 생성된 결과를 말한다. 모든 값은 데이터타입을 가지며 메모리에 2진수(bit)로 저장된다. 2. 리터럴 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호("", ., [], {})를 사용하여 값을 생성하는 표기법이다. js에서 3은 단순한 숫자가 아니라 숫자 리터럴이다. 사람이 이해하는 숫자 3을 사용해 숫자 리터럴 3을 코드에 기술하면 자바스크립트 엔진이 이를 평가하여 숫자 값 3을 생성한다. 리터럴의종류 종류 예시 종류 예시 정수 1 객체 {..
Hoisting(호이스팅) 1. 호이스팅이란? 호이스팅이란 인터프리터가 모든(함수,변수)선언문의 메모리공간을 선언전에 미리 할당하여 상단으로 올려서 선언문을 유효범위의 최상단으로 옮겨진것처럼 작동하는 자바스크립트의 독특한 특징을 말한다. ✅ 유효범위? 변수에 접근할 수 있는 범위 ✅ block-level-scope? {}로 쌓여진 범위, let,const로 변수생성시 유효한 범위. ✅ function-level-scope? function(){}의 {}내의 범위, var로 변수생성이 유효한 범위. ✅ 유효범위의 최상단? 변수가 함수안에 정의: 선언문이 함수의 최상단으로 호이스팅 된다. 변수가 함수밖에 정의: 선언문이 전역의 최상단으로 호이스팅 된다. 아래의 코드를 보면는 인터프리터에의해 위에서부터 한줄씩 실행되기때문에 refere..