Express 모듈 설치
·
기타/node.js
Express 모듈 express 모듈은 node.js에서 웹 서버를 개발할 때 가장 많이 사용하는 모듈이다. node.js에서 제공하는 http 모듈보다 더 많은 기능을 제공해 준다. 외부 모듈이기 때문에 설치가 필요하다. $ sudo npm install express 설치를 완료하면 express 모듈로 서버를 생성할 수 있다. 다음은 서버 생성 및 실행하는 예제 코드이다. //extract module var express = require('express'); //create server var app = express(); //setting request event listener app.use(function(request, response){ response.writeHead(200, {'..
[Python] 가상환경 만들기
·
Language/Python
[python]가상환경만들기 [Python] 가상환경 만들기파이썬으로 개발할 때 여러 패키지를 설치하여 진행한다. 하지만 패키지간 충돌이 발생할 수 있기 때문에 각 프로젝트별로 독립된 환경이 필요하다. 그렇기 때문에 가상환경을 제공해주는 virtualenv라는 패키지를 사용한다.설치(ubuntu16.04)먼저 파이썬 패키지 설치를 쉽게 해주는 pip를 설치한다.$ sudo apt-get install curl ##curl이 없어서 설치했음$ curl https://bootstrap.pypa.io/get-pip.py > getpip.py$ sudo python getpip.py 이후 pip를 통해 virtualenv를 설치하면 된다.xxxxxxxxxx$ sudo pip install virtualenv 사..
중복 없는 난수 생성
·
Language/C C++
중복없는난수생성 난수생성함수 랜덤한 수 즉 난수를 생성하기 위해서는 rand함수를 사용한다. xxxxxxxxxx#include#include //rand()#define SIZE 5int main (){ for(int i = 0 ; i
정렬
·
Language/C C++
정렬 정렬정렬이란 사용자가 원하는 순서대로 원소들을 배치하는 것이다. 정렬을 할 수 있는 자료구조에는 배열, 리스트, 그래프가 있다. 정렬은 종류에 따라 속도의 차이가 있다. 아래의 영상을 보면 각각의 정렬 알고리즘들이 정렬을 하는데 걸리는 속도를 한눈에 볼 수 있다.@동영상오늘 우리는 속도가 N^2인 정렬 알고리즘을 공부할 것이다. 먼저 버블정렬을 살펴보자. 버블정렬은 인접한 두 원소를 비교해 나가면서 가장 큰 원소를 뒤로보내는 정렬은 해나가는 정렬이다. 이 때 작업을 n-1번 반복하는데 이유는 n-1번째에는 n번째 역시 정렬되있기 때문이다.xxxxxxxxxxvoid BubbleSort(int* arr, int size){ int i, j; int temp; for( i = 0 ; i
시간 측정
·
Language/C C++
시간측정방법 어느 정렬이 얼마나 빠른지 알고싶다. 프로그램 내에서 시간이 얼마나 지나는지 측정하는데 clock함수를 사용한다. clock 함수는 호출된 시점의 시간을 반환하는 함수이다. 우리를 이를 이용하여 시간측정을 할 수 있다. clock 함수로 시작시간을 구하고연산이 끝난뒤 다시 clock함수를 호출한다.2에서 1을 빼면 얼마나 시간이 지났는지 측정할 수 있다.#include#include // clock()int main (){ double start = clock(); // 측정시작 /*************/ /* 연산내용 */ /*************/ double end = (clock()-s) / CLOCKS_PER_SEC; //초 단위로 표시하기 위해 CLOCKS_PER_SEC을 나누..
[디자인패턴] Strategy Pattern
·
기타/디자인패턴
[디자인패턴]Strategy Pattern [디자인패턴] Strategy PatternStrategy Pattern은 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있또록 만든다. Strategy Pattern을 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 개를 표현하는 클래스를 만들고자 한다. 개는 여러 종류가 있기 때문에 슈퍼 클래스 Dog를 상속받아 여러 종류의 개를 표현할 계획이다. UML을 그리면 다음과 같다. 이렇게 하면 Dog을 상속받아 다양한 개를 표현할 수 있을 것이다. 하지만 개발을 진행하다가 장단감 강아지가 필요해 추가하게 되었다. 장난감 강아지는 소리는 낼 수 있지만 움직이는 기능이 없다. 슈퍼 클래스 Dog의 Bark와 Run과 다..
[디자인패턴] Observer Pattern
·
기타/디자인패턴
[디자인패턴]Observer Pattern [디자인패턴] Observer Pattern디자인 패턴은 공부할 수록 흥미롭다. 이전 프로젝트 개발을 할 때 찝찝했던 부분이 있었는데 그런 부분을 해결할 방법을 알 수 있어서 재미있다. 디자인 패턴에 대한 이해가 왜 필요한지 알고 공부를 하니 더 이해가 잘 된다. 이번에 공부한 옵져버 패턴은 특히 그렇다. 작년에 개발했던 장비 테스터 프로그램이 생각난다. PC가 장비에 연결된 시리얼 포트로 장비의 정보를 수신받아 화면에 출력하는 기능이 있었다. 내가 구현했던 방식은 데이터가 업데이트 되는 부분에서 화면 갱신을 하는 것이었다. 쓰레드를 돌려서 현재 들어온 값이 이전 값과 다르면 화면을 갱신하여 표시했다.private void UpdateLine1Data(){ wh..
JSP 개발 설정
·
Spring Framework
[JSP]개발 환경 설정톰캣을 설치한 뒤 이클립스 설정을 해야한다.첫 프로젝트 생성File - new - project 클릭 Dynamic Web Project 선택 ※Dynamic Web Project가 없다면 ... Eclipse EE를 설치한다.프로젝트 이름을 적은 뒤 target runtime 지정하기 위해 New Runtime 클릭설치한 톰캣 버전 선택설치한 톰캣 경로 지정 후 Finish 클릭Project Explorer에 프로젝트가 생성된 것을 볼 수 있다.서블릿 생성프로젝트 우클릭 -> New -> Sevlet패키지 이름과 클래스 이름 작성next를 누르면 지정되는 URL path를 확인할 수 있다.next를 누르면 여러 메서드를 지정할 수 있다. 예제를 위해 toGet만 체크해준다. 설정..