hooni

Contents

About hooni.net
1
Editor Window

스마트폰 게임 오토 매크로

# 스마트폰 게임 오토 매크로 개발 2012.11~2012.11
참여 인원
1명
담당 업무 및 역할
캔디팡 게임 오토 매크로 개발
사용 언어 및 플랫폼
Python / Bluestacks
주요 내용
캔디팡 게임을 자동으로 실행해서 고득점을 얻을 수 있는 오토 매크로 프로그램

#캔디팡 게임이란?
7x7 크기의 2D 화면에 5가지 종류의 색상의 블록이 랜덤하게 배치되고,
좌우상하로 연속된 3개 이상의 같은 색상의 블록을 터치하면 블록이 제거되면서 점수를 얻는 게임.

#구현/동작 원리
짧은 주기마다 게임 화면을 챕쳐해서 색상을 통해 블록을 인식하고 제거 가능한 패턴을 찾는다.
Python의 win32 라이브러리를 이용해 마우스 포인터를 움직여 스스로 게임을 하도록 제작함.

[동영상] http://youtu.be/orlkJarcP7M
2
Editor Window

스마트폰 게임 오토 매크로 개발

# 스마트폰 게임 오토 매크로 개발 2012.11~2012.11
담당 업무 및 역할
애니팡 오토 매크로 개발
사용 언어 및 플랫폼
Python / Bluestacks
주요 내용
애니팡 게임을 자동으로 실행해서 고득점을 얻을 수 있는 오토 매크로 프로그램

#애니팡 게임이란?
7x7 크기의 2D 화면에 6가지 종류의 캐릭터 블록이 랜덤하게 배치되고,
특정 블록을 좌우상하로 이동(드래그)하여 인접한 블록과 위치를 바꿀 수 있다.
좌우상하 방향으로 연속된 3개 이상의 동일한 블록이 있을 경우 제거되면서 점수를 얻는 게임.

#구현/동작 원리
짧은 주기마다 게임 화면을 챕쳐해서 캐릭터의 특징을 통해 블록을 인식하고,
어떤 블록을 어느 방향으로 이동해야 하는지 가능한 패턴을 찾는다.
Python의 win32 라이브러리를 이용해 마우스 이벤트를 발생시켜 스스로 게임을 하도록 제작함.

[동영상] http://youtu.be/FQVG1haUM9w
3
Editor Window

D-Day 메모 앱

# D-Day 연동 메모 앱 개발 2011.12~2012.02
참여 인원
1명
담당 업무 및 역할
D-Day 연동 메모 앱 개발
사용 언어 및 플랫폼
Objective-C / iOS
주요 내용
메모와 D-Day 정보를 한번에 편리하게 관리고 직관적으로 확인할 수 있는 D-Day메모.
여러 가지 많은 기능을 제공하는 메모 앱의 경우 느리고 직관성이 떨어져 사용하기 번거롭고,
D-Day 계산만을 제공하는 단순한 앱은 더 많은 정보를 효율적으로 보여주지 못하는 듯 하여 하나 만듦.
리스트에 D-Day 정보와 제목을 함께 노출하여 한 눈에 많은 정보를 직관적으로 볼 수 있게 하고,
다양한 조건 별 정렬, 검색, 폴더설정, 폰트, 사진첨부, 백업/복원, 암호 기능 등의 부가기능을 지원.

[AppStore] https://itunes.apple.com/app/id498252718?mt=8
4
Editor Window

Javascript로 만든 포트리스

# Javascript로 만든 포트리스 2010.10~2010.10
참여 인원
1명
담당 업무 및 역할
Javascript로 만든 포트리스
사용 언어 및 플랫폼
Javascript,HTML,CSS / Web (Front-end)
주요 내용
포물선 운동 공식을 이용해 게임 요소를 적용함.
화면의 방향키와 스페이스바 버튼은 롱탭을 인식하고,
지루함을 줄이고자 랜덤 발사와 오토샷 버튼을 추가함.

[PC] http://toy.picomax.net/fortress/
[Mobile] http://toy.picomax.net/fortress_mobile/
5
Editor Window

