전체 글 71

자바스크립트로 백준 10869번 풀기

브론즈 5단계 > 10869번 사칙 연산 1. 내 풀이) 간단한 문제이지만 js로 입력 받는 것을 연습하기 위해 풀어보았다. 1. readline으로 입력받을 때 // readline으로 푸는 경우 function solution(num1, num2) { console.log(num1 + num2); console.log(num1 - num2); console.log(num1 * num2); console.log(Math.floor(num1 / num2)); console.log(num1 % num2); } const readline = require("readline").createInterface({ input: process.stdin, output: process.stdout, }); let in..

자바스크립트로 백준 10998 풀기

내 풀이) readline으로 입력 받는 법. const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout, }); let input = []; readline.on('line', function(line) { input.push(line.split(" ")); }).on('close', function(){ console.log(Number(input[0][0]) * Number(input[0][1])); process.exit(); }); fs로 입력 받는 법 const fs = require('fs'); const input = fs.readFileSync("/dev/stdin")...

백준에서 javascript로 문제 푸는 법 총정리 (feat. 입력 받는 법)

1. 백준에서 javascript로 문제 푸는 법 백준에선 javascript 언어를 지원하지 않는다. js로 풀려면 node.js를 선택해서 풀어야 한다. 따라서 우리는 node.js를 선택해서 풀어야 한다. 그런데 node.js로 풀 때 문제가 있다. 어떻게 입력값을 받고 출력하는가? 입력에는 realine 혹은 fs 모듈을 쓰고, 출력에는 console.log() 메소드를 쓰자. readline 사용하기 // 1. 입력값이 한 줄에 한 개 뿐일 때 string 형 값을 가져온다. const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout, }); let input =..

CSS 클래스 이름을 짓는 규칙, BEM

0. 오늘의 배울 것 프로젝트를 짜다보면 클래스 이름을 지을 때가 가장 난감하다. 조악한 영어 실력으로 단어 더듬더듬 이어가며 클래스 이름을 지으니 자꾸 이름이 겹치고 헷갈리고 만다. 그래서 이번 포스팅에서는 네이밍 방법론 중 하나인 BEM에 대해 알아보려 한다!! 클래스든, 변수든, 함수든, 남들이 (+ 미래의 나) 알아보기 쉽게 이름을 짓는 것은 매우 중요하다! 이렇게 네이밍하는 데에 사람들이 만들어둔 규칙들이 있다. 여러가지 방법론이 있지만, 오늘은 그 중에서도 많은 곳에서 채택된 BEM 방법론에 대해 알아볼 것이다. 1. BEM이란? B lock E lement M odifier 의 줄임말로, 클래스 이름을 지을 때 block - element - modifier 순으로 이름을 짓자는 방법론이다...

JavaScript로 프로그래머스 풀기, 추억 점수

내 풀이) 좀 더 연산을 효율적으로 하기 위해, name과 yearning을 맵핑한 객체를 만들자. 추억 점수는 number 범위를 넘지 않으므로, 일반적인 연산을 해도 좋다. 내 코드) function solution(name, yearning, photo) { const score = {}; name.forEach((el, i) => { score[el] = yearning[i]; }); const answer = photo.map((els) => { let sum = 0; els.forEach((el)=>{ sum += score[el] ?? 0; }); return sum; }); return answer; } 여기서, 연습 겸 sum 을 구할 때엔 reduce 메소드를 활용한다면 아래 코드와 같..

fetch 함수에서 Async와 await 키워드 써보기.

