전체 글 264

[node.js] Express_ Router객체

익스프레스를 사용하는 이유 중 하나는 라우팅을 깔끔하게 관리할 수 있다는 점이다. app.js의 라우터 부분을 보자. 익스프레스 앱과는 달리 위와 같이 연결되어 있다. app.use를 사용하므로 라우터도 일종의 미들웨어라 생각하자. 다른 미들웨어와 가르게 앞에 주소가 붙어 있으니 첫번째 인자로 주소를 받아서 특정 주소에 해당하는 요청이 들어 왔을때, 미들웨어가 동작한다. 주소가 / 로 시작하면 routes/index.js 를 /user로 시작하면 routes/user.js를 호출하라는 의미이다. use 대신 get,post,put,patch,delete 와 같은 HTTP 메서드를 사용할 수 있다. get, post : 요청을 하는 것 sned, sendfile, json, render : 응답을 보내는 ..

node.js 2019.08.24

[node.js] Express_구조 와 미들웨어

익스프레스 프레임워크는 이것 외에도 다양한 패키지를 필요로 한다. 기본 generate가 있으니 이것을 이용하여 설치하면 좋다. 먼저 익스프레스는 http 모듈의 요청과 응답 객체에 추가 기능들을 부여한다. 기존 메서드들로 계속 사용할 수 있으며 편리한 일부 메서드들을 추가하여 기능을 분리하였다. npm i -g express-generator 명령어로 전역설치하고 해당 폴더에 새로운 express 프로젝트를 생성하려면 express [프로젝트 명] --view=pug 라고 입력한다. --view는 템플릿 엔진중 Pug로 사용한다는 뜻이다. Pug와 EJS가 있다. 이렇게 기본 generator가 설치되고 그안에 폴더구조로 app.js route view 등의 폴더구조들이 있다. app.js가 핵심 서버..

node.js 2019.08.24

백준[14503] 로봇 청소기

링크 https://www.acmicpc.net/problem/14503 시뮬레이션 문제이다. 필자는 회전에 대한 구현이 있을 때, 하드코딩을 통헤 dir 변수로 1부터 4까지 if문을 사용하여 해결하지만 이제부터는 반복문을 사용하여 방향을 저장하고 있는 변수를 통해 접근하여 나머지 연산자로 구현을 하려고한다.. [위 : 0] [오른쪽 : 1] [아래 : 2] [왼쪽 : 3] 으로 생각하여 항상 시계방향으로 나타낸다. x,y 값이 있기때문에 방향을 담는 자료를 dx[4], dy[4] 에 위의 인덱스에 이동할 값으로 넣어준다. 왼쪽방향으로 회전하기때문에 +3 %4 으로 처리하면 되고 오른쪽이라면 +1 % 4 180도는 +2 % 4 로 처리하면 방향을 쉽게 처리할 수 있다. 1 2 3 4 5 6 7 8 9 ..

백준[14499] 주사위 굴리기

링크 : https://www.acmicpc.net/problem/14499 주사위를 이용한 시뮬레이션 문제이다. 처음에 이것을 굴리면서 무언가 변하는 규칙이 있을것이라 생각했다. 연습장에 6개의 인덱스를 가지는 배열을 통해 열심히 굴리면서 상, 하, 좌, 후 에 따라 변하는 값과 규칙을 찾으려 했지만 쉽지 않았다. 그렇게 고심하다 다행히 스터디원이 힌트를 주면서 쉽게 해결할 수 있었다. 1차원 배열이 아닌 문제의 그림을 적용하여 3*4의 2차원 배열을 이용하여 상하좌우에 따른 규칙을 바로 그려낼 수 있었다. 이것을 만들고 회전했을 때, 밑면의 위치를 그려냈다면 나머지는 구현하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ..

[Node.js] NPM 시작하기

NPM : Node Package Module npm은 노드 패키지 매니저로 여기서는 npm을 통해 업로드된 노드 모듈을 사용하는 방법과 명령어에 대해 간단하게 알아보자. npm은 package.json 으로 설치한 패키지의 버전을 관리한다. 시작해보자 콘솔창을 열어 설치할 폴더경로로 이동해 'npm init' 를 입력한다. 작성할 부분만 간단하게 작성하고 위와같은 결과로 yes를 입력한다. 파일이 생성되었는지 확인한다. 다음과 같이 생성되었음을 알 수 있다. 보통 test 스크립트 외에 start명령어에 node [파일명] 으로 저장하고 npm start로 시작한다. 패키지를 설치해보자. 다음부터 계속 이것을 기본으로 시작할 것이다. 콘솔에 npm install express 를 입력한다. 다음과 같이..

