일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개발자
- 스크럼 마스터
- Python
- RDF
- socket.io
- ngrinder
- node
- Django
- benchmark
- Knowledge Graph
- 스크럼
- 스레드
- 노드js
- 특징
- 노드
- Stream
- Groovy
- 자바
- 이벤트 루프
- 예제
- java
- nodejs
- 파헤쳐보자
- C++
- 소켓
- Router
- node.js
- 지식 그래프
- express
- scrum
- Today
- Total
목록분류 전체보기 (55)
라봉이의 개발 블로그
들어가기에 앞서 이 포스트는 학교 프로젝트로 지식 그래프를 구축해보고 그에 대한 서비스 구현까지 완료해보기 위해 그에 대한 자료를 정리하는 글입니다. 이에 관해 공부해보는 사람들에게 도움이 되었으면 해서 글을 공유하고자 합니다. 이러한 서비스를 구축하기 위해선 먼저 용어 정리가 필요할 것 같습니다. 따라서 이번 프로젝트에서 가장 중요한 용어 지식 그래프(Knowledge Graph. 줄여서 KG)를 알아보고자 합니다. 지식 그래프란?? 먼저 위키피디아에선 지식 그래프를 다음과 같이 설명합니다. 지식 그래프는 다양한 소스로부터 축적한 시맨틱 검색 정보를 사용하여 검색 결과를 향상시키는 것으로 구글이 사용하는 지식 베이스이다. 시맨틱 정보란 자원과 자원 사이의 관계를 어떠한 정보로 표현한 것입니다. 간단하게..
자바스크립트로 소스 코드를 작성하다보면 다음과 같은 일에 직면하게 된다. function foo(callback1) { callback1(function (callback2) { callback2(function(callback3) { callback3( … );// 계속해서 탭이 늘어난다. }); }); } 맞다. 바로 ‘콜백헬’이라고 불리우는 일이 발생한다. 콜백헬이 발생하면 여러가지 단점이 생긴다. 그 중 제일 좋지 않은 단점은 극악의 가독성이다. 단순히 위의 코드만 보아도 남들이 읽기 힘들어 보인다. 이런 경우를 방지하기 위해 여태 promise 패턴을 적용했었다. 하지만 promise 패턴도 단순히 콜백을 호출하는 것보다는 가독성이 좋아지지만 마찬가지로 그닥 좋지 않은 가독성을 보여준다. 먼저 ..
nodejs에서는 express-session이란 모듈을 통해 사용자 인증을 구현하는 방법이 존재한다. 이 express-session은 쿠키를 통해 sessionID를 클라이언트에게 전달하고, 클라이언트가 cookie를 통해 서버에 요청시 쿠키의 sessionID를 키 값으로 이용, session store에 있는 세션 객체를 가지고와서 사용자의 중요한 정보를 가지고 온다. 필자가 express-session으로 구현해 놓은 서버(사이드 프로젝트용)에 급하게 sessionID를 쿠키 대신 http header에 전달하게 되었기 때문에 로그인 시에 response.body에 sessionID를 전달해야 했다. 그 방법을 급하게 알아본 결과 그런 방법은 존재하지 않았다... 하지만 이에 굴하지 않고 방법을..
개발자라면 맥북을 구매해야 한다!! 맥북 감성!! 맥북 감성!! 한성 노트북을 쓰고 윈도우 10 환경에서 개발하던 개발자인 필자가 노트북을 켜자마자 주변에서 곧잘 듣던 소리였다. 당시 맥북에 굉장히 거부감을 느꼈었던 것 중에 하나의 이유였다. 아니 대체 뭐가 그렇게 좋길래 주변에서 맥북 맥북 찬사를 하고 다닐까??오히려 맥북 살 돈으로 끝내주는 게이밍 노트북 하나 사서 풀 세팅 환경에서 개발하면 더 좋은 것이 아닌가?? 그당시 우분투 환경에서 개발도 줄곧 해왔기 때문에 환경 설정에 대해 커맨드 환경에서의 개발은 가히 최고의 장점이었다. 윈도우에서는 프로그램에 필요한 모듈이나 데이터베이스를 다운 받으려면 환경 설정도 해줘야하고 환경 변수도 세팅해야 했기 때문에 골치가 아팠지만 우분투에서는 단지 한 줄의 명..
필자는 여태 Node를 구동하면서 console.log를 이용해 로그를 남기며 디버깅을 진행하였다.좋은 방식은 아니지만 대충 확인만 하는 것들은 그런 방식으로 로그 데이터를 쌓았다. 하지만 Express를 사용하며 웹서버를 만들면서 로그를 체계적으로 쌓기 시작하면서 문제가 하나 발생했다.로그를 남길 때 모두 하얀색 이었기 때문에 눈이 매우 아팠던 것이다. 따라서 터미널 창에 색깔을 입힐 수 있는 로그 모듈을 찾았는데 chalk 모듈이다. 자세한 내용은 다음 docs에서 살펴보세요. npm사이트 하지만 필자의 경우 webstorm 콘솔 창에서는 색이 변했지만 pm2로 동작시킨 로그 내용을 tail로 추적했을 땐 색이 변하지 않았다.해결법은 다음과 같았다. 1. node --color => --color 옵..
다음과 같이 find종류인 findOneAndUpdate, findByIdAndUpdate 쿼리를 이용하여 컬렉션에 존재하는 스키마의 데이터를 업데이트 하는 일이 주어졌다고 하자. 다음은 스키마 정의 부분이다. const userSchema = new mongoClient.Schema({ name: { type: String, required: true, unique: true }, category: { team: Number, categoryType: String }, gender: { type: String, enum: ["male", "female"], required: true }, createOn: Date }); 다음은 name이 kkki인 원래의 document이다. { category: {..
1. 자바에서의 입출력 1.1 입출력이란? 입출력이란 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다. 1.2 스트림 스트림이란 일종의 추상적인 개념인데 입출력 기기나 프로세스, 파일 등 데이터가 어디로 가는 지, 어디로 나왔는 지 상관없이 통일된 방식으로 데이터를 다루기 위한 가상의 개념이다. Node.js의 stream을 알고 싶다면 다음의 링크를 타고가면 된다. http://psyhm.tistory.com/26 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간어 건너뜀 없이 연속적으로 데이터를 주고받는다. 큐와 같은 FIFO 구조로 되어 있다고 생각하면 이해하기 편할 것이다. 1.3 바이트기반 스트림 - InputStream, OutputStream 스트림은 바이트..
3. StringBuffer클래스 3.1 StringBuffer클래스의 특징 StringBuffer클래스는 지정된 문자열 변경이 가능하다. 내부적으로 문자열 편집을 위한 버퍼(buffer)를 가지고 있으며, StringBuffer인스턴스를 생성할 때 그 크기를 지정할 수 있다. 버퍼의 크기를 적절하게 정해주지 않으면 만약 문자열의 크기가 버퍼의 크기를 넘어서게 되면 버퍼 크기를 늘려주는 작업을 추가로 해야하기 때문에 작업효율이 떨어진다. 3.2 StringBuffer클래스의 생성자 public StringBuffer(int length) { value = new char[length]; shared = false; } public StringBuffer() { this(16); } public Strin..
자바에서 java.lang 패키지는 기본이 되는 패키지이기 때문에 import 없이 사용할 수 있다. 그 중 많이 사용되는 것들을 알아보자 1. Object 클래스 Object는 모든 클래스의 최고 조상이기 때문에 Object 클래스의 모든 멤버들은 모든 클래스에서 모두 사용할 수 있다. Object 메서드에서 중요한 몇가지를 살펴보자 1.1 equals 메서드 객체의 참조변수를 받아서 비교하여 그 결과를 boolean 값으로 알려주는 역할을 한다. public boolean equals(Object obj) { return (this == obj); } 코드를 보면 알 수 있듯이 서로 다른 두 객체를 equals 메서드로 비교하면 항상 false를 반환한다. equals 메서드는 결국 두 개의 참조변수..
Node.js에서 stream이란 "스트리밍 데이터로 작업하기 위한 추상적인 인터페이스"라고 공식 문서에 나와있다. 뭔 소리일까..? 일단 stream이란 개념을 짚고 넘어가야 될 듯 싶다. stream이란 일종의 추상적인 개념인데 입출력 기기나 프로세스, 파일 등 어디로 가는 지, 어디로 나왔는 지 상관없이 통일된 방식으로 데이터를 다루기 위한 가상의 개념이다. 그러니까 stream을 정의하기란 너무나 모호하다. Node.js에서 많은 Object들이 stream Object 이다. 예를 들어서 http 서버의 request나 process.stdout도 stream 인스턴스이다. stream들은 읽을 수 있거나(readable), 쓸 수 있거나(writable) 혹은 둘 다(both)가 될 수 있다...