2009년 3월 28일 토요일

Web Design Portfolio


<2008년~2009년>
성균관대학교 정보통신공학부 홈페이지 (2009년 상반기 리뉴얼 예정)

대학중심포탈사이트 온유니브 - 성균관대학교 (배타 서비스)

성균관대학교 경력개발센터 양현관

SKKU Summer School


<2007년>

성균관대학교 정보통신공학부 (레이아웃만)

ICC Online Fellowship

재성균관 중동고 동문회

성균관대학교 성평등상담실

성균관대학교 출판부

삼성전기 첨단기판 연구센터


<2005년 ~ 2006년>

SKIMA INTRANET PROJECT MANAGEMENT SYSTEM

성균관대학교 공과대학 영문홈페이지

성균관대학교 교수평의회

성균관대학교 예술학부

캠퍼스 명소 탐방 - KDC2005 대상

성균관대학교 봉룡학사

2009년 3월 27일 금요일

[T옴니아 윈도우 모바일 소프트웨어 경진대회] 시상식 후기!



어제 T옴니아 윈도우 모바일 소프트웨어 경진대회 시상식에 다녀왔습니다. SKT-MS Mobile Partner Summit이라는 행사 중에 시상식이 있었는데요, 저는 얼떨결에 수상해서 좀 부담스러운 자리였습니다. ㅜㅜ

아래는 수상작들입니다.

<어플리케이션 부문>
대상
SayCast
금상
Drum&Drummer
omniano 'The band
은상
자산도우미(Asset Assister)
iReferee
BLIM (Bus Life In Mobile)

<테마부문>
대상
수상자 없음
금상
ZP Theme Ver1.0
Cube_Tomnia
은상
내손에 조약돌
T-OMNIA MAN
Human Network

저는 이 중 어플리케이션 부문 은상 iReferee를 만들어서 수상하게 되었는데요... 다른 훌륭한 작품이 많았었는데다, 저는 대회에 참가했다는 사실조차 잊고 있던 중에 이렇게 수상하게 되서 감개무량할 뿐이고! 다른 고생하신 개발자 분들께는 죄송할 따름입니다ㅜ
http://thinksquare.tistory.com/31 (iReferee관련 포스트)


사실 저는 이번 경진대회 중 참가를 유도하기 위해 있었던 마우스 이벤트 때문에 7시간동안 만들어 제출한 것이 얼떨결에 수상하게 되었는데요, 이 어플리케이션 외에 실제로 대회 참가를 위해 준비하던 어플리케이션은 시간 부족과 실력 부족으로 완성하지 못했습니다. 사실 그럭저럭 쓸만한 수준까지는 개발이 됐습니다만 이번 대회가 끝이 아니라 계속적으로 대회가 있다고 들었기 때문에 그냥 조용히 다음 대회를 노리기로 했었죠...

그리고 결정적으로 금상을 수상하신 "omniano 'The band"라는 작품이 업로드된 걸 보고 결정적으로 포기한 것이기도 했는데요, SayCast에 밀려 금상에 그친 것이 좀 안타깝기도 했습니다. 개인적으로 omniano의 경우 아이디어 자체보다는 UX가 정말 놀라웠고, 윈도 모바일 프로그래밍을 처음해보는 저로써는 정말 수준높은 작품이라고 생각했었기 때문에 다시 한 번 박수 쳐드리고 싶습니다.

이번 대회는 첫대회니 만큼 수상작과 발표시기 대회 운영등에 있어 많은 문제점이 있기도 했었는데요... 제 자신도 제가 만든 어플리케이션이 수상한 것이 의외며 논란의 여지가 있을 수도 있다고는 생각합니다만, 애초부터 점수 배점이 기술적인 면은 없더라구요... 저같은 경우 창의성에서 점수가 높지 않았나 합니다... 그리고 실제 옴니아에서 얼마나 잘 작동하느냐를 많이 보신 거 같구요... 경진대회의 성격인 만큼 기술의 수준보다는 아이디어 위주로 보지 않았나 합니다. 그리고 많은 훌륭한 작품들에 대해서는 SKT APP스토어를 통해 사업의 기회를 많이 열어줄 예정이라고 하시니 기대하셔도 좋을 듯 합니다. 저도 iReferee를 타이틀도 바꾸고 디자인과 기능을 한 차원 더 업그레이드를 해서 부끄럽지 않게 내놓아야겠습니다 ^^... 마지막으로 대회운영에 대한 이야기를 좀 더 하자면 어느 누구의 잘못도 아닌 오해로 비롯된 논란인 거 같구요,
1. 첫 대회였다는 점.
2. 회사와 일반부가 섞여 수준의 평준화가 힘들었다는 점.
(앞으로는 회사단위 참가와 일반부 참가를 나누던지 해야 더 많은 참여를 유도하고 대회의 수준이 올라갈 것 같다는 개인적인 생각이 있습니다.)
3. 참가자분들 중 화끈하신(!?)분들이 계셨다는 점.
이런 점 때문에 안타깝게도 대회 마무리가 약간 좋지 않았다고 생각합니다. 운영하시는 분들은 정말 열심히 하시고 수고하신 거 같은데 안타깝습니다. (제가 수상을 하게되서 이런 마음이 드는 걸까요?!)

