반응형
반응형
Axios란? Axios는 자바스크립트에서 HTTP 통신을 쉽게 처리할 수 있도록 만든 라이브러리입니다. Node.js 와 브라우저에서도 사용할 수 있습니다. Axios에는 많은 기능들이 있어서, 쉽고 편리하게 데이터를 가져올 수 있어서 개발자들이 많아 사용하는 방법입니다. Axios 설치하기 npm install axios npm을 이용해서 설치 후 사용 가능합니다. Axios 사용법 node.js 환경에서는 선언해야 합니다. const axios = require('axios'); get 호출 axios.get('https://jsonplaceholder.typicode.com/todos/1') .then((response) => { // 요청 성공 시 처리 console.log(response.da..
Next.js 이란? Next.js Vercel 라는 회사가 만든 오픈 소스 프레임워크 입니다. React는 기본적으로 자바스크립트 라이브러리 입니다. Next.js는 React를 이용한 풀스택 프레임워크입니다. Vercel 이라는 회사가 조금 더 쉽게 React 프로젝트를 쉽게 관리하고 배포하기 편하게 만든 프레임워크 입니다. Next.js 장점 1. 서버 사이드 렌더링 (SSR) React.js는 기본적으로 클라이언트 사이드 렌더링(CSR)입니다. 그래서 페이지를 처음 조회하면 아래와 같이 div 하나만 렌더링이 되고, 그 이후에 브라우저에서 React JavaScript 코드를 실행화면 화면을 렌더링을 하게 됩니다. 물론, React에서도 서버사이드 렌더링을 할 수 있는 기능이 내장되어있습니다. 하..
React + TypeScript를 사용해서 카카오 로그인을 구현해 봤습니다. Next.js를 이용해서 개발을 진행하였습니다. 카카오 로그인 과정 1. 카카오 SDK 자바스크립트 불러오기 2. 카카오 SDK 초기 설정 Kakao.init(JAVASCRIPT_APP_KEY); 3. 로그인 요청 Kakao.Auth.authorize({ redirectUri: "http://localhost:3000/login", }); 로그인이 성공하게 되면 redirectUri에서 설정한 주소로 코드 값이 옵니다. ex) http:/// localhost:3000/login?code=12345 4. 코드 값을 보내서 토큰 받아오기 const response = await fetch("https://kauth.kakao.c..
npm vs Yarn vs pnpm npm, Yarn, pnpm 모두 자바스크립트나, node 프로젝트 패키지를 관리하는 도구입니다. 프로젝트 내에 있는 패키지 종속성을 관리하거나 빌드 프로세스를 용이하게 해 줍니다. npm(2010) ➡️ Yarn (2016) ➡️ pnpm(2023) 순서로 출시되었습니다. npm npm은 Node.js 패키지 관리 도구입니다. 세계에서 널리 사용되고 있습니다. Node.js 기본 패키지에 포함되어 있습니다. 설치방법 node 설치 시 자동 설치 Yarn 페이스북에서 만든 패키지 관리 도구입니다. npm 보다 가볍고 빠르다는 장점이 있습니다. 패키지를 다운로드할 때, 병렬로 처리를 하여 빠르고, 캐시를 이용하여 중북 된 패키지를 다운로드하지 않는다는 장점이 있습니다. ..
Vue에서 data 옵션을 이용해서 설정한 값은 바로 화면에 렌더링이 됩니다. 값을 변경하면 Vue는 변경을 감지하고, Vue과 관리하는 HTML 코드를 스캔하여 변경사항이 있는 값을 다시 렌더링을 합니다. const app = Vue.createApp({ data() { return { message: 'Hello, Superman', }; }, }); Vue는 어떻게 변경을 감지할까요? 자바스크립트의 내장 기능인 Proxy 객체를 이용해서 변경을 감지합니다. data 옵션으로 설정한 객체를 Proxy 객체로 래핑을 합니다. Proxy로 래핑 한 객체는 내부적으로 data의 속성을 추적하고 있습니다. name 값이 변경이 될 때마다, Vue는 바로 감지할 수 있습니다. const data = { nam..
JSDoc 이란? JSDoc을 자바스크립트 프로그램이나, API를 문서화하기 위한 스타일 도구입니다. 기본적으로 /** 을 작성하면 JSDoc Parser가 인식을 합니다. 별 한 개 또는 세 개는 인식을 하지 않습니다. 다양한 태그를 이용해서 정보를 저장할 수 있고, 문서화할 수 있습니다. /** * 두개 숫자 더하기 */ function add(num1, num2) { return num1 + num2 } JSDoc 장점 단순히 설명을 작성하는 것 외에도 장점이 있습니다. JSDoc 목적에 맞게 문서화를 할 수 있고, 타입을 미리 정의하기 때문에 IDE 자동 완성 기능을 사용할 수 있습니다. 생산성 향상과 오류 찾는 디버깅 시간을 줄일 수 있습니다. 자바스크립트 프로젝트에서 타입스크립트를 도입하기 어..
any let name: any; 타입스크립트에서 가장 유연한 성격을 가진 타입입니다. 모든 타입의 값도 받을 수 있습니다. 유연해서 많이 사용할 것 같지만 사용을 지양하는 것이 좋습니다. any를 사용하면 타입스크립트 컴파일러 작동을 하지 않아, 타입을 검사하는 부분이 없어지게 됩니다. 이렇게 된다면 일반 자바스크립트와 차이점이 없어지게 됩니다. 타입스크립트에서 어떠한 타입을 사용할지 정확하게 설정해주어야 합니다. unknown let name: unknown unknown 타입은 어떠한 값이든 저장이 가능합니다. 하지만, any 타입과는 다른 점이 있습니다. 값을 입력하고 값을 전달하려고 하면 에러가 발생합니다. 조금 더 제한 적입니다. any 보다 나은 점은 할 수 없는 작업이 에러가 발생한다는 점..
Props는 자식 컴포넌트에게 데이터를 전달할 수 있는 방법입니다. Vue3에서 타입스크립트를 이용해서 사용할 수 있습니다. Vue3에서 없이 Props 사용하기 export default { props: { name: { type: String, }, age: { type: Number, }, }, }; 으로 Props 사용하기 const props = defineProps({ name: { type: String, }, age: { type: Number, default: 20, }, }); 이 방법으로 사용할 수 있지만, 타입스크립트를 쓰는 의미가 없어서 다른 방법도 있습니다. interface로 타입 정의 하고 Props 사용하기 interface로 타입을 선언하과 defineProps 제네릭타입..
타입스크립트에서 물음표를 이용한 문법 3가지가 있습니다. 세 가지에 대해서 정리해보려고 합니다. 선택적 속성 Optional Propery -? type animal { name?: string } interface person { name: string } function add(num?: number) { return num; } 속성을 정의할 때 사용할 수 있습니다. 해당 속성의 값이 있어도 되고 없어도 선택적으로 받을 수 있습니다. 옵셔널 체이닝(Optional Chaining) -?. 일반적으로 속성접근자(.)를 이용하여 속성의 값을 가져올 수 있습니다.. 하지만 속성이 없을 경우에 오류가 발생합니다. // const name = person.name // if person undefined -..
Non-null 단언 연산자(Non-null assertion operator) 자바스크립트는 없고, 타입스크립트에서 사용하는 문법입니다. null이나 undefined가 아니라고 알려주는 타입스크립트 문법입니다. 난 null 이나 undefined가 아니고 반드시 값이 있어!! Non-null 단언 연산자 사용법 type person = { name : string age?: number } const superman: person = { name: 'superman', } const num: number = superman.age // error const num: number = superman.age! console.log(num); person 타입에서 age 선택적 타입으로 만들었습니다. ag..