분류 전체보기

문제https://www.acmicpc.net/problem/1956 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n');const [v, e] = input.shift().split(' ').map(Number);const road = input.map(e => e.split(' ').map(Number));const village = Array.from({ length: v }, (_, idx) => Array.from({ length: v }, (__, i) => idx === i ?..
제너레이터란?ES6에 도입된 제너레이터는 코드 블록의 실행을 일시 중지 했다가 필요한 시점에 재개할 수 있는 특수한 함수다.제너레이터 함수는 함수 호출자에게 함수 실행 제어권을 양도할 수 있다.제너레이터 함수는 함수 호출자와 함수의 상태를 주고받을 수 있다.제너레이터 함수를 호출하면 제너레이터 객체를 반환한다. 제너레이터 함수의 정의제너레이터 함수는 function* 키워드로 선언하며 하나 이상의 yield 표현식을 포함한다.// 제너레이터 함수 선언문function* genDecFunc() { yield 1;}// 제너레이터 함수 표현식const genExpFunc = function* () { yield 1;};// 제너레이터 메서드const obj = { * genObjMethod() { ..
지금부터 리액트 훅에 대해 알아보자.Hook은 클래스 컴포넌트에서만 가능했던 state, ref 등 리액트의 핵심 기능을 함수에서도 가능하게 만들어 준 것이다. 리액트로 웹 서비스르를 만드는 개발자라면 훅이 어떻게 동작하는지 이해할 필요가 있다. useStateuseState는 함수 컴폰너트 내부에서 상태를 정의하고, 이 상태를 관리할 수 있게 해주는 훅이다.import {useState} from 'react'const [state,setState] = useState(initialState) useState의 인수로는 사용할 state의 초깃값을 넘겨주면 된다. 만약 useState를 사용하지 않는다면 어떻게 될까?import React from 'react'const Component = () =>..
JS는 비동기 처리를 위해 콜백 함수를 사용했지만, 콜백 지옥 현상으로 인해 가독성이 떨어지고 에러 처리가 어렵다는 문제가 있었다. ES6에서는 Promise를 도입해 콜백 함수를 통한 비동기 방식의 단점을 보완하며 비동기 처리 시점을 명확하게 표현할 수 있게 되었다. 비동기 처리를 위한 콜백 패턴의 단점콜백 헬비동기 함수 내부의 비동기 동작은 호출된 비동기 함수의 동작이 종료된 다음 완료된다. 이로 인해 비동기 함수 내부의 비동기 동작의 결과를 외부로 반환하거나 상위 스코프의 변수에 할당할 수 없다. let todos;// GET 요청을 위한 비동기 함수const get = url => { const xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr...
REST는 HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍처이다. 그리고 REST API는 REST를 기반으로 서비스를 구현한 것을 의미한다.이러한 REST의 기본 원칙을 성실히 지킨 서비스 디자인을 "RESTful"이라고 한다. REST API의 구성REST API는 자원, 행위, 표현의 3가지 요소로 구성된다. REST는 자체 표현 구조로 구성되어 REST API만으로 HTTP 요청의 내용을 이해할 수 있다.구성 요소내용표현 방법자원자원URI (엔드포인트)행위자원에 대한 행위HTTP 요청 메서드표현행위의 구체적 내용페이로드  REST API 설계 원칙REST에서 가장 중요한 기본 원칙은 두 가지가 있다.URI는 리소스를 표현하는데 집중해야하며 행위에 대한 표현이 들어가면..
문제https://www.acmicpc.net/problem/2504 풀이문제는 기본적으로 스택 문제이지만, 중간에 숫자를 계산한다는 점이 좀 걸리는 문제이다... 숫자 계산 로직의 경우 조금 근본적으로 접근했다. ( 나 [ 가 stack에 들어오는 경우 그 안에 있는 숫자들이 2 또는 3 만큼 곱해져 결과값에 더해진다는 특징을 이용해 temp변수에 괄호의 깊이에 따른 값을 정의했으며, 완벽한 괄호가 완성된 경우 그 깊이에 따른 값을 더해주면 값을 도출했다. 코드const input = require("fs") .readFileSync( process.platform === "linux" ? "/dev/stdin" : __dirname + "/example.txt" ) .toString() ..