본문 바로가기

JavaScript5

Node.js 카카오 로그인 및 DB INSERT 총정리 * 2022년 9월 16일 velog에 작성했던 게시글을 옮겨온 글입니다. 소셜 로그인, 그중에서도 카카오 로그인을 구현하기로 마음을 먹고 공식 문서를 펼쳤다. 처음엔 이해가 잘 안되는 게 당연하다고 생각하며 두세 번을 더 읽어봤지만 어떤 부분을 프론트엔드가 처리하고 어떤 부분을 백엔드가 처리해야 하는 건지 감이 오지 않았다. 일단 공식 문서는 덮어두고 구글링을 해봤지만 현 상황에 필요한 설명은 없었다. 그래서 카카오 로그인을 성공하고 나면 반드시 블로그에 정리하여 공유하겠다고 다짐했다. 답은 공식 문서에 다 있다. 정말 진부하지만 당연하게도 API를 배포한 사람들이 만든 공식 문서에 답이 다 있다. 이해하기 전까진 대체 무슨 소리인가 싶었지만 공식 문서만큼 친절한 자료도 없다. 그렇지만 외부 API 자.. 2022. 12. 31.
Node.js 카카오 로그인 유닛테스트 Unit Test (mockReturnValue) * 2022년 9월 16일 velog에 작성했던 게시글을 옮겨온 글입니다. 직접 만든 API가 아닌 외부 API를 이용하는 API를 테스트 하려면 외부 API를 목킹(mocking)해야 한다. 프로젝트 수준에서 일어날 수 있는 대표적인 상황을 예시로 들자면 소셜 로그인이다. 카카오, 구글 등 외부 API를 사용하여 정보를 얻어오고 해당 정보를 가공하여 GET, POST, DELETE, PUT, PATCH 등 API를 만들면 유닛 테스트를 작성할 때도 외부 API를 거쳐야만 테스트가 가능하다. // 카카오 로그인 API (DB 저장) const authDao = require("../models/authDao"); const jwt = require("jsonwebtoken"); const axios = .. 2022. 12. 31.
[]===[], {}==={} 는 거짓(false)이다 let arr = [1, 2, 3]; let arr2 = [1, 2, 3]; console.log(arr === arr2); //false 완벽하게 일치하는 두 배열을 비교하면 Boolean 값은 false이다. 이는 자바스크립트 자료형의 특징 때문이다. 총 8가지의 데이터 타입은 원시 자료형(primitive type)과 참조 자료형(reference type) 2가지 특징으로 나뉜다. JavaScript의 원시 자료형과 참조 자료형 원시 자료형은 선언될 때 변수에 값이 담기지만 참조 자료형은 주소(일명 reference)가 담긴다. string, number, boolean, undefined, null 등 이들은 "홍길동", 1, true와 같이 하나의 데이터만을 담는다. 반면 참조 자료형은 원시 .. 2022. 12. 31.
if문과 true&false * 2022년 9월 13일 velog에 작성했던 게시글을 옮겨온 글입니다. 일반적으로 프로그래밍 언어에서는 1을 true(참)으로 0을 false(거짓)로 여긴다. 일부 언어에서는(C++, Python 등)에서는 True, False(첫 글자가 대문자)라고 쓰기도 한다. 자바스크립트는 0, 1, true 그리고 false 말고도 더 많은 판단 기준이 존재한다. 어떤 값이든 존재만 한다면 true로 간주하고, 그렇지 않은 경우는 false로 간주된다. 참, 거짓의 판단이 중요한 이유는 조건문에서 아주 빈번하게 사용되는 기준이기 때문이다. 조건문 안의 값이 true이면 다음의 명령문(statement)을 실행하고, false이면 실행되지 않는다. 고로 앞서 나열한 네 가지 기준 말고 여러 경우를 알고 있다면.. 2022. 12. 31.
배열의 typeof는 Object이다 * 2022년 7월 21일 velog에 작성했던 게시글을 옮겨온 글입니다. 첫 언어로 자바를 선택해서 학습을 하다가 자바스크립트를 배우고 있는데 각각의 배열이 서로 다르다는 것을 알게 됐다(충격). 자바의 배열에는 같은 자료형이 요소로 들어가야 하고, 자료형 또한 배열이라고 출력된다. 그러나 자바스크립트의 배열은 배열이 아니다. 자바스크립트로 배열을 선언하고 typeof로 자료형을 찾으면 Object라고 보여준다. 즉, 배열이 아니고 객체가 자료형이라는 말이다. 내가 선언한 것은 무조건 배열인데 객체라고 나오는 이유를 이해하지 못해서 찾아보니 언어의 특성이었다. 자바스크립트에서의 배열에는 어떤 자료형도 요소가 될 수 있고 동시에 다른 자료형을 가진 요소들이 함께 들어갈 수도 있다. 또 다른 자료형 중 하.. 2022. 12. 31.