LegoNXT로 만든 탱크

# LegoNXT로 만든 탱크 2010.08~2010.08
참여 인원
1명
담당 업무 및 역할
iPhone+iPad+LegoNXT 무선 조종 탱크
사용 언어 및 플랫폼
C/C++, Objective-C / iOS(iPhone/iPad), LegoNXT
주요 내용
LegoNXT를 통해 탱크의 본체를 만들고 좌우에 모터를 연결함.
레고 마인드스톰의 입력은 RGB컬러센서에 연결되어 iPhone의 화면의 색상에 따라 방향(전후좌우)을 결정
출력은 모터에 연결되어 방향에 따라 필요한 모터를 구동함.
iPad는 iPhone과 Bluetooth로 통신하며 방향에 맞는 색상을 iPhone 화면에 출력함.

[동영상] https://youtu.be/rgCGdBeCCjw
6
Editor Window

네트워크 트래픽 모니터

# 네트워크 트래픽 모니터 2008.05~2008.06
참여 인원
1명
담당 업무 및 역할
네트워크 트래픽 모니터
사용 언어 및 플랫폼
C/C++, PHP, HTML, Javascript / Linux, Web
주요 내용
C/C++로 작성된 프로그램이 데몬으로 실행되고 매 초마다
로컬의 트래픽 정보를 수집하고 시각화를 위한 그래프를 생성.

과거 소개한 프로그램들과 유사하지만 데이터가 약간 다름.
주로 분석할 수 있는 시간 단위와 GD를 적용한 부분의 차이.

초당 수집되는 패킷 데이터의 양은 엄청나고 이를 오랜 기간 저장하고 분석하는 것이 어렵기 때문에,
분 단위의 평균 정보를 일정 시간 저장하고 이를 특정 시간 단위의 평균으로 다시 변한하여 해당 시간과 매핑.
1분 단위의 평균은 최근 6시간에 대한 기록이며, 5분 단위는 평균은 최근 1일에 대한 기록,
30분 단위의 평균은 최근 일주일에 대한 기록, 2시간 단위의 정보는 최근 1달에 대한 기록을 보여줌.

특정 프로토콜(R/ARP, SNMP 등)의 차이로 완벽하지 않지만 현재 서비스 받고 있는 IDC에서 제공하는 통계와 결과가 동일함.
7
Editor Window

MSN을 이용한 서버(콘솔) 관리

# MSN을 이용한 서버(콘솔) 관리 2008.03~2008.06
참여 인원
1명
담당 업무 및 역할
MSN을 이용한 서버(콘솔) 관리 개발
사용 언어 및 플랫폼
C, C++ / Linux(Server), Windows(Client)
주요 내용
당시 MSN 메신저의 프로토콜과 인증 방식이 공개됨.
이런 정보를 활용해 출시된 클론 메신저가 많았음.
많은 클론 메신저와 다른 접근 방식으로, 리눅스 서버를 운영중이었고 이를 메신저를 통해 자연어로 관리.
본인의 MSN 계정과 리눅스 서버 전용의 MSN 계정을 연결하여 대화창으로 서버에게 명령하고 결과를 열람.
특정 단어나 행위를 MySQL DB에 미리 정의하고 프로그램은 대화 내용에 정의된 키워드가 있을 경우,
이를 DB에서 조회하여 정의된 명령셑을 실행하고 결과를 대화창에 리턴함.
리눅스 명령어에 대한 코드가 있다면 이를 실행하고 결과를 메신저의 채팅으로 보여주게 됨.
8
Editor Window

Ajax를 이용한 실시간 서버 모니터링/관리

