전체 글

전체 글

    [Node.js] 실시간 채팅 서비스 만들기(2) - 서버 실행

    [Node.js] 실시간 채팅 서비스 만들기(2) - 서버 실행

    안녕하세요 이번 강좌에서는 지난번에 설치한 Express 모듈을 사용하여 서버를 실행해보도록 하겠습니다! [목차] 1. 모듈 불러오기2. Express 객체 생성3. 서버 실행 지난 시간에 express와 socket.io 모듈을 설치하였습니다. 폴더에 app.js 파일을 하나 생성해주세요! 생성 후 폴더 구조는 아래와 같습니다. (지운 파일은 저만 해당되기 때문에 지웠습니다) app.js 파일에 아래 코드를 입력해주세요!(초록색으로 된 부분 /* */ 은 주석이므로 작성하지 않아도 됩니다)주석에 설명이 작성되어있습니다. require를 사용하여 모듈을 불러올 수 있습니다. 마지막 부분의 listen 메소드를 통해 원하는 포트번호로 서버를 시작할 수 있습니다. listen(포트, 리스너) 지정한 포트로 ..

    [Node.js] 실시간 채팅 서비스 만들기(1) - 준비

    [Node.js] 실시간 채팅 서비스 만들기(1) - 준비

    안녕하세요 이번 강좌에서는 Node.js 기반의 실시간 온라인 채팅 서비스를 개발해볼 예정입니다! 사전 지식이 부족하더라도 충분히 따라올 수 있도록 작성할 계획입니다. 서버는 Node.js클라이언트는 웹으로 진행하도록 하겠습니다! [목차] 1. 개발환경 준비2. 필요 모듈 설치 개발환경 준비 http://codevkr.tistory.com/12 위 링크를 통해 Node.js와 VSCode를 설치해주세요!(글에 나와있는 Brackets를 사용해도 되지만 저는 VSCode로 진행할 계획입니다) 원하는 폴더를 생성하고 npm init를 진행하여 package.json 도 생성해주세요!(위 링크에 모두 나와있습니다) 필요 모듈 설치 VSCode로 package.json 파일이 있는 폴더를 열어줍니다. Ctrl ..

    [일상] 카카오톡 플러스친구 챗봇 운영 현황

    [일상] 카카오톡 플러스친구 챗봇 운영 현황

    안녕하세요! 3월 중 카카오톡 자동응답 API를 사용하여 저희 학교 챗봇 개발을 시작하였습니다. 3월 11일 부터 정식으로 오픈 선언을 하였구요 가까운 선생님 분들께 미리 소식을 전했습니다. 3월 20일에 페이스북을 통한 홍보를 진행하며 플러스 친구 수가 엄청 늘어났습니다. 3월 ~ 현재(2018-05-26) 현재 친구 수는 211명 입니다. 학생, 학부모, 선생님 등 다양한 분들이 사용하고 계십니다. 주로 주말에는 채팅 요청이 매우 적고 등교하는 날에는 평균적으로 50명 이상의 사용자분들이 채팅을 요청하고 있습니다. 가장 많이 요청했던 날에는 101명이나 채팅을 요청하였습니다. 주요 기능이 급식, 버스, 학사일정, 날씨 등 인데 급식 기능을 가장 많이 사용하고 있는것으로 판단 됩니다. 서버는 저희 집에..

    [Node.js] 전국 학교 급식, 학사일정 파싱 라이브러리

    [Node.js] 전국 학교 급식, 학사일정 파싱 라이브러리

    [ school-kr ] @@ Node.js 전용! @@ 안녕하세요 얼마 전에 Node.js용 학교 급식 및 학사일정 파싱 모듈을 개발했습니다. 2017년 2월달부터 학교 급식 파싱에 대한 내용은 꾸준히 찾아보고 구현해왔는데 학사일정 부분에 대해서는 아래 라이브러리를 참고하여 새롭게 포팅했습니다. https://github.com/agemor/school-api 위 라이브러리는 자바 라이브러리 이므로 Node.js 에서 사용이 불가능합니다. 그래서 저는 Node.js 에서 사용할 라이브러리로 새롭게 포팅했습니다. [Github] https://github.com/leegeunhyeok/school-kr [NPM] https://www.npmjs.com/package/school-kr Node.js 웹 서..

    [JavaScript] 비동기 함수(Async/Await)

    [JavaScript] 비동기 함수(Async/Await)

    안녕하세요 이전 포스팅에서는 콜백함수와 Promise 패턴에 대해 알아보았습니다. 이번 시간에는 비동기함수(Async function)에 대해 알아보도록 합시다! Node.js에서는 7.6버전부터 지원이 된다고 하니 알아두면 좋을것같습니다! 먼저 비동기함수에 대해 알아보기 전에 프라미스 패턴으로 구현한 간단한 예제를 봅시다. 위 예제는 이름이 비어있지 않으면 **님 반갑습니다! 를 출력하고만약 이름이 비어있으면 이름이 비어있다고 알려주는 예제입니다. 프라미스 패턴으로 구현되어있습니다. 프라미스 작동방식에 대해 이해하셨다면 금방 분석이 가능합니다. 아래 사진은 위 예제를 실행한 결과입니다. 이름이 'Lee' 이므로 정상적으로 출력이 됩니다. 만약 10행에서 'Lee' 대신 ''를 전달했다면 프라미스가 re..

    [JavaScript] 프라미스(Promise) 패턴

    [JavaScript] 프라미스(Promise) 패턴

    안녕하세요 오늘 포스팅 주제는 자바스크립트의 Promise 패턴입니다! 지난 포스팅에서는 비동기 작업을 위해 콜백 함수를 사용한다고 했었습니다.하지만 콜백 함수는 가독성 등의 단점이 있기 때문에 여러 개선 방법이 있다고 설명했죠 그 중 하나가 프라미스(Promise) 패턴입니다! [예제는 Node.js 환경에서 테스트할 예정이구요 Node.js 뿐만 아니라 웹 브라우저에서 사용하셔도 동일합니다!] 먼저 설명 전 이전 시간에 진행했던 콜백 함수의 코드를 프라미스 패턴으로 동일하게 변경해보도록 하겠습니다! (콜백 함수사용 패턴) (프라미스 패턴) (프라미스패턴 코드 실행 결과, 콜백함수와 동일) 코드를 비교해보면 많이 바뀌었습니다. 하지만 기능은 동일하죠 더 어려워지고, 복잡해지고, 불편해보이실지는 몰라도 ..

    [JavaScript] 콜백(Callback)함수와 비동기

    [JavaScript] 콜백(Callback)함수와 비동기

    안녕하세요 이번 포스팅에서는 자바스크립트의 콜백함수(Callback)패턴에 대해 알아보도록 하겠습니다! 콜백함수를 쓰는이유? 중 대표적인것은 "비동기" 처리를 위해서인데요 콜백함수 뿐만 아니라 프라미스(Promise), Async/Await(비동기함수)도 씁니다. 이번 포스팅은 콜백함수에 대해 알아보도록 하겠습니다! [예제는 Node.js 환경에서 테스트할 예정이구요 Node.js 뿐만 아니라 웹 브라우저에서 사용하셔도 동일합니다!] 자바스크립트의 변수에는 숫자, 문자, 객체 등등을 담을 수 있습니다.심지어 함수까지 저장이 가능합니다. 함수는 자바스크립트에서 일급 객체입니다. https://ko.wikipedia.org/wiki/%EC%9D%BC%EA%B8%89_%EA%B0%9D%EC%B2%B4 일급 객..

    [Unity] 어메이징 볼링 1.0

    [Unity] 어메이징 볼링 1.0

    안녕하세요 이번 포스팅에서는 강좌를 보고 직접 개발해본 게임을 배포하려고 합니다 대포를 발사할 위치를 선정한 후 파워 조절을 해서 목표물을 맞추는 게임입니다. 목표를 맞추면 가까운 반경의 목표물들이 파괴되고 그에 따라 점수가 올라갑니다. 다운로드는 아래 깃허브 릴리즈 페이지에서 다운로드 가능합니다. https://github.com/leegeunhyeok/Amazing-Bowling/releases 소스코드는 깃허브에 모두 올려두었으니 참고하시길 바랍니다. https://github.com/leegeunhyeok/Amazing-Bowling 감사합니다.

    [C/C++ 자료구조] 단일 연결리스트(Linked list) - 출력, 검색, 메모리 해제

    [C/C++ 자료구조] 단일 연결리스트(Linked list) - 출력, 검색, 메모리 해제

    안녕하세요 이번 포스팅에서는 지난 포스팅에 이어서 출력함수검색함수메모리 해제 함수 를 구현해보도록 하겠습니다! 지난시간의 코드에서 조금 수정, 삭제를 해봅시다. 함수 선언 부분에 위와같이 3개의 함수를 선언해줍니다. 함수 이름은 원하시는걸로 하셔도 됩니다.저는 알기 쉽게하기 위해 관련 단어로 조합하였습니다. 선언해두었으면 맨 아래에 구현 부분을 위와같이 작성해줍니다. 메인함수는 위처럼 간단히 수정해줍니다. 기존의 출력 부분은 복사해서 출력함수에아래와 같이 붙여넣기해주세요 출력함수는 벌써 구현이 끝났습니다! 이전시간에 이미 다 만들어놓은것을 함수로 나누기만 했습니다. 이번 포스팅에서 실제 구현할 부분은 검색과 메모리 영역 해제(free) 부분입니다. 검색기능 구현 전에 아래 그림으로 어떻게 구현할지 생각해..

    [C/C++ 자료구조] 단일 연결리스트(Linked list) - 추가, 삭제

    [C/C++ 자료구조] 단일 연결리스트(Linked list) - 추가, 삭제

    안녕하세요 이번 포스팅에서는 이전 시간에 구현하였던 간단한 연결리스트 예제에서 노드 추가, 삭제 함수를 구현해보도록 하겠습니다! 연결리스트에 대해 개념만 잘 이해하셨다면 금방 이해하실 수 있습니다! 지난번 소스코드를 약간 수정하고 추가를 해봅시다. 메인함수 안의 코드는 머리노드 생성 부분과출력 부분만 남기고 지워주시구요 구조체 선언 아래에 함수 선언을 해주시면 됩니다! 그리고 맨 아래처럼 선언한 함수를 구현하기 위해 준비를 해주세요 지난 시간에도 간단히 설명했던 노드 추가 부분 입니다. 처음 노드는 HEAD 노드라고 칭합니다. 처음 HEAD 노드를 생성하면 다음 노드는 없습니다(NULL) 그래서 HEAD 노드는 다음 노드 주소로 NULL을 가리키고 있죠. HEAD 노드 다음에 새로운 노드를 추가를 한다면..