node.js 2019.08.21

[Node.js] Node 내장 객체 및 모듈

노드는 코드를 모듈로 만들 수 있다는 점에서 브라우저의 자바스크립트와 다르다. 모듈이란 특정한 기능을 하는 함수나 변수들의 집합이다. 모듈의 사용법을 간단하게 알아보자 com.js f.js index.js 위와 같은 결과를 얻을 수 있다. 배열 위의 [..] 결과는 파라미터 10을 지우고 얻은 결과이다. 함수 ff를 제대로 사용함을 보여주고 있다. 노드의 내장객체로는 global, console, 타이머, process 등이 있는데 이중 __dirname만 살펴보자. __dirname 은 경로에 대한 정보를 제공한다. 이것을 실행하면 현재 파일명과 경로로 바뀐다. 노드 내장 모듈로 OS, path, url, querystring 등이 있으며 파일 시스템을 접근하기 위해 fs모듈도 있다. 필요에 따라 해당..

node.js 2019.08.21

[node.js] 콜백 함수, 프로토타입

Node.js를 하기전에 자바스크립트에서 중요한 콜백함수와 프로토타입 객체에 대해 한 번더 알아보고 가자. 콜백함수 함수를 파라미터로 전달하는 경우는 대부분 비동기 프로그래밍 방식이기 때문이다. 예를들어 더하기 함수를 실행하는데 시간이 걸리기 때문에 그다음 코드를 바로 실행한다. 그리고 연산이 끝났을 떄, 파라미터로 전달한 함수가 실행될 수 있다면 그 시점에 결과를 처리할 수 있으므로 효율적인 프로그램을 만들 수 있다. 이 때 파라미터로 전달되는 함수를 콜백 함수라고 한다. 예를 보자. 1 2 3 4 5 6 7 8 const add = (a,b,callback) =>{ var r = a+b; callback(r); } add(10,10,(r)=>{ console.log('파라미터로 전달된 콜백함수 호출'..

node.js 2019.08.17

[Compiler] CFG_Context Free Grammer

본 내용은 아래의 출처에서 본것이고 허락을 맡고 포스트한다. 출처 : https://talkingaboutme.tistory.com/category/About%20Study/Compiler 이때까지 정규 표현을 통해 NFA -> DFA를 거치는 Lexical Analysys을 알아보았다. 이제 Syntax Analysis(구문분석)로 넘어간다. 그런데 '사용자가 넣는 모든 입력들을 Syntax Analysis를 처리할 수 있느냐' 이다. 이 궁금증을 짚고 넘어가자. 예를 들어, brace {()} 의 구문일때, 정규표현으로 뽑을 수 있는 경우의 수는 (() , ((((((), ())))))) ... 등이 있을텐데 이것이 정의되기 위해서는 '(' 과 ')'의 갯수가 같아야한다. 즉, 정규표현으로 표현할 수..

[D3.js] 축_ aXis

D3.js : 축 축은 척도와 형태가 거의 유사하다. 축은 우리가 정의한 파라미터를 가진 함수이며 척도와 다르게 축 함수를 호출하면 어떤 값을 반환하는 대신에 선, 라벨, 구분자를 가진 시각적 요소가 생성된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 D3: A simple, unstyled axis /* No style rules here y..

D3_js 2019.08.15

[python] 파이썬 클래스

파이썬 클래스 클래스... 대부분의 언어를 하면서 객체 지향 언어와 함께 들어보고 사용해 봤을 것이다. 파이썬은 모든 것이 객체이며 클래스 역시 파이썬에서는 하나의 객체이다. 다음의 코드를 통해 클래스란 타입을 확인할 수 있다. 1 2 3 4 5 6 7 8 9 10 ''' 파이썬은 모든것이 객체이다, 클래스 역시 파이썬에서 하나의 객체이다. str이라는 클래스는 type 클래스의 객체이다. 클래스에서 생성된 객체를 인스턴스라 한다. ''' s = 'hello world' print(type(s)) print(type(str)) print(s.__class__) # 어떤 클래스(타입)에 의해 생성되었는지 담고 있는 지역변수 : __class__ print(s.replace('hel','yol')) http..

python 2019.08.13