어쨌든, 이제 제가 지난 겨울방학동안 참가한 공모전들은 모두 마무리가 되었는데요... 개인적으로는 성과가 많았던 겨울방학이었던 거 같습니다. 제가 성균관대학교에 재학중인데 한가지 비난을 하자면 저희 학교 학생들이 무척 의욕이 없거든요... 오로지 안정된 직장하나만을 바라보고 이도저도 아닌 삶을 사는 사람들이 많아서 항상 답답했었고 저역시도 그런 분위기에 휩싸여 학교 밖 세상에 나서는 것이 쉽지 않았었는데 휴학하고 여러 활동과 제가 하고 싶은 공부를 하면서, 그리고 공모전에서 수상을 하면서 많은 분들을 만나뵈면서 현 개발자분들의 수준과 트랜드를 알게되어서 정말 뜻깊었던 거 같습니다.

이제부터는 공모전은 자제하고, UIzard와 iPhone, 윈도 모바일에 집중해보려고 합니다. 그리고 많은 분들을 만나뵈면서 느낀 거지만 정말 자기 PR의 시대인 거 같더라구요... 블로그에 현재까지의 포트폴리오를 정리하는 시간도 가져볼까 합니다!

2009년 3월 22일 일요일

UIzard 소스 공개를 위해 준비 중입니다.


제가 만들어 놓고도 소스가 워낙 엉망이라 익숙해지는데 2~3일은 걸린 거 같습니다. 오늘부터 속도가 좀 나기 시작했는데요... 다음과 같은 몇 가지 기능이 추가되었습니다.

- 프로젝트의 저장/불러오기 (Web으로부터)
- Code Editor를 Code Mirror라는 Syntax Highlighting이 되는 Editor로 교체했습니다.
- 각종 아이콘의 교체...
- Code의 Undo, Redo, Select All, Indent All, Find, Replace 등

4월 1일에 오픈하는 게 목표인데요...
매쉬업 대회 직후 폭주한 관심때문에 많이 부담스러웠었는데 오히려 관심이 없어져서 지금은 부담감도 없고 편안하고 조용히 오픈할 수 있을 것 같습니다.
 
공개하기 전까지 추가할 기능은 다음과 같습니다.

- 프로젝트 내보내기 기능
- CSS 편집 기능
- Prototype, jQuery 등의 Javascript 라이브러리 지원
- Menu 편집 기능
- Treeview 편집 기능
- 각종 단축키 활성화
- Local XML Setting

이 외에도 욕심부리고 싶은 기능들이 많은데요... 그 기능들을 다 구현하려면ㅜㅜ... 갈 길이 많이 멀었다는 생각이 드네요... 앞으로 안정적인 전문 개발 도구가 되기 위해서 좀 더 많이 배우고 좀 더 열정적으로 코딩해야겠습니다ㅋㅋ

2009년 3월 20일 금요일

[iPhone] UIView, CGPoint, CGSize, CGRect

UIview
- 아이폰 화면에 보여지는 대부분은 View
- View는 색, 그림, 버튼들을 가질 수 있다
- 드래그, 크기 조정, 겹침 등이 가능
- UIView는 GUI를 구성하는 단위 블록
- UIWindow는 특별한 UIView


CGPoint
- 포인트는 x와 y 좌표로 정의된 위치를 말한다.
 

CGSize
- 폭과 높이를 가지는 구조체

 
CGRect
- 모든 View는 경계를 정의하는 데 프레임을 사용한다.
- 프레임은 뷰의 위치, 폭, 높이와 같은 외형을 지정한다.
- 코어 그래픽 구조를 사용하여 프레임 직사각형을 정의한다.
- 프레임은 보통 시작점(CGPoint)과 크기(CGSize)로 구성된다.



Reference : The iPhone Developer's Cookbook - Erica Sadun

2009년 3월 18일 수요일

[PHP] PHP로 파일 압축/해제하기 - PclZip Library

PHP만으로도 zip/tar 등의 압축 방식으로 파일이나 디렉토리를 압축하거나 해제할 수 있습니다. 먼저 PclZip Library가 필요한데요, 현재 공식 사이트에는 접속이 안되어서 여기에 다운로드 링크를 걸어두겠습니다.



파일이나 디렉토리의 압축


압축 파일의 해제




2009년 3월 13일 금요일

오픈 소스 라이센스 GPL, LGPL, BSD


UIzard의 소스 공개를 위해 라이센스에 대해 알아보는 중입니다. 전혀 모르던 부분인데ㅋ 생각보다 복잡하지는 않네요.

