본문 바로가기

분류 전체보기

Mysql Workbench 설치 및 연결. mysql workbench 설치에 대한 기록. 1. 다운 받기. - https://www.mysql.com/products/workbench/ 에서 다운 받을 수 있다. 2. 접속 해 보기. - workbench에 새로운 연결 설정을 해준다. - Connection Method 는 버츄어 박스에 설치된 Mysql에 연결할 예정이니 SSH로 하고, - SSH Hostname은 '버츄어 박스 IP':22 로 설정한다. - SSH Username은 버츄어 박스 계정이고 - SSH Password는 버유처 박스 계정의 패스워드이다. - ※ 즉, Mysql이 설치된 외부 호스트에 먼저 접속한 다음 MySql에 접속하는 것이다. 3. 설정 입력 후 TestConnection을 눌러서 접속을 확인해 본다. - 아... 더보기
ubuntu Mysql 설치. Mysql 설치에 대한 기록. 1. 버전 확인. 2. 최신 버전 설치. 3. 위의 내용에서 Y 를 누르면 설치가 계속 된다. 4. root 계정의 password를 입력 - 패스워드 확인까지 끝나면 5. 설치가 계속 되고... 완료 된다. 6. 접속 확인. - 중간에 표시 해둔 곳 처럼 mysql에 접속하는 걸로 설치 완료. 더보기
유용한 모듈 3 - nodemailer node.js 에서 메일을 발송할 수 있는 모듈이다. 여기서는 에러 상황에 리포팅을 한다고 가정하고 예제를 작성한다. 준비는 npm install nodemailer 로 모듈을 설치하고 예제를 작성한다. 1. 테스트 예제. - 에러를 발생시키는 예제. 2. 메일 보내기. - Gmail을 사용하여 자동 메일 보내기. 3. 결과 확인. - 온 것을 확인. 4. 메일 내용 확인. 6. 권한 오류가 발생했을때. 구글에 메일을 보내는 계정으로 접속한 후(받는이 아닌 보내는 - 예제의 transporter의 계정.) https://www.google.com/settings/security/lesssecureapps 이동하면. 다음과 같은 화면이 보인다. 본디 앱 허용이 꺼져 있는 것을 사용으로 변경하면 된다. 더보기
유용한 모듈 2 - winston node.js 를 사용하면서 로그를 남겨야 할 상황이 많이 생기는데. console.log() 함수로는 화면에서 지나가 버린 로그를 확인 할 수 없다. 해서 이를 위한 유용한 모듈이 있어 기록을 남긴다. 준비물은 우선 시간을 남기기 위한 moment (이 모듈은 앞서 기록했음.) npm install winston npm install winston-daily-rotate-file 을 설치해 준다. 1. 로그 테스트를 위한 코드. 2. 로그 설정을 위한 코드. - 콘솔에 대한 설정과 파일에 대한 설정으로 나눠져 있다. 3. 기본 화면. - 위의 파일이 main.js 와 winston_test.js 파일로 나눠져 있다. 4. 로그 저장을 위한 logs 폴더를 생성. 5. 실행 화면. 6. logs 폴더로 .. 더보기
유용한 모듈 1 - moment node.js 를 사용하면서 유용한 모듈에 대한 기록. - time 관련된 기능을 가진 모듈이다. 기본적인 기능에 대한 내용을 아래에서 정리한다. 1. 테스트 기능에 대한 본문. 2. 현재 시간 알아보기. 3. 월요일 체크(특정시간에 대한 확인) 4. 다음주에 대한 시간 확인. 5. 년,월,일 정보 얻기. - Month는 0부터 11까지로 표기 되므로 +1을 해주어야 현재 달이 나온다. - 요일은 0~6으로 표기되며, 0을 일요일 6은 토요일이다. 6. 유닉스 타임. 이 테스트의 결과는 다음과 같다. 게시물 작성일과 테스트 결과가 다른것은 미리 준비해 둔 스크리샷이기 때문. 더보기
Socket.io 영문 위키백과에는 ... --------------------------------------------------------------------------------------------------Socket.IO is a JavaScript library for realtime web applications. It enables realtime, bi-directional communication between web clients and servers. It has two parts: a client-side library that runs in the browser, and a server-side library for Node.js. Both components have a nearly ide.. 더보기
Express 기본 설명은 http://expressjs.com/ko/ 에 나와 있는 내용을 정리. Express는 Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크로, 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공한다. 기본적인 웹 애플리케이션 기능으로 구성된 얇은 계층을 제공하며, 자유롭게 활용할 수 있는 수많은 HTTP 유틸리티 메소드 및 미들웨어를 통해 쉽고 빠르게 강력한 API를 작성할 수 있다. 설치는 Node.js가 설치되어 있다는 가정하에, - 이 같은 명령어로 설치한다. 프레임워크이기 때문에 기본적으로 제공하는 형태가 존재하며, 이를 이용해 가장 간단한 예제 "Hello World"를 작성. 작성된 예를 실행하고 웹에서 실행하면다음과 같은 결과를 확인 할 수 있다. [프레임워크].. 더보기
echo Server-Client Test Echo Server와 Client를 만들었으니 결과를 정리한다. 1. 서버 실행. - 순탄하게 올라가지 않았다.- node를 실행하기 위해서 작업 폴더로 이동. : cd testServer- 서버 실행.: node main.js- 이미 포트가 사용중이라며 실패.- 사용중인 포트확인: netstat -tnlp- 확인 후 종료.: kill -15 16609- 다시 서버 실행: node main.js- 실행 완료. 2. 클라이언트 실행. - 서버에서 접속 확인. - 클라이언트에서 접속 확인. 3. 메시지 전송. - 메시지를 입력 후 버튼 클릭. - 서버에서 'asdf' 전달받음 확인 후 돌려줌. - 클라이언트에서 서버로 부터 받은 메시지 화면에 출력. - 받은 내용 로그에서 확인 완료. 간단한 Echo 프로.. 더보기
echo Client 앞서 Echo Server에 상응하는 Client를 만들어 본다. 준비물로 우선 Scoket.io를 사용할 것이기 때문에 https://github.com/NetEase/UnitySocketIO 에서 유니티용 socket.io를 다운 받는다. 또한, 유니티에서 Echo Client를 위한 빈 프로젝트를 하나 생성하였으며, 이 과정은 생략한다. 1. 화면 구성.: Canvas를 추가하고 필요한 기본 화면을 구성한다. - 입력을 받을 Input Field - 메시지를 전달할 Button - 받은 메시지를 보여줄 Text - Text를 더 잘보여주기 위한 배경 Image 2. Plugin 등록과 Script 작성. - 앞서 받은 UnitySocketIO를 Plugin 폴더를 만들고 bin 폴더에 있는 파일들을.. 더보기
echo server 기본적인 형태의 Echo Server를 만들어 본다. 1. 현재 폴더 구조를 확인한다.: ls -al 2. echo server를 위한 디렉터리 생성.: mkdir testServer 3. 서브라임 텍스트를 사용하여 기본 적인 형태의 서버를 생성. 4. 작업 디렉터리로 이동: cd testServer - 미리 작성된 파일을 서브라임 텍스트의 sftp-config.json 파일을 수정하여, 저장시 자동 업데이트를 하도록 설정하여, main.js 파일이 디렉터리에 들어와 있는 것을 확인. 5. 서버 실행.: node main.js 명령어로 서버를 실행. 이것으로 기본적인 에코 서버를 만들었다. 해당 서버는 ReqEchoMsg 커맨드로 들어온 메시지를 AckEchoMsg라는 커맨드로 다시 클라이언트에 돌려줄 .. 더보기
자주 쓰는 명령어 앞으로 ubuntu에 node.js를 사용할때 기본적으로 자주 사용하게 될 명령어를 여기에 기록하고자 한다. [디렉토리]mkdir : 디렉토리 생성.rmdir : 디렉토리 삭제. [이동]cd [디렉토리명] : 해당 디렉토리로 이동.cd .. : 상위 디렉토리로 이동. [리스트 보기]ls - 파일 리스트 보기 (ls -al) [프로세스]ps : 프로세스 확인.kill -15 [프로세스 ID] : 정상적인 종료 시그널을 통한 프로세스 종료.kill -9 [프로세스 ID] : 강제 종료 시그널을 통한 프로세스 종료. [포트확인]netstat -tnlp lsofnmap [버전확인]npm -vnode -vexpress -V : express의 경우 V가 대문자이다. npm list : 설치된 모듈의 버전을 확인 .. 더보기
node.js 설치 및 최신버전으로 업데이트. 앞서 VM에 ubuntu를 설치 했고, npm까지 설치 했으니 node.js를 설치 할 차례이다. 1. node 설치 확인. - node 명령어를 입력해 보니 설치가 되어 있지 않다고 나온다. - 안내 메시지로 sudo apt install nodejs-legacy 를 입력해 설치 하라고 나온다. 2. 안내에 따라 입력해 node.js를 설치 한다. 3. 설치 후 버전 확인. node.js 설치가 완료되어 버전이 확인 됨을 확인 할 수 있다. 4. 최신 버전으로 업데이트 방법. - 1. sudo npm cache clean -f 로 캐쉬 삭제. - 2. sudo npm install -g n 으로 n 모듈 설치. - 3. 버전 설치.: sudo n stable 로 안정화 버전 설치.: sudo n 8.4.. 더보기
ubuntu 설치에 대한 기록 3 - npm 1. VM과 ubuntu를 설치 하고 나면 기본 형태의 ubuntu 서버를 확인 할 수 있다. 2. 아이디와 패스워드를 입력하면 로그인이 되고 기본적으로 사용할 준비가 끝이 난다. 3. npm 설치 확인: npm -v 명령어로 버전을 확인한다. - 설치가 되어 있지 않다고 나오고 안내 메시지로 sudo apt install npm 으로 설치를 하라고 나온다. 4. 안내에 따라 명력어를 입력하여 npm을 설치한다. 5. 설치 후 버전 확인. - 현재 나와 있는 버전 보다 낮다. 6. npm 최신 버전을 사용하기 위해서는 ubuntu를 업데이트 해야 한다. - 아래 명령어로 ubuntu를 최신화 한다. : sudo apt-get update: sudo apt-get upgrade 7. npm 최신화를 위해 .. 더보기
ubuntu 설치에 대한 기록 2 - ubuntu 16.04 앞서 만든 VM에 ubuntu를 설치한다. 설치하는 ubuntu는 16.04 LTS 이다. 1. 만들어진 VM을 클릭하면 시동 디스크 선택화면이 뜬다. 대부분 자동으로 이미지를 자동으로 선택하나 여러버전의 이미지를 가지고 있다면 옆에 폴더 모양의 아이콘을 선택하여 원하는 이미지를 선택한다. 2. 기본 언어 선택을 한다. 일단은 '한국어' 선택. 3. 선택하고 나면 설치 화면이 나오고 설치를 선택하여 진행. 4. 번역이 온전하지 않다고 하지만, 그냥 진행한다. 5. 국가 또는 영역 선택인데 여기서 선택하는 위치에 따라 표준시가 설정 된다. 대한민국 선택. 6. 키보드 설정은 패스. 7. 기본 키보드는 영문으로 선택 8. 호스트 이름 입력 9. 사용자 이름 입력. 10. 암호 입력 11. 표준시 확인. 12.. 더보기
ubuntu 설치에 대한 기록 1 - VirtualBox ubuntu 설치에 대한 기록. 설치는 VirtualBox에 하도록 한다. 설치를 위해서 VirtualBox를 다운 받아 설치한다. ( https://www.virtualbox.org/ ) 1. 새로 만들기 선택 후 이름에 'ubuntu'를 입력하면 종류와 버전이 Linux로 자동 선택 된다. 안된다면 수동으로 선택. 2. 가상 머신에 할당할 메모리 크기를 선택. 현재 PC의 상황을 고려해서 적절하게 선택. 3. 가상 머신에서 사용할 저장공간을 만들어 주고 4. 저장 공간의 타입은 VirtualBox 디스크 이미지로 만들어 준다. 5. 가상 머신의 저장공간 형태를 지정해 준다. 처음부터 정해진 공간을 할당할 것인 최대 값을 설정하고 필요시마다 점점 늘려 갈 것인지를 선택한다. 6. 저장 공간의 크기를 설.. 더보기
[C#] Simple Network Lib 취미 삼아 만들어 본 것.... 사용언어는 c# 이고, 구성은 네트워크 라이브러리, 샘플 서버, 샘플 클라이언트 등이고... 대단한 것은 없으니 본인은 저장용이고, 누군가의 학습용 정도면 되지 않을까? 이제 제대로 만들어 봐야겠다. 더보기
[STL] 지역 변수를 STL Container에 삽입시 발생하는 일. STL Container에 지역 변수를 push하면 발생하는 일. - 지역변수 1. 함수 내부에 선언된다. 2. Life Cycle은 함수의 종료 시점과 같이 한다. 3. 저장소는 therad-stack 이다. 4. thread-stack은 1Mb 이다. 5. 1Mb를 초과하면??? - 어떻게 되는지는 또 찾아봐야지... 우선 계속 진행. - 지역변수를 STL Container에 push 하면. 1. 지역 변수 선언시 thread-stack에 생성. 2. STL Container에 삽입시 new를 통해서 heap에 할당 된다. : Move Semantics를 통해서 가능. ※ 다음 할 이야기. 1. thread-stack 초과시 어떻게 되는가? 2. Move Semantics 자세히 기술하기. 더보기
[C++] 메모리 가시성과 메모리 장벽 메모리 가시성 (Memory Visiblity)1. 정의- Thread에서 변경한 특정 메모리 값이, 다른 Thread에서 제대로 읽어지는가 라고 할 수 있다 2. 문제- cpu의 메모리 아키텍쳐. 즉, 레지스터와 캐쉬가 존재하기 때문이다. : 각각의 코어는 메인 메모리와 별도로 각각의 레지스터와 캐쉬를 가지기 때문이다.- 컴파일러의 최적화: 컴파일러는 프로그램이 최대한 빠르게 실행될 수 있도록 코어의 레지스터와 캐쉬를 사용하도록 한다. 3. 결론- Shared Memory 모델의 Concurrent, Parallel Programming에서는, 한 코어에서의 값 변경을 여러 코어가 공유하는 메인 메모리로 반영하는 작업을 적절히 수행해야 메모리 가시성을 유지할 수 있다 메모리 장벽 Memory Barri.. 더보기
[Design pattern] Singleton Pattern with C++ 11 Singleton Pattern 1. 정의: 클래스에서 만들 수 있는 인스턴스가 오직 하나일 경우에 이에 대한 접근은 어디에서든지 하나로만 통일하여 제공한다. 2. 기본형 : 기본형의 문제는 Thread Safe 하지 않다는 것이다.: Multi-Thread 환경에서 Race Condition이 발생할 수 있다. 3. Double-Checked Locking Pattern (DCLP): 해제는 제외.: 두 번의 체크와 락을 통해서 Thread 안정성을 확보 한다. 4. Using C++11 Atomic (Acquire and Release Fences)- Atomic Class: 정수형 또는 포인터 타입에 대해 산술 연산들을 atomic하게 수행할 수 있도록 해주는 템플릿 클래스.: 이전 atomic 연.. 더보기
[C#] ThreadPool 기본 사용. c# 에서 제공하는 기본 쓰레드 풀 사용해 보기. 1. 테스트를 위한 컨테이너 선언. - Thread에 안전한 ConcurrentDictionary로 선언.2. 컨테이너에 값 삽입. 3. 루프를 돌면서 컨테이너에서 값 하나 꺼네서 제공하는 쓰레드 풀에 삽입.4. 끝나는 시간에 차이를 두기 위해서 테스트용 함수 안에서 랜덤하게 슬립을 걸도록 한다.5. 마지막으로 main 함수 에서 스레드가 종료되기 전에 메인 쓰레드가 종료되는 것을 막기위해서 ReadLine을 선언. 끝. 더보기