[JavaScript] - 스코프 (Scope)
·
📜 Web Programming/JavaScript
스코프 (Scope) 스코프란 식별자가 유효한 범위이다. 모든 식별자는 "자신이 선언된 위치"에 의해 다른 코드가 식별자를 참조할 수 있는 유효 범위가 결정되는데 이것이 바로 스코프인 것이다. 스코프 개념이 없으면 같은 이름을 가지는 변수를 사용할 수 없게 된다. 그 이유는 같은 이름을 갖는 변수는 충돌을 일으키기 떄문이다. 스코프라는 유효 범위를 통하여 식별자인 변수 이름의 충돌을 방지할 수 있다. 스코프 내에서는 식별자가 유일해야 하지만, 다른 스코프에서는 같은 이름의 식별자를 사용할 수 있다. 스코프는 "네임스페이스"이다. 스코프의 종류 코드는 전역(Global, 코드의 가장 바깥 영역)과 지역(Local, 함수 몸체 내부)으로 구분되는데, 변수는 자신이 선언된 위치에 의해 자신이 유효한 범위인 스..
[데이터베이스] - 관계 데이터 모델 (Relational Data Model)
·
💻 Computer Science/데이터베이스
이번 포스팅은 데이터 모델링에 관한 기본적인 이해를 전제로 합니다. 데이터 모델링에 대해 알지 못하는 경우, 따로 공부를 하거나 "이 포스팅"을 참고한 후 이번 포스팅을 읽기 바랍니다. 관계 데이터 모델의 개념관계 데이터 모델에서 하나의 개체에 관한 데이터를 "릴레이션"에 담아 데이터베이스에 저장한다. 지금부터 릴레이션과 관련된 기본 용어들을 알아보도록 하겠다.관계 데이터 모델 기본 용어속성(Attribute): 릴레이션의 열을 의미하며, 각 속성은 서로 다른 이름을 이용해 구별한다.튜플(Tuple): 릴레이션의 행을 의미한다.도메인(Domain): 속성 하나가 가질 수 있는 모든 값의 집합을 말한다. 널 값(Null): 릴레이션에 있는 특정 튜플의 속성 값을 모르거나 적합한 값이 없는 ..
[JavaScript] - 함수 (Function)
·
📜 Web Programming/JavaScript
함수 개념 프로그래밍에서 함수는 일련의 과정을 "문(Statement)"로 구현하고 코드블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 쉽게 말하면 길고 더러운 코드를 한 단어로 축약한 것이다. // 함수 정의 function sum(x, y) { return x + y; } // 함수 호출 sum(2, 5); // 7 자바스크립트의 함수는 객체 타입의 값이며 여러 개 존재할 수 있고, 함수 또한 함수 리터럴로 생성할 수 있다. 입력값인 "인수(argument)"를 함수에 전달하여 함수를 호출하고, 호출된 함수는 코드블록의 문들을 일괄적으로 실행한 후 "반환값(return value)"을 반환한다. 함수의 구성요소는 다음과 같다. function 키워드 함수 이름: 함수 이름은 식별자이며, 함수 몸체..
[JavaScript] - 원시 타입과 객체 타입 비교 (Primitive type VS Object type)
·
📜 Web Programming/JavaScript
자바스크립트의 데이터 타입은 크게 원시 타입(Primitive Type)과 객체 타입(Object Type)으로 구분 가능하다. 원시 타입과 객체 타입의 특성을 알아보도록 하겠다. 원시 타입 원시 타입이 가지는 주요한 3가지 특성은 다음과 같다. 원시 타입의 값(원시 값)은 변경 불가능한 값이다. 원시 값을 변수에 할당하면 변수에는 실제 값이 저장된다. 값에 의한 전달이 이루어진다. 변경 불가능한 값 원시 타입의 값은 변경 불가능한 값이며, 읽기 전용 값이다. 원시 값에 할당한 변수는 원시 값 자체를 값으로 가진다. 이때, 변경 불가능하다는 것은 변수에 대한 것이 아니라, "값"에 대한 것이다. 변수는 재할당을 통해 변수 값을 변경할 수 있다. 상수는 재할당이 금지된 변수이다. (상수와 변경 불가능한 값..
[JavaScript] - 객체 리터럴 (Object Literal)
·
📜 Web Programming/JavaScript
객체의 정의 객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조로 변경가능한 값이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 이때 프로퍼티는 키(Key)와 값(Value)로 구성된다. 자바스크립트의 모든 값은 프로퍼티의 값이 될 수 있는데 프로퍼티의 값이 함수일 경우, 특별히 "메서드"라고 부른다. 객체는 결국 프로퍼티와 메서드로 구성된 집합체이다. 객체 리터럴에 의한 객체 생성 자바스크립트는 C++이나 Java와 달리 "프로토타입 기반 객체지향 언어"이기에 다양한 객체 생성 방법을 제공한다. 객체 리터럴 Object 생성자 함수 생성자 함수 Object.create 메서드 클래스(ES6) 이 중에서 가장 간편한 방법은 "객체 리터럴"을 사용하는 것이다. 중괄호 내에 0개 이..
[JavaScript] - 타입 변환과 단축 평가 (Type Conversions & Short-Circuit Evaluation)
·
📜 Web Programming/JavaScript
타입 변환 개요 자바스크립트의 모든 값에는 타입이 있으며, 값의 타입은 개발자의 의도에 따라 다른 타입으로 변환될 수 있다. 타입 변환은 기존 원시 값을 사용해서 다른 타입의 새로운 원시 값을 생성하는 것이다. 개발자 의도와 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진이 암묵적으로 타입을 변환하는 것을 “암묵적 타입 변환(Implicit Coercion)” 또는 “타입 강제 변환(Type Coercion)"이라고 한다. (타입을 변경하겠다는 개발자의 의도가 코드에 명백히 드러나지 않는다.) 개발자가 의도적으로 값의 타입을 변환하는 것을 “명시적 타입 변환(Explicit Coercion)” 또는 “타입 캐스팅(Type Casting)"이라고 한다. (타입을 변경하겠다는 개발자의 의도가 코드에 드러..
[Next.js] - Next-Auth 라이브러리를 통한 로그인 기능 구현
·
📜 Web Programming/Next.js
Next.js에서 로그인 구현 Next.js 프로젝트에서 로그인 기능을 구현할 때, Next-Auth 라이브러리를 사용하면 간편하게 로그인 기능을 구현할 수 있습니다. (Next-Auth 살펴보기) NextAuth.js Authentication for Next.js next-auth.js.org Next-Auth 라이브러리 세팅하기 npm을 이용하여 터미널에서 Next-Auth 라이브러리를 간단하게 설치할 수 있으며, pages/api/auth/[...nextauth].js 파일을 만들어서 아래 코드를 작성하면 됩니다. npm을 통한 라이브러리 설치 $ npm install next-auth Next-Auth 서버 세팅 (Backend) // pages/api/auth/[...nextauth].js i..
loading