분류 전체보기

    [JavaScript] Clean Code JavaScript

    3. Functions 이 게시물은 Rober C. Martin의 책 Clean Code 를 자바스크립트에 맞게 조정한 Ryan McDermott의 깃허브 리포지토리를 직접 타이핑함으로써 학습의 목적으로 작성하게 되었으며 3. Functions 의 부분에 해당합니다. 1. 함수 인자는 2개 이하가 이상적이다. 함수의 인자, 매개변수가 많아진다는 것은 그 함수에게 너무 많은 역활을 부여하고 있는 것이 아닌지 생각해 보아야 한다. 함수는 인자를 1 ~ 2 개 가지고 있는것이 가장 이상적이며 만일 3개 이상의 인자를 가져야 한다면 그러한 인자들로 구성된 하나의 객체를 함수의 인자로 넘겨주자. 함수 내부에서는 넘겨받은 객체를 ES2015/ES6 의 구조분해할당 을 통해 개별 변수에 값을 할당하여 사용할 수 있다..

    [RESTful API] REST API란 무엇인가?

    1.REST란? REST란, “웹에 존재하는 모든 자원(이미지, 동영상, DB 자원)에 고유한 URI를 부여해 활용”하는 것으로, 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미한다고 합니다.. 2. RESTful API 이러한 REST의 형식을 따르는 시스템을 RESFful 하다 라고 부를 수 있으며 이러한 HTTP URI 와 HTTP Method(Get, Post, ...)를 통해서 해당 요청의 REST 형식을 따르는 API를 말합니다. 3. RESTful API 구현하기 URL을 통한 자원의 표현 방법 과, HTTP method를 통한 API 동작의 정의 정도만 사용해도 훌륭한 REST API를 구현할 수 있습니다. 1. URL 표현법 REST API URL의 자원은 복수형으로 표현됩니다..

    [JavaScript] 프로토타입(Prototype), 클래스(Class)

    01. 프로토타입 1.1 프로토타입이란 객체지향 프로그래밍의 중요한 개념 중 하나이다. 동일한 타입의 객체이지만 속성 또는 메소드가 조금씩 다른 객체를 생성하는 경우 프로토타입을 사용하지 않으면 각각의 객체들이 속성, 메소드를 개별생성, 개별소유 한다. 이렇게 될 경우 중복된 코드가 발생하고 메모리의 낭비, 퍼포먼스 저하 등이 발생할 수 있다. 자바스크립트에서는 이를 방지하기 위해 Prototype 이라는 것이 존재한다. 생성자함수의 Prototype을 정해주게 되면 동일한 속성, 메서드를 각각의 객체들이 참조하게 할 수 있게 된다. 1.2 객체의 프로토타입에 접근, 변경 하기 1.2.1 __proto__ 접근자 프로퍼티를 통해 접근하기 객체의 프토토타입에 직접 접근할 수는 없지만 __proto__ 접근..

    [JavaScript] var, let, const의 비교(+ 블록레벨 스코프)

    01. var 키워드는 어떤 문제가 있을까? var 키워드는 중복선언을 허용한다. (기존에 의도와 다르게 변수값이 다르게 할당되는 경우가 발생할 수 있다.) var 키워드는 함수 레벨 스코프만을 허용한다. (함수를 제외한 다른 문에서 선언된 함수는 모두 전역함수가 된다. 전역변수의 남발) var 키워드는 변수 호이스팅에 의해 undefined로 초기화 된다. 02. let 키워드 let 키워드는 동일한 스코프범위내에서 중복선언을 금지한다. (문법에러(SyntaxError)가 발생한다.) function을 포함한 모든 문의 코드블록({}) 을 지역스코프로 인정한다. let은 선언단계와 초기화단계가 구분되어 진행됨으로 _선언단계 후 초기화단계전 까지는 변수를 참조할 수 없는 구간_이 생긴다. 이 구간을 일시..

    [JavaScript] 스코프, 렉시컬환경

    1. 스코프(Scope)란? ​ Scope를 직역하면 범위, 영역 이라는 뜻입니다. 즉 자바스크립트에서의 스코프는 식별자(변수, 매개변수, 함수)가 유효한 범위 를 말합니다. 스코프(유효범위)는 함수, 변수 등이 선언되는 환경을 기반으로 합니다. ​ var x = 'global'; ​ function foo() { var x = 'local'; console.log(x) } ​ foo(); console.log(x); ​x라는 변수를 전역환경과 함수내부에서 각각 선언을 해주고 다른 값을 할당해 주었다. 자바스크립트는 어떤 변수를 참조할까? 각각 전역 스코프 와 foo 함수 스코프 를 가짐으로 아래의 결과가 출력 // local // global 그러므로 스코프 란 식별자를 검색할 때 검색 가능한 범위 라..

    [자료구조] 선형구조(스택, 큐)

    선형구조 스택 (Stack) 한쪽 끝 에서만 자료를 넣고 뺼 수 있는 자료구조이다. 가장 나중에 들어간 자료가 가장 먼저 빠져나오는 후입선출, LIFO(Last In First Out)라고도 부른다. 자바스크립트에서는 데이터 끝에 자료를 집어넣는 push()와 끝의 자료를 제거하는 pop()을 이용하여 스택을 구현할 수 있다. 자바스크립트 기본메소드를 사용하지 않고 구현하기 class Stack { constructor() { this.stack = []; this.index = 0; } push(ele) { this.stack[this.index++] = ele; } pop() { if (this.index

    [Python] 파이썬 입출력 받기

    1. 파이썬 입력 1-1. 한줄에 한개의 문자 입력 받기 # String(문자열)형식으로 입력받기 input_data = input() # Integer(정수형)으로 입력받기 inputData = int(input())1-2. 한줄의 두개 이상의 문자 입력받기 # 문자열을 배열로만들어 각각이 변수에 할당한다. a, b = input().split() 1-3. map, list를 사용해 두개 이상의 데이터를 int로 변환하기 문자열 상태인 숫자들을 배열형태로 변환하고 각각의 요소들에 대해 int를 적용하여 정수형으로 변환후 map 상태를 list 메소드로 한번 더 감싸주어 list형태로 최종변환한다. # ex) 10 20 30 을 입력 data_array = list(map(int, inpput().spl..

    [JavaScript] 변수(Variable)

    변수란 무엇인가? 변수는 프로그래밍 언어에서 데이터를 관리하기 위한 핵심 개념이다. 하나의 값을 저장하기 위해 확보한 메모리 공간자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름이다. 변수는 왜 필요한가? 100 + 200 자바스크립트 엔진이 식을 계산하기 위해 알아야 할 부분 100, 200, + 기호가 뜻하는 바를 모두 알고 있어야한다. 100 + 200이라는 표현식의 의미도 해석(파싱)할 수 있어야 한다. 자바스크립트는 우선 좌변(100)과 우변(200)의 값(즉, 피연산자)을 메모리에 기억을 하고 CPU를 사용해 연산한다. 메모리 메모리 : 데이터를 저장할 수 있는 메모리 셀의 집합체이며, 메모리 셀 하나의 크기는 1바이트(8비트)이다. 컴퓨터는 메모리 셀의 크기, 즉 1바이트 단위로 데이터를..

    [JavaSCript] 자바스크립트 기본 내장객체 (Object, Number, Stirng, Date, Math, JSON )

    자바스크립트 내장객체란? 브라우저의 자바스크립트 엔진에 기본적으로 내장되어있는 전역범위의 여러 객체를 말한다. 수많은 객체들이 존재하며 이 객체들을 이용하여 우리는 많은 일들을 해낼 수 있다. 자바스크립트 내장객체의 종류 1) Object 객체 작성중 2) Number 객체 작성중 3) String 객체 작성중 4) Date 객체 1970년 1월 1일을 UTC(국제표준시) 00:00으로 부터 현재까지 지난 시간을 밀리초로 나타낸다. let date = new Date() // 매개변수가 없다면 date변수가 선언된 시간을 할당받는다. // 이렇게 할당된 date 변수에서 원하는 부분을 가져오고 싶다면 이러한 method들을 사용할 수 있다. date.getFullYear(); // 년도 date.getH..

    [JavaScript] 실행컨텍스트(Excution Context), 스코프체인, Variable Object

    실행컨텍스트란(Execution Context) 실행컨텍스트란 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념이다. 즉 실행 가능한 코드가 실행되기 위해 필요한 환경이다. 자바스크립트 엔진은 코드를 실행하기 위해 여러가지 정보를 알고 있어야 한다. 실행에 필요한 정보들은 아래와 같다. 변수: 전역변수, 지역변수, 매개변수, 객체의 프로퍼티 함수 선언 변수의 유효범위(Scope) this 가장 먼저 자바스크립트 코드가 실행되게 되면 실행컨텍스트 스택에 GEC (Global Execution Context)가 가장 아래에 놓이게된다. 그 후 코드를 읽어가며 실행가능한 함수를 만나게 되고 그 함수를 실행하게 되면 FEC(Function Execution Context)가 GEC 위에 쌓이게 된다. 이렇게..