일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스크럼 마스터
- node
- scrum
- 개발자
- 노드
- 파헤쳐보자
- Python
- C++
- socket.io
- 예제
- Stream
- RDF
- 스크럼
- 노드js
- express
- java
- Django
- 지식 그래프
- Router
- node.js
- 특징
- 소켓
- Knowledge Graph
- 스레드
- Groovy
- benchmark
- 자바
- 이벤트 루프
- ngrinder
- nodejs
- Today
- Total
목록분류 전체보기 (55)
라봉이의 개발 블로그
nodejs의 기본 모듈 중 하나인 fs는 file system의 약어이다. 말 그대로 fs 모듈을 이용해 파일 시스템에 사용되는 기능들을 사용할 수 있다. fs는 표준 POSIX 함수와 비슷하게 만들어놨기 때문에 예전에 리눅스 프로그래밍을 배운 필자로서는 fs모듈이 매우 흥미롭게 다가왔다. 모든 파일 시스템 연산은 동기식과 비동기식이 존재하는데 비동기식은 모두 연산이 완료되었을 시 마지막 argument에 callback으로 전달한다. callback의 첫번째 argument는 예외처리가 담긴 변수인데 예외가 없을 시 undefined나 null이 반환된다. 동기식의 오류처리는 try/catch로 잡을 수 있다고 하는데 nodejs에서 동기식을 사용한다는 것은 매우 비효율적이므로 따로 적지는 않겠다. ..
QGraphicsItem 클래스의 boundingRect 함수는 QGraphicsScene에 addItem된 QGraphicsItem들의 직사각형 모양의 외부 경계를 정하는 함수이다. QGraphicsView 안에 존재하는 QGraphicsScene 안의 이벤트를 감지한다. 이때 QGraphicsView는 item들을 다시 paint하는 지 결정해야하는데 이때 boundingRect에서 정한 아까의 직사각형이 scene 범위 외에 존재한다면 그 item을 paint하지 않는다. 그래서 boundingRect를 잘못 지정한다면 화면에 item이 없어졌다가 다시 생기는 현상을 목격할 수도 있다. 참고로 사진에 보이는 선들은 QGraphicsItem을 상속 받았다. 문서: qt docs 참고사진:
간단히 말하면 explicit 용어는 묵시적 형변환을 할 수 없게 만들고 명시적인 형변환만 가능하도록 만드는 것이다. 그렇다면 이렇게 굳이 귀찮게 하는 이유는 무엇일까? 묵시적으로 형변환을 가능하게 만들면 프로그래머가 개발할 때 의도 또는 생각지도 않는 오류가 발생할 수 있기 때문이다. 예를 들어, class Point{ private: int y; public: Point(int yy = 0) { y = yy; } void Print() const{ cout
이전 포스트: [Node.js] - [nodejs][socket.IO] 노드js 소켓 IO 사용기-1. socket.io란? 간단한 예제 코드 살펴보기 이전에는 socket.io를 간단히 사용하는 법을 살펴 보았다. 이번 포스트는 socket.io를 좀 더 유용하게 만들었던 함수들을 어떻게 썼는 지 정리해보고자 한다. 현재 연결된 소켓을 id로 찾기 현재 연결된 소켓 중에서 socket.id를 이용해 소켓 객체를 가지고 오고 싶을 때 io.sockets는 namespace를 리턴한다. namespace란 기본적으로 다른 end points나 경로를 지정하는 것을 의미한다고 정식 docs에 나와있다. 사용해보지 않아서 잘 모르겠지만 소켓들은 namespace를 통해 구분될 수 있고 이벤트를 달리할 수 있는..
socket.io란?? socket.io는 websocket 프로토콜을 지원하는 네트워킹 라이브러리이다. 비동기 이벤트 방식으로 "실시간"으로 간단하게 데이터를 주고받을 수 있게 만든 라이브러리이며 정말 쉽게 만들 수 있지만 강력한 기능들로 하여금 다양한 서비스를 만들 수 있다. 서버 사이드에서는 아직 node.js에서만 가능하고 클라이언트 사이드에서는 javascript가 가능한 곳, 브라우저 심지어 스위프트나 자바 안드로이드도 가능하고 C++11도 가능한 것으로 보인다. socket.io 깃허브 주소 위에서 설명했듯 socket.io는 Websocket 프로토콜을 사용한다. 원래는 웹 브라우저에서 양방향으로 자유롭게 데이터를 교환하기 위해서 WebSocket이란 개념이 나왔고 그것을 구현할 수 있도록..
우분투 환경에서 C++을 공부하는 와중에 Thread에 대해 연습해보다가 Thread에는 커널 레벨과 유저 레벨이 존재한다고 들었다. 그렇다면 C++ thread 클래스(pthread를 랩핑한)는 어떤 종류인지 찾아보고 싶었다. 또한 Thread들이 과연 각 Thread마다 물리적인 다른 CPU에 각각 할당이 될까?? 라는 궁금함에 자료조사를 해보았다. 그러기 위해서는 ubuntu에서 스레드 당 정말 각각의 CPU에 할당 되는 지를 직접 보고 싶었다. 과연 하나의 CPU에 할당이 되는 것인지, 스레드마다 각각 다른 CPU에 할당되는 지 눈으로 직접 보고싶었기에 조사를 해보았다. 먼저 C++ 코드를 작성하였다. #include #include #include using namespace std; void ..
그동안 노드js를 사용하면서 항상 머리 속을 맴돌았던 질문이 있었다. 노드는 어떻게 돌아가는 거지? 노드는 왜 싱글 스레드인거지? 뭐가 대체 싱글 스레드인걸까?? 궁금증에 못이겨 노드js 공식 홈페이지의 문서를 뒤젹거리며 찾아본 결과를 정리해보고자 포스팅을 시작했다. 문서 내용을 가져온 내용이 있기 때문에 직접 Node.js 공식 문서를 보는 것도 좋은 방법일 것 같다. Node.js 공식 문서: https://nodejs.org/ko/docs/ 블로킹과 논블로킹 살펴보기 먼저 블로킹과 논블로킹에 대해 알아보도록 하겠습니다.블로킹: 호출되는 함수가 자신의 작업을 마칠 때까지 제어권을 넘겨주지 않고 대기하는 방식논블로킹: 호출되는 함수가 바로 제어권을 넘겨줘서 다른 작업을 진행할 수 있도록 하는 방식 No..
이전 포스트 : http://psyhm.tistory.com/7?category=654716 저번 포스트에서는 route paths와 parameters에 대해 조금 더 살펴보았다. 이번엔 대망의 middleware에 대해서 살펴 보도록 하겠다. Middleware docs를 보면 middleware에 대한 설명이 나와있다. "Middleware functions are functions that have access to the request object (req), the response object (res), and the next function in the application’s request-response cycle." 미들웨어 함수는 req(요청) 객체, res(응답) 객체, 그리고 어..
이전 포스트 : 2018/03/04 - [Node.js/express] - Node.js express를 파헤쳐보자-3: static file, path 객체 저번 포스트에서는 static file과 path 객체에 대해서 알아보았다.express가 어떻게 정적 파일(static file)과 path 객체가 무엇이고 어떻게사용하는 지 정말 간략하게 살펴보았다. 이번 포스트는 이전 포스트에서 다루었던 router를 좀 더 살펴보도록 하겠다. Route paths 이전에 Router는 url의 path와 http method로 handler를 달리 할 수 있다고 설명하였다. 이 Route paths에 대해 조금 더 설명을 하고 싶었다. express 문서를 보면 다음과 같은 구문이 있다.express 문서:..
이전 포스트 : http://psyhm.tistory.com/5 저번 포스트에서는 router 객체와 render란 무엇인가에 대해 공부했었다. 이제 정적 파일(이미지 파일, javascript 파일, css 파일) 등을 express 서버가 어떻게 제공하는 지 알아보자. 정적 파일(Static files) express가 static files(정적 파일들)을 제공하기 위해선 express.static 미들웨어를 사용해야 한다. 사용 방법은 다음과 같다. express.static(root, [options]); root는 정적 파일들이 위치한 경로를 string 타입으로 적으면 되고 options는 속성을 키값으로 한 객체를 넣으면 된다. options는 다음 테이블에서 확인 가능하다. 속성 설명 타..