0. 오늘의 배울 것. 비동기 실행 코드에서 쓰이는 async 와 await 키워드에 대해 알아보자!! 이 키워드를 쓰지 않아도 비동기문을 쓸 수는 있지만, 이걸 쓰는 게 더 가시적으로 좋다. 잘 알아보고 활용하자. 1. async와 await async와 await를 쓰면 우리가 앞에서 쓴 fetch then 문보다 더 간단하게 쓸 수 있다. 우리가 이때껏 배운 코드 fetch("url") .then((response)=>response.text()); .then((result)=>{console.log(result);}); 위의 코드를 async await로 바꾸기 async function fetchAndPrint() { const response = await fetch("url"); const ..

promise 객체 공부 기록.

0. 오늘의 배울 것. promise 객체가 비동기 실행을 하게 해주는 객체임을 배웠다. 오늘은 좀 더 심화 내용을 배워보자. 왜 promise 객체가 필요한지, promise 객체를 직접 만들어볼 수는 없는지 등!! 1. promise 객체는 왜 있는 걸까? fetch 함수에 그냥 바로 콜백 함수를 인자로 주면 안되는 걸까? 함수에 콜백을 직접 넣는 방식은 콜백 헬 callback hell이라는 문제를 일으킬 수 있다. 지옥의 피라미드라고도 불리는 콜백 헬은 코드 가독성이 겁나 떨어지는 현상을 말한다. promise 객체를 활용하면 가독성이 좋아지고 여러 비동기 작업을 순차적으로 처리하면서 callback hell 문제를 해결할 수 있다 뿐만 아니라 promise 객체에는 비동기 작업에 관한 세밀한 개..

fetch 함수와 비동기 실행

0. 오늘의 배울 것. 코드가 실행되는 방식에는 비동기 실행과 동기 실행으로 나뉜다. 일반적으론 동기 실행이지만, fetch 함수 같은 건 비동기적으로 실행된다. 이번 시간에는 비동기 실행이 무엇인지 알아보고!! 그다음 fetch 함수가 리턴하는 promise 객체가 무엇인지, fetch함수의 원리는 무엇인지 더 자세히 알아볼 예정이다. 1. 비동기 실행이 무엇인가? 웹 통신은 비동기적으로 실행된다. 즉, 순차적으로 실행되는 게 아니라 console에서 작동하는 와중에 request와 response가 와리가리 병렬적으로 지들끼리 통신하는 것이다. // 1번 실행 console.log("start"); // 리스폰스 받아야 실행되므로 기다림... 그 와중에 밑에 console end가 먼저 실행되고, 그..

HTTP 메소드를 활용해서 request 보내기

0. 오늘의 배울 것. 서버에게 리퀘스트를 보낼 때, '데이터를 보고 싶어요' 라든가, '이 데이터를 저장해주세요', '이 데이터를 수정해주세요' 등의 요청을 할 수 있다. 즉, 서버에게 request를 보낼 때 내가 원하는 동작을 하도록 method를 지정해서 같이 보내면 되는데, 어떻게 하는지 알아보자. 참고로 fetch 함수를 쓰면 json데이터를 js 객체로 변환하는 과정이 따로 필요하지만, axios 객체를 쓰면 그런 과정이 필요하지 않다. 실무에선 보통 axios를 많이 쓴다고는 하지만, 간단한 웹 통신에서는 fetch도 쓰이긴 하니 fetch 기준으로 알아보자. 1. JSON 데이터를 객체로 변환하기. (axios 에서는 JSON 데이터를 따로 변환..

웹 API 설계, RESTful API

0. 오늘의 배울 것 RESTful API, REST API는 REST를 기반으로 만들어진 API이다!! API란 application programming interface의 줄임말로, 프로그램들 간의 상호 소통을 돕는 인터페이스, 매개체이다. 쉽게 말하자면 한 프로그램에서 다른 프로그램으로 데이터를 주고 받기 위한 의사소통 방법이다. (여기서 프로그램이란 운영체제, 데이터베이스, 응용 프로그램 등등을 일컫는다.) 비유를 하자면, 손님이 음식을 주문하는데 종업원이 주문을 받아 요리사에게 요청을 전달하는 과정이 있다고 하자. 그리고 요리사가 만든 음식을, 종업원이 손님에게 전달하는 과정도 있다. 손님: 프로그램 A 손님이 음식을 주문: 손님(프로그램 A)가 원하는 데이터를 request 함. 종업원: A..