[Node.js] operation not permitted 오류
Operation not permitted npm install 실행 중 위와 같은 오류가 발생했다. 이 작업을 하기 전 다른 프로젝트의 security issue들을 해결하기 위해 몇가지 스크립트를 실행하다가 오류가 났었는데 그 작업중에 npm에 문제가 생긴것 같다. Stackoverflow 여기서 해결법을 찾아냈다. cache clean 1npm cache clean --force 최신 버젼 npm 설치 1npm install -g npm@latest --force cache clean 1npm cache clean --force 오류 났던 작업 다시 실행해보기 나느 이 방법으로 해결 할 수 있었다. 만약 문제가 해결되지 않는다면 백신 프로그램을 끄고 실행해보라고 한다.
Javascript 30 Day 17
Day 17 - Sort Without ArticlesArticles : 관사, 즉 관사 없이 영어 문자열을 배열하는 방법이다. 완성본기존 데이터 123456789101112131415const bands = [ "The Plot in You", "The Devil Wears Prada", "Pierce the Veil", "Norma Jean", "The Bled", "Say Anything", "The Midway State", "We Came as Romans", "Counterparts", "Oh, Sleeper", "A Skylit Drive", "Anywhere But Here", "An Old...
Javascript 30 Day 16
Day 16 - Mouse Move Shadow마우스 이동에 따라 텍스트에 그림자 효과 주기 완성본 .hero { display: flex; justify-content: center; align-items: center; color: black; min-height: 40vh; } 🔥WOAH! const hero = document.querySelector('.hero'); const text = hero.querySelector('h1'); const walk = 100; //100px function shadow(e) { //destructuring const { offsetWidth: width, offsetHeight: height } = hero; // 화면 크기 let {...
[프로그래머스] 실패율
2019 카카오 블라인드 공채 문제 링크 문제 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하도록 solution 함수를...
Slack bot 만들기
Slack bot 만들기슬랙 봇을 처음 만들어 보려고 했던 것은 몇개월 전의 일이다. BOJ 문제 풀이 슬랙 스터디 방을 만들었고, 매일 도장판 같은 이미지에 푼 문제들을 표시해서 스터디 방에 올려야 했다. 날짜가 바뀔 때 마다 누구 한 명이 새로운 날짜로 thread를 올리면 거기에 reply 하는 형식으로 도장판을 올리곤했는데, 이런 ‘날짜 알림이’ 역할을 해 줄 슬랙 봇을 만들어야 겠다는 생각이 들었다. 그 전부터 간단한 채팅이 가능한 봇을 만드는 사람들을 보면서 나도 만들어보고 싶었는데 그렇게 필요해진 순간이 와서 도전하게 되었다. 간단해 보였는데 생각만큼 잘 되지 않았다. Heroku 서버로 배포를 했는데 정해진 시간에 메세지가 오지 않았다.. 이전에 만든 슬랙 봇 글 마지막에 내일 아침에 메세지가 온다면 성공이라는 문구가 있는데 결국 메세지가 오지 않아서 실패했던 프로젝트가 되었다. Node 공부를 하다보니 또 생각이 나서 다시 시도해봤다.그런데 Slack에서...
for in, for of, forEach의 차이
for in, for of, forEach의 차이 forEach forEach 는 Array 자료형의 prototype이다. 따라서 NodeList와 같은 유사 배열 자료형에 forEach를 사용하기 위해서는 배열로 바꾸는 작업이 필요하다. 인자로 callback을 받는다. Array의 각 element를 callback 함수의 인자로 하나씩 넘겨준다. 123456const arr = [1, 2, 3];arr.forEach((element) => console.log(element * 2));// 2// 4//6 for … in for in 은 객체에서 string 형식의 key로 이루어진 요소들에 접근할 때 사용한다. 일반 배열에도 사용할 수 있지만 이 경우 배열의 prototype으로 지정한 메서드들도 함께 접근하므로 key에만 접근하고 싶다면 keys() 메서드로 key만 접근하도록 해야한다. 하지만 객체 데이터에만 사용하는게 제일 좋다. 12345const...
closer / curring
🚨 초보자를 위한 Node.js 200제 정리 내용 closer - 클로저클로저는 내부함수가 참조하는 외부함수의 지역변수가, 외부함수가 리턴된 이후에도 유효성이 유지될 때, 이 내부함수를 부르는 단어이다. 12345678910111213141516function grandParent(g1, g2) { const g3 = g1 + g2; return function parent(p1, p2) { const p3 = p1 + p2; return function child(c1, c2) { const c3 = c1 + c2; return g1 + g2 + g3 + p1 + p2 + p3 + c1 + c2 + c3; }; };}const parentFunc = grandParent(1, 2);const childFunc = parentFunc(11,...
[Javascript] Generator
Generator제너레이터 는 여러 개의 값을 필요에 따라 하나씩 반환(yield)할 수 있는 함수이다. 일반 함수는 하나 또는 0개의 값만을 반환할 수 있다는 것이 둘의 차이점이다. 실행되는 순서에 따라 동적으로 값을 반환한다는 것이 핵심이다. 사용법제너레이터 함수 생성하기제너레이터 함수는 * 키워드를 사용해 생성한다. 12345function* gen() { yield 1; yield 2; yield 3;} 일반적인 함수와 굉장히 유사하게 생겼지만 동작 방식은 매우 다르다. 제너레이터 함수를 호출하면 제너레이터 함수 내부 코드가 실행되는 것이 아니라, 제너레이터 객체가 반환된다. 12345678function* gen() { yield 1; yield 2; yield 3;}let generator = gen();console.log(generator); // Object [Generator]...
ES6 문법
ES6ES5에서 ES6로 넘어오면서 표준안이 생기게 되었고 많은 문법상 변화가 생겼다. 편리한 기능이 많이 추가되었고 최근에 나오는 많은 JS 문서의 코드들이 ES6 문법으로 쓰여진 경우를 많이 봤다. 기업에서도 ES6사용을 선호하고 있기 때문에 달라진 문법들을 잘 알아두는 것이 좋겠다.W3C ES6? ES6 = ECMAScript 6ECMAScript란 Ecma International의 기술 규격에 정의된 표준화된 Script Programming 언어이다. JS를 표준화하기 위해 만들어졌다. 표준안이 새로 만들어질 때 마다 버젼 정보가 뒤에 숫자로 붙는데, 2009년에 만들어진 ES5가 가장 보편적이다. 그리고 2015년 ES6가 나오게 되는데 이때 코드의 효율성을 높여줄 신기술이 굉장히 많이 도입되었다. 문법을 제대로 공부하지 않으면 코드를 읽을 수 없을 정도이다. 오래된 브라우저들은 최신 문법을 지원하지 않는 경우도 있는데, 이럴 경우 babel 같은 사이트를...
[BOJ] 16234. 인구이동
문제 링크 문제N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을 오늘 하루동안 연다. 위의 조건에 의해 열어야하는 국경선이 모두 열렸다면, 인구 이동을 시작한다. 국경선이 열려있어 인접한 칸만을 이용해 이동할 수 있으면, 그 나라를 오늘 하루 동안은 연합이라고 한다. 연합을 이루고 있는 각 칸의 인구수는 (연합의 인구수) / (연합을 이루고 있는 칸의 개수)가 된다. 편의상 소수점은 버린다. 연합을 해체하고, 모든 국경선을...