# Ajax를 이용한 실시간 모니터링 2007.10~2008.01
참여 인원
1명
담당 업무 및 역할
Ajax를 이용한 실시간 서버 모니터링/관리 시스템 개발
사용 언어 및 플랫폼
C/C++, PHP, HTML, Javascript / Linux(Server), Web(Client)
주요 내용
웹 브라우저에서 서버의 리소스, 네트워크, 프로세스 등의 상태를 조회하고 관리할 수 있는 솔루션
+ 리소스 : 메모리와 CPU 이용률과 같은 주요 리소스 정보
+ 디스크 : 디스크 사용률과 각 파티션과 디렉토리의 사용률
+ 네트워크 : 네트워크 이용률과 각 프로토콜 별 유량을 그래프로 확인
+ 프로세스 : 프로세스를 트리형태로 보여주며 종료/재시작 명령 실행 가능
+ 접속자 : 현재 접속자와 최근 접속자 리스트를 보고 접속종료 명령 실행 가능
메인 화면의 신호등은 현재 서버의 리소스와 트래픽의 종합적인 상태를 요약해서 알맞는 색상을 노출.

구조는 크게 세 부분으로,
첫째, 각 데몬 형식으로 동작하며 정보를 수집하고 DB에 저장하는 프로세스
둘째, DB의 정보를 웹으로 출력하거나 명령을 입력하는 프로세스
셋째, 명령을 실제로 실행하고 결과를 리턴해주는 프로세스
9
Editor Window

암호화 알고리즘을 적용한 VoIP 전화

# VoIP 클라이언트에 암호화 적용 2006.05~2006.06
참여 인원
1명
담당 업무 및 역할
암호화 알고리즘을 적용한 VoIP 클라이언트 개발
사용 언어 및 플랫폼
C/C++, GTK lib. / Linux
주요 내용
당시 국제전화보다 저렴하여 각광받던 VoIP 클라이언트의 음성 데이터에 대한 암호화.
네트워크의 음성데이터는 간편한 방법으로 수집되고 다시 음성데이터로 복원되기 때문에,
음성 데이터 보호를 위해 안전한 키 교환 방식과 다양한 암/복호화 알고리즘을 적용.
키 교환은 Diffie-Hellman 방식을, 암호화는 고려대 정보보호대학원에서 개발한 몇 가지 알고리즘을 적용.
학교 행사로 2006년 ITRC 포럼에 출품하고 당시 정보통신 차관님이 부스에 방문하여 시연함.
10
Editor Window

Ajax를 이용한 네트워크 프로토콜 모니터링

# 프로토콜의 실시간 모니터링 2005.08~2006.01
참여 인원
1명
담당 업무 및 역할
Ajax를 이용한 네트워크 프로토콜의 실시간 모니터링
사용 언어 및 플랫폼
C/C++, PHP, HTML/CSS, Javascript / Linux, Web
주요 내용
과거 pcap library를 이용해 만들었던,
네트워크 프로토콜 모니터링 프로그램의 출력을 웹으로 구현.

구조는 크게 두 부분으로 정보수집과 출력 부분.
수집된 패킷들의 정보를 In/Out, Protocol/Port 등으로 분류하여 MySQL DB에 저장하고,
이를 한 눈에 볼 수 있도록 PHP의 GD Library를 이용하여 라인그래프, 파이차트와 테이블로 출력.

Ajax를 이용해 지정된 시간마다 그래프의 내용을 웹 페이지의 재요청(새로고침) 없이 자동으로 갱신,
이상행위가 의심되는 IP나 프로토콜/포트 등을 조회 가능함.
초당 수 만 건의 패킷 데이터가 수집되므로 그래프를 표현하기 위한 시간 단위만 저장됨.
11
Editor Window

웹 터미널/FTP 개발

# 웹 터미널/FTP 개발 2003.11~2003.12
참여 인원
1명
담당 업무 및 역할
웹 터미널/FTP 개발
사용 언어 및 플랫폼
C/C++, PHP, HTML/CSS / Linux, Web
주요 내용
#탐색기/FTP
방화벽 때문에 터미널/FTP 포트가 막혔더라도 웹 브라우저를 통해 계정의 파일/디렉토리에 접근/편집이 가능.
실제 윈도우 탐색기와 유사한 UI/UX를 적용하여 좌측에 트리 형태로 디렉토리를 출력하고,
우측에 해당 파일/디렉토리에 대한 리스트를 출력하고 마우스 오른쪽 버튼을 통해 팝업메뉴 실행.
텍스트 문서 편집은 물론이고 PHP 코드도 모두 열람과 수정이 가능함.

