Windows에서 WSL 사용하기
:rotatinglight: _nomadecoders의 윈도우 세팅 강좌 정리 내용 WSL : Windows Subsystem for LinuxWSL은 Windows10 2004 업데이트 부터 지원되는 기능이다. 2020년에 나온 업데이트 버젼인데 왜 이름을 이렇게 붙였는지는 모르겠다.Linux 환경에서 뭔가 설치하는 것은 굉장히 쉽다. 터미널에서 명령어 한줄만 입력하면 알아서 설치가 진행된다. 반면에 Windows는 뭔가 복잡하고 잘 안될 때가 많다. 이런 경우 Linux 명령어를 사용할 수 있게 해주는 것이 WSL이다. WSL을 사용하기 위한 작업들을 해보자.먼저 ‘chocolately’를 사용해볼 수 있다. chocolately 설치 방법먼저 chocolately 공식 홈페이지의 다운로드 링크로 들어간다. 설치 방법이 상세하게 나와있지만 필요한 것은 command문 뿐이다. command문을 복사하고 Windows에서 Power Shell을 관리자 권한 으로 실행하여...
Javascript 30 - Day 9
Javascript30 Day9 - Dev Tools DominationJavascript로 수행하는 동작을 확인하기 위해서는 data들을 콘솔 창에 출력해봐야 한다. 주로 console.log()가 사용되는데 개발에 도움이 되는 비슷한 여러 함수들이 있다. console.log()1console.log('Hello'); 콘솔 창에 인자로 받은 문자열을 그대로 출력한다. 1console.log('Hello, %s',value); %s 키워드를 사용해 값을 문자열에 치환하여 출력할 수도 있다. ES6 문법을 사용하면 아래처럼 쓸 수도 있다. 1console.log(`Hello, ${value}!`); %c 키워드를 사용해 출력 스타일을 지정할 수 있다. 스타일은 기본 css와 같은 문법이다. 1234console.log( "%c I am some great text", ...
[이코테] Greedy - 무지의 먹방 라이브
🚨 ‘이것이 취업을 위한 코딩테스트다’ 교재 정리 2019 카카오 신입 공채 프로그래머스 문제 링크 문제평소 식욕이 왕성한 무지는 자신의 재능을 뽐내고 싶어 졌고 고민 끝에 카카오 TV 라이브로 방송을 하기로 마음먹었다. 그냥 먹방을 하면 다른 방송과 차별성이 없기 때문에 무지는 아래와 같이 독특한 방식을 생각해냈다. 회전판에 먹어야 할 N 개의 음식이 있다.각 음식에는 1부터 N 까지 번호가 붙어있으며, 각 음식을 섭취하는데 일정 시간이 소요된다.무지는 다음과 같은 방법으로 음식을 섭취한다. 무지는 1번 음식부터 먹기 시작하며, 회전판은 번호가 증가하는 순서대로 음식을 무지 앞으로 가져다 놓는다.마지막 번호의 음식을 섭취한 후에는 회전판에 의해 다시 1번 음식이 무지 앞으로 온다.무지는 음식 하나를 1초 동안 섭취한 후 남은 음식은 그대로 두고, 다음 음식을 섭취한다.다음 음식이란, 아직 남은 음식 중 다음으로 섭취해야 할 가장 가까운 번호의 음식을 말한다.회전판이...
[이코테] Greedy - 만들 수 없는 금액
🚨 ‘이것이 취업을 위한 코딩테스트다’ 교재 정리 문제N개의 동전이 주어질 때 만들 수 없는 양의 정수 금액 중 최솟값을 구하는 프로그램을 작성하시오. 입력 조건 첫째 줄에는 동전의 개수를 나타내는 양의 정수 N이 주어진다. ( 1 <= N 1,000) 둘째 줄에는 각 동전의 화폐 단위를 나타내는 N개의 자연수가 주어지며 각 자연수는 공백으로 구분된다. 각 화폐 단위는 1,000,000 이하의 자연수이다. 출력 조건 첫째 줄에 주어진 동전들로 만들 수 없는 양의 정수 금액 중 최솟값을 출력한다. 입력 예시입력 1253 2 1 1 9 출력 18 풀이아이디어 target 금액은 1부터 시작하고 화폐 단위는 오름차순 정렬을 수행한다. 화폐단위를 순차적으로 검사하면서 만약 target보다 단위가 작을 경우 해당 target은 만들 수 있다. target을 만들 수 있을 경우, 다음 target은 해당 화폐단위를 더한 값으로 갱신한다. target보다 큰 값이 검사...
Javascript 30 - Day 8
Javascript30 Day8 - Fun with HTML5 CanvasW3C 튜토리얼HTML <canvas> element는 웹 페이지에서 그래픽을 그리기 위해 사용하는 요소이다.아래 캔버스에서 테스트 해볼 수 있다! (우클릭으로 캔버스 비우기) const body = document.querySelector('body'); body.addEventListener("contextmenu", ( e )=> { e.preventDefault(); return false; } ); const canvas = document.querySelector("#draw"); const ctx = canvas.getContext("2d"); ctx.strokeStyle = "#BADA55"; ctx.lineJoin = "round"; ctx.lineCap = "round"; ctx.lineWidth...
Javascript 30 - Day 7
Javascript30 Day7 - Array Cardio Day 2Array 자료형의 유용한 메서드를 공부한다.test data는 아래와 같다. 1234567891011121314const people = [ { name: "Wes", year: 1988 }, { name: "Kait", year: 1986 }, { name: "Irv", year: 1970 }, { name: "Lux", year: 2015 }, ]; const comments = [ { text: "Love this!", id: 523423 }, { text: "Super good", id: 823423...
[Node.js] API 구현하기
APIAPI : Application Programming Interface프로그램은 여러가지 모듈을 이용해 만들어진다. 이러한 라이브러리를 만든 개발자와 이를 사용해 프로그램을 개발하는 개발자 간의 약속을 바로 Interface 라고 부른다. 또한 애플리케이션 프로그램을 만들기 위해 만들어진 약속들을 API라고 부르는 것이다. API는 모든 프로그래밍 언어에 제공된다. 주어진 기능을 잘 활용하는 것이 좋은 프로그램을 만들기 위해서 필요한 역량이 될 것이다. 공식문서 잘 활용하기Node.js 공식 홈페이지로 가면 문서 탭이 있다. 여기서 각 Node.js의 버전에 따른 API 문서를 확인할 수 있고 모듈들의 사용법을 찾아 볼 수 있다. Node.js로 프로그램을 만들 때 가장 먼저 호출하게 되는 http모듈을 살펴보자. http12345var http = require("http");var app = http.createServer(function...
[BOJ] 11724. 연결 요소의 개수
문제 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. 입력첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다. 출력첫째 줄에 연결 요소의 개수를 출력한다. 풀이연결된 요소를 구하는 문제다. 그래프는 연결리스트 구조로 만들었다. BFS를 사용해서 구현해 문제를 풀었다.visited를 list로 구현할 경우 탐색에 O(N)이 소요되므로 set으로 구현하자.방문되지 않은 노드를 찾을 때 마다 연결된 요소의 수를 저장하는 ans를 1씩 증가 시켜주고 해당 노드와 연결된 모든 노드들을 찾아 queue에 추가하면서 모두 방문하는 방식으로 코드를...
[Node.js] 패키지 매니저와 PM2
패키지 매니저와 PM2Node.js를 사용하다보면 다양한 모듈을 설치해 외부 기능을 사용해야 할 때가 많다. 다양한 패키지 매니저가 있는데 나는 npm을 주로 사용한다. npmnpm을 사용하기 위해서는 패키지 정보를 기록하는 package.json파일이 필요하다. 1$ npm init 명령어를 입력하면 자동으로 package.json이 만들어진다.npm으로 다른 사람이 만든 모듈을 다운받을 수 있다. 12$ npm install express$ npm i express 위의 두 명령어는 같은 동작을 한다. 다만 install을 i로 줄여 쓸 수도 있다. 설치하는 모듈들의 정보는 모두 package.json에 기록된다. package.jsonpackage.json 파일이 있을 경우 npm install 명령어를 실행하면 package.json에 명시된 모든 패키지들을 자동으로 설치한다. 따라서 내가 설치한 모듈이 없는 다른 사용자에게 내 소스 코드를 보내도...
[Node.js] 동기 & 비동기
Synchronous & Asynchronous동기 vs 비동기‘동기’와 ‘비동기’는 그 이름 그대로 동작한다.동기적 작업 방식은 작업이 순차적으로 진행된다.A - B - C 가 호출이 되면, 각각의 작업이 하나씩 끝날 때 마다 다음 작업이 시작되는 것이다.반면에 비동기적 작업 방식은 비동기적으로 동시에 작업이 진행된다.A - B - C 로 코드를 짜더라도 파일을 읽어온다거나, 서버에 접속해서 데이터를 fetch 해온다거나 하는 등의 작업을 명령하면, 수행시간이 빠른 코드들이 비동기적으로 진행되는 작업방식에 의해 먼저 완료 되어 그 결과가 더 빨리 나타난다. 따라서 작업 수행 시간이 동기적 방식에 비해 단축될 수 있다. Node.js는 기본적으로 비동기적 방식을 따른다. 메서드들은 default가 비동기로 되어있고 보통 동기적 방식의 함수들은 Sync가 붙어있다. 동기적 File Read 소스 코드 1234console.log("A");var...