주요 오픈 소스 라이센스의 종류는 다음과 같습니다.

1. GPL : GNU General Public License
2. LGPL : Lesser GPL
3. BSD : Berkeley Software Distribution
4. Apache
5. MPL
6. QPL


우선 제 개인적으로는 GPL, LGPL, BSD, Apache 이외의 라이센스는 사실상 처음 접한 라이센스들이고 대충 훓어보니 GPL과 LGPL, BSD가 비교적 더 중요한 거 같아서 이 세가지 라이센스에 대해 중점적으로 알아보았습니다.


1. GPL : GNU General Public License

GPL 라이센스에 관한 전문은 다음 링크를 통해 읽어보실 수 있습니다.
http://korea.gnu.org/people/chsong/copyleft/gpl.ko.html

GPL 라이센스에 대해 요약해보면,
- 자유 소프트웨어라고 할 때 자유(Free)의 의미는 무료 사용이 아닌 자유로운 사용이다.
- GPL로 프로그램을 배포할 경우 유료/무료 판매에 관계없이 자신이 해당 프로그램에 대해 가질 수 있었던 모든 권리를, 프로그램을 받게 될 사람에게 그대로 양도해야 한다.
- 무보증 : 자유 소프트웨어는 반복적인 재배포 과정을 통해 소프트웨어 자체에 대해 수정과 변형이 일어날 수도 잇으며, 이는 최초의 저작자가 만든 소프트웨어의 문제가 아닐 수도 있다.
- GPL을 따르는 소프트웨어 소스 코드의 일부를 사용해 만든 소프트웨어는 GPL을 따라야 한다.
- GPL을 따르는 소프트웨어 소스 코드를 개인적으로 사용할 수 없다. 반드시 소프트웨어를 개발한 원작자나 공동체에 환원해야한다.

소스코드 배포 시
- 저작권 표시
- No Warranty
- GPL로 배포

실행파일 배포 시
- 저작권 표시
- No Warranty
- GPL로 배포
- 소스코드 제공

수정코드 배포 시
- 저작권 표시
- No Warranty
- GPL로 배포
- 소스코드 제공
- 수정 사실 및 일자

2. LGPL : Lesser GPL

LGPL 라이센스에 관한 전문은 다음 링크를 통해 읽어보실 수 있습니다.
http://korea.gnu.org/people/chsong/copyleft/lgpl.ko.html

- LGPL은 GPL의 강한 Copyleft 조건과 BSD를 절충하여 만들어졌다.
- LGPL은 Copyleft에 대한 규제를 프로그램 자체에 두나 이 프로그램을 사용한 다른 프로그램에 대해서는 Copyleft를 두지 않는다.
- 따라서 LGPL은 소프트웨어 라이브러리에 주로 쓰이며, 간혹 독립적인 프로그램(모질라, 오픈오피스)에도 쓰인다.
- GPL의 "소프트웨어 소스 코드의 일부를 사용해 만든 소프트웨어는 GPL을 따라야 한다."는 조항을 완화한 라이센스 모델.
- LGPL 대상 라이브러리와 링크만 해서 사용한 경우 실행 프로그램에 대한 공개 의무가 없다.

소스코드 배포 시
- 저작권 표시
- No Warranty
- LGPL로 배포

실행파일 배포 시
- 저작권 표시
- No Warranty
- LGPL로 배포
- 소스코드 제공

수정코드 배포 시
- 저작권 표시
- No Warranty
- LGPL로 배포
- 소스코드 제공
- 수정 사실 및 일자

3. BSD : Berkeley Software Distribution

- 프로그램의 자유로운 사용, 복제, 배포, 수정을 허용한다.
- 수정한 프로그램이더라도 소스 코드를 공개할 필요가 없기 때문에 상용 소프트웨어에도 무제한으로 사용가능하다.
- Yahoo User Interface Library의 경우 BSD 라이센스를 따르고 있다.



라이센스에 대해 간단히 알아보면서 UIzard의 경우 GPL 라이센스를 따르는 것이 좋겠다고 결정했습니다. 다음주 월요일에 소스코드를 공개하는 것을 목표로 준비를 시작해야겠습니다.

2009년 3월 12일 목요일

[Smart Phone] T옴니아의 모션(가속도) 센서 사용하기

제가 T옴니아가 아닌 다른 스마트폰에서는 테스트 해보지는 못했습니다만 아마 다른 모션, 가속도 센서를 장착한 윈도CE나 모바일 기반 장치들도 DeviceIoControl이라는 함수를 이용해서 똑같이 센서값을 읽어올 거 같습니다. (혹시 아시는 분 계시면 코멘트 좀...)

아래 소스는 사실 T옴니아 경진대회에서 삼성전자가 제공한 C++소스를 이용한 것이며, 이전의 진동이나 터치 인식과 같이 C#에서 지원하는 메쏘드를 사용하기 보다는 API를 끌어와서 사용하고 있습니다.

아래는 전체 코드 입니다.