#터미널
PHP 명령실행 함수를 보면서 재미 삼아 추가한 기능으로 실제 터미널 클라이언트와 비슷한 UI를 위해 노력함.
당시 웹 터미널이 해킹에 활용되면서 KISA에서 아파치 보안 모듈(mod_security)을 배포하고 사용을 권고함.
하지만 이런 이슈들을 감안하여 KISA에서 배포한 mod_security의 룰을 우회할 수 있도록 수정함.
12
Editor Window

미로찾기

# Javascript로 만든 미로찾기 2003.06~2003.06
참여 인원
1명
담당 업무 및 역할
플러딩 알고리즘을 적용한 미로찾기
사용 언어 및 플랫폼
C, HTML, Javascript / Linux, Windows, Web
주요 내용
2D 평면의 장애물을 피해 최단 거리로 이동한다.
과거 DOS 환경에서 구현했던 미로찾기프로그램을 Javascript를 이용해 웹 환경으로 다시 구현.
전후좌우의 4가지 방향에 대한 Sprite Image를 이용해 캐릭터가 걸어가는 모습을 표현하고,
플러딩 알고리즘을 이용해 지도에서 블럭을 피해가는 길(path)을 탐색.

마우스의 왼쪽/오른쪽 버튼을 이용해 블럭(미네랄)을 추가하거나 캐릭터를 이동시킬 수 있음.
모바일 버전의 경우 탭/롱캡을 이용해 PC버전과 동일한 기능을 실행함.
해당 웹 페이지에 구현 원리에 대한 간단한 문서가 링크로 제공됨.

[PC] http://toy.picomax.net/miro/
[모바일] http://toy.picomax.net/miro_mobile/
13
Editor Window

JS로 구현한 WindowsXP

# JS로 구현한 WindowsXP 2003.02~2003.02
참여 인원
1명
담당 업무 및 역할
JS로 구현한 WindowsXP
사용 언어 및 플랫폼
PHP, HTML/CSS, Javascript / Web (Front-end)
주요 내용
WindowsXP를 모방한 웹페이지.
군대에서 놀면 뭐하냐 라는 생각으로 만들기 시작해서..
부팅화면과 종료화면, 바탕화면, 시작메뉴와 몇몇 응용 프로그램의 UI를 그대로 재현.
마치 웹 브라우저에서 윈도우를 실행하는 모습처럼 재미 요소를 갖추고 있음.
사용자 계정은 MySQL과 연동되며 사용자마다 아이콘과 응용프로그램의 위치와 속성을 바꿀 수 있음.
14
Editor Window

GD Lib를 이용한 데이터 출력

# GD library를 이용한 그래프 생성 2003.01~2003.01
참여 인원
1명
담당 업무 및 역할
GD library를 이용한 그래프 생성
사용 언어 및 플랫폼
PHP, GD library / Linux, Web
주요 내용
친구의 과제 부탁으로 만들었다가 버리기 아까워서 살려둔 토이 프로그램.
웹 페이지에서 데이터를 입력/수정하면서 해당 데이터에 대한 그래프(PHP GD library)를 동적으로 생성.
+ 막대 그래프 (2D/3D)
+ 라인 그래프
+ 파이 차트

[Demo URL] http://toy.picomax.net/supiter/
15
Editor Window

C언어를 이용한 CGI 프로그래밍

# C를 이용한 CGI 프로그래밍 2001.12~2002.03
참여 인원
1명
담당 업무 및 역할
C를 이용한 CGI 프로그래밍
사용 언어 및 플랫폼
C/C++, PHP, HTML, Javascript / Linux, Web
주요 내용
현재 잘 사용되지 않지만 2001년 당시는 주로 Perl이나 C언어를 이용해 웹 페이지를 개발.
C언어를 배우면서 자료구조/알고리즘을 시각화 하고 싶은 욕구에 C를 이용한 웹 프로그램에 도전.
요즘의 서버 사이드 언어들이 지원하는 Request/Response 등의 기능을 직접 해결해야 하기 때문에,
문자열 처리(분리,파싱,인/디코딩 등)에 대해 많은 경험을 해보게 됨.