Web development

이제까지 프로젝트 하면서 사용한 API는 모두 REST API였다. 그렇기 때문에 이제까지 API가 다 똑같은 API 아닌가? 하고 생각했었는데 아니었다. REST API 컴퓨터와 서버가 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 API다. 일반적으로 우리가 사용하는 API가 대부분 REST API이다. 우리가 흔히 인터넷을 탐색할 때 브라우저에 웹사이트 주소를 넣고, 엔터를 치면 웹사이트가 나온다. 클라이언트에서도 우리가 흔히 API를 요청할 때 HTTP URL을 통해 해당 자원을 명시하고, CRUD Operation을 적용한다. **CRUD Create(생성), Read(읽기), Update(갱신), Delete(삭제)의 앞글자만 따서 만든 말로, UI의 기능을 지칭한다. 웹사이트를 들어가..
이제까지는 항상 import 앞에 모듈의 function명이나 변수명을 입력하면 vscode가 알아서 경로를 작성해줬는데 하나하나 내가 하려고 하다 보니까 경로 표시하는 것도 헷갈려서 제대로 쓰지도 못하는 내가 살짝 현타옴 이참에 정리해둬야지 절대경로 파일의 root부터 해당 파일까지의 전체 경로. 보통 다른 사람의 문서나 파일을 이용할 때 사용한다. 절대 경로는 어느 곳에서든 경로에 접근할 수 있다는 장점이 있지만 경로가 변경되면 경로를 일일히 수정해야한다는 단점이 있다. C:\Users\USER> cmd에서 긁어온 절대경로인데 이런 식으로 처음부터 하나씩 경로를 정확히 짚어 표기한다. 로컬디스크 C부터 시작해서 디폴트 경로까지도 몇 가지 경로를 거쳐 오는걸 알 수 있다. 상대경로 내가 현재 실행하는 ..
함수는 함수를 가리키는 식별자와 한 쌍의 소괄호인 함수 호출 연산자로 호출. 함수 호출 연산자 내에는 0개 이상의 인수를 쉼표로 구분해서 나열한다. 1. 매개변수와 인수 매개변수를 통해 인수를 전달하는 방식. 인수는 값으로 평가 될 수 있는 표현식이어야 한다. 함수를 호출할 때 인수를 지정하며, 개수와 타입은 제한이 없다. //함수 선언문 function add(x,y){ return x+y; } //함수 호출 var result = add(1,2); console.log(result); //3 매개변수의 스코프는 함수 내부에 한정되므로 함수 몸체 외부에서 해봤자 소용없다. 함수는 매개변수의 개수와 인수의 개수따위 신경쓰지 않는다. 많이 넣으면 많이 넣는대로, 적게 넣으면 적게 넣는대로 움직인다. 대신 ..
함수 정의란 함수를 호출하기 이전에 인수를 전달받을 매개변수와 실행할 문들, 그리고 반환할 값을 지정하는 것. *변수는 선언한다고 하지만 함수는 정의한다고 표현함. 함수 선언문이 평가되면 식별자가 암묵적으로 생성되고 함수 객체가 할당되기 때문. 1. 함수 선언문 //함수 선언문 function add(x,y){ return x + y; } //함수 참조 console.dir(add); //[Function: add] //함수 호출 console.log(add(2,5)); //7 함수 리터럴과 형태는 동일하지만 함수 선언문을 함수 이름을 생략할 수 없고, 함수 리터럴은 생략이 가능하다. 함수 선언문은 표현식이 아닌 문이기 때문에 함수 선언문을 실행하면 undefined가 출력된다. 표현식이 아닌 문은 변수..
1. 함수란? 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 마치 기계와 같아서 입력을 받으면 출력을 내보낸다. 함수는 입력을 받으면 매개변수를 통해 입력을 전달받는다. 호출할 때의 입력은 인수, 출력은 반환값이라 한다. 식별자인 함수 이름을 통해 특정 함수를 구별한다. 함수 정의 function add(x,y){ return x + y; } 함수 호출을 통해 반환값을 받는다. var result = add(2,5); console.log(result); 2. 함수를 사용하는 이유 - 실행 시점을 개발자가 결정할 수 있으며, 몇 번이든 재사용 가능하기 때문에 편리한 기능이다. - 코드의 중복을 억제하고 재사용성을 높이기 때문에 유지보수와 편의성 제고, 코드..
7가지 데이터 타입(숫자, 문자열, 불리언, null, undefined, 객체, 심벌)은 크게 원시 타입(primitive type)과 객체 타입(object/reference type)으로 구분할 수 있다. 원시 타입은 변경 불가능한 값(immutable value)이다. 반면 객체(참조)타입의 값은 변경 가능한 값(mutable value)이다. 하지만 처음에는 원시 타입도 변경을 해도 되는 것 같은 착각을 받는다. 암튼 원시값은 변수에 실제 값을 저장하지만, 객체를 변수에 할당하면 변수에는 참조 값이 저장된다는 차이점이 있다. 이 차이점으로 원시값과 객체의 값 변화에 대해 잘 알 수 있다. 1. 원시 값 1-1. 변경 불가능한 값 앞에서 말했듯 변경 불가능하다. 한 번 생성됐다면 원시 값은 읽기 ..
메서드 앞에서 말했듯 함수는 값으로 취급할 수 있기 때문에 프로퍼티 값으로 사용할 수 있다. 객체에 묶여 있는 함수를 메서드(method)라고 한다. var circle = { radius : 5, //얘는 일반 프로퍼티 getDiameter : function(){ return 2 * this.radius; //this(circle)의 radius 값을 뜻함 } //이 프로퍼티 값이 메서드 }; console.log(circle.getDiameter()); //10 프로퍼티 접근 프로퍼티 접근은 두 가지 방식이 있다. - 마침표 프로퍼티 접근 연산자(.)를 사용하는 마침표 표기법(dot notation) - 대괄호 프로퍼티 접근 연산자([])를 사용하는 대괄호 표기법(bracket notation) v..
자바스크립트는 객체(object)기반의 프로그래밍 언어이다. 자바스크립트를 구성하는 것들 중에 원시 값을 제외한 나머지 값은 모두 객체다. 함수나 배열 정규표현식 등등 원시 타입은 단 하나의 값만 나타내지만 객체 타입(object/reference type)은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조(data structure)이다. 원시 값은 변경 불가능한 값(immutable value)이지만 객체는 변경 가능한 값(mutable value)를 가진다. 객체는 0개 이상의 프로퍼티로 구성된 집합이고, 키(key)와 값(value)로 구성된다. 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있다. 이는 즉..
우리가 맨날 값(value)이라고 말하는 것은 표현식(expression)이 평가(evaluate)되어 생성된 결과를 말하는 것이다. 평가는 그냥 식을 해석하고 값을 생성하거나 참조하는 것이다. 1+2; //값은 3 모든 값은 각각의 데이터 타입이 있으며 비트의 나열인 2진수로 저장된다. 만약 데이터 타입을 구별하지 않으면 값이 이상해질 수 있다. 예를 들어 메모리에 저장된 값 0100 0001은 숫자로 65지만 문자로 해석하면 'A'이기 때문이다. 이처럼 데이터 타입을 구별하지 않으면 값이 이상하게 굴러간다. var age = 20+4; 여기서 우리는 age 변수에 20을 저장하는 것도 아니고 4를 저장하지도 않는다. 연산자를 통해 계산된 값인 24를 저장하는 것이다. 즉 우리는 변수에 '값'을 할당하..
식별자(identifier)은 계속 말했듯 어떤 값을 구별해서 식별할 수 있는 이름이다. 여기에도 네이밍 규칙이 있다. 1. 특수문자를 제외한 문자, 숫자, 언더스코어(_), $ 사용 가능 2. 숫자 시작은 안됨 3. 예약어는 식별자로 사용할 수 없음 여기서 예약어는 뭘까? 예약어는 프로그래밍 언어에서 사용되고 있거나 사용될 예정인 단어이다. 웬만하면 자주 쓰는 것들이라 많이 쓰다보면 알아서 기억할 것이다 await break case catch class const continue debugger delete do else default enum export extends false finally for function if implements* import in instanceof interface*..
문이과 통합형 인재(人災)
'Web development' 카테고리의 글 목록