728x90

오래 전 한 지인분께서 미국에 다녀오시면서 이야기를 하나 해주셨습니다.

담배를 피우고 싶은데, 흡연장소로 마땅한 곳이 없었다고 합니다. 한참을 그렇게 둘러보시다가 Smoking Free 라는 구역을 발견하고는 옳다구나 뛰어가 담배를 태우셨다고 합니다. 한참 맛있게 담배 맛을 보고 있는데, 저 멀리서 경찰이 냅다 다가오더니만 티켓을 끊으며 벌금을 요구했다고 합니다. 왜 그런지 이야기를 해보니 이곳은 자유롭게 담배를 피우라는 곳이 아니라, 담배로부터 자유로운 곳, 그러니까 즉, 금연구역 이라는 뜻이었죠.

 

다음(Daum) OpenAPI를 이용하여 업무를 진행할 일이 있었습니다. API들의 명세를 보려고 오랜만에 다음 개발자 네트워크 (dna.daum.net) 에 접속하였는데, "나만의 YouFREE 를 공개합니다." 라는 배너가 보이네요.  YouFREE하니 Smoking Free 이야기가 생각이 납니다.


유프리 공모전 배너


YouFREE는 그러니까 일종의 개인정보컨텐츠 저장함 솔루션 입니다.

 

정확하게 이야기 하자면 파일 저장함노트소프트웨어 프로그램, 정보검색위젯북마크 등의 개인 컴퓨팅에 필요한 거의 모든 정보를 저장, 관리해주는 통합 솔루션 입니다. 그리고 이런 데이터들을 USB메모리스틱 등에 담아서 들고 다닐 수 있어서, 작업환경을 축소하여 담고 다닐 수 있습니다.

 

최근 온라인 서비스들이 많이 등장하고 있습니다. 이런 온라인 서비스들의 최대 장점은, 인터넷이 연결된 상태에서는 언제 어디서든 내 정보를 동기화 시킬 수 있다는 점 일텐데요, 요즘엔 온라인과 오프라인이 연계된 서비스들이 속속 등장하고 있습니다. 구글의 기어스(Gears)를 이용한 온라인과 오프라인 동기화를 가장 큰 예로 들 수 있죠. 이런 서비스가 나온다는 것이, 온라인의 서비스들이 어딘지 모르게 2% 부족하다. 라는 것을 반증하는 셈이겠죠.

 

YouFREE 오프라인 서비스의 가장 큰 단점인 휴대성을 보완하면서, 동시에 온라인 서비스의 가장 큰 장점인 정보의 동기화를 유지한 사용자 편의성을 극대화 시킨 솔루션이 아닐까 합니다.

 

실제로 사용자들은 메모리스틱 등에 워드나 한글 파일 등을 넣고 다니지만, 그 파일을 읽어오기 위해서는 사용하기 위한 PC에 오피스나 한글이 설치되어 있어야 합니다. (물론 요즘은 온라인에서 읽을 수도 있습니다만)

또한 북마크를 유지하기 위해서 xMarks 등의 별도의 브라우져 플러그인을 설치하거나 딜리셔스, 구글툴바 등의 온라인 저장장소를 활용하여 북마크의 동기를 유지합니다.

또한 지난 검색 결과를 얻기 위해서 구글이나 네이버 등의 서비스에 가입하여 자신의 검색기록 히스토리를 남기기도 합니다

 

이 모든 것이 현대인들이 컴퓨터를 사용하는 방식과 직접적인 관계를 맺고 있습니다.
YouFREE(
이하 유프리) 는 이런점들을 잘 집어내서
하나의 오프라인 솔루션으로 통합해냈습니다.

아래 이미지는 유프리에서 지원하고 있는 서비스의 목록들 입니다.


유프리는 PHP기반의 웹서비스 이지만, 아파치 웹서버를 내장하여 별도의 서버구성 없이도 하나의 독립적인 오프라인 클라이언트 프로그램으로 동작하도록 설계, 제작 되었습니다. 여기 자바스크립트를 적절히 사용하여 사용자 편의성을 향상시켰습니다. 때문에 유프리를 제대로 사용하기 위해서는 자바스크립트를 잘 지원하고, 자바스크립트의 해석이 빠른 IE7이상 또는 파이어폭스3, 크롬4, 오페라, 사파리4의 사용을 추천합니다.


그럼 유프리에서 지원하고 있는 서비스들을 하나하나 알아볼까요?

 

1. 컨텐츠 서비스

 


컴퓨터에서 사용되는 컨텐츠들, 그러니까 문서, 음악, 사진 등 을 쉽게 저장하고 관리할 수 있는 서비스 입니다.

 

 

1.        폴더를 등록하여 파일을 복사해 넣을 수도 있다.

2.        Text 파일의 경우 새로 만드는 것도 가능하다.

3.        컨텐츠 검색을 지원하여 등록한 컨텐츠들을 쉽게 찾아볼 수 있다.

4.        컨텐츠 사용 이력을 쉽게 조회할 수 있다.

5.        이미 생성된 폴더 등을 등록하여 사용할 수 있다.

 

유프리 자체에서 폴더를 만들고, 파일을 관리할 수 있습니다. 기존 탐색기와 별다를 바 없어 보이지만 다른 곳에서 컴퓨터를 사용 할 때에도 같은 화면을 보여주기 때문에, 사용자는 굉장히 익숙한 느낌으로, 이질감 없이 프로그램을 사용할 수 있습니다.

 

또한 컨텐츠를 검색하는데 있어서 발군의 검색속도를 보여주며, 중요한 것은 내가 사용했던 컨텐츠의 사용이력을 보여주어서 어떤 파일들을 열어봤는지 한눈에 파악할 수 있다는 점 입니다. 여러 개의 문서 파일을 한번에 작업해야 할 때, 이미 작업한 문서에 대한 중복 작업을 막을 수 있으며, 동일 문서의 중복 실행을 피할 수 있습니다.

 

마지막으로 이미 생성된 폴더를 유프리로 가져올 수 있는데, 이를 마운트 시킨다고 합니다. 마운트 보다는 붙이기 등의 용어가 좀 더 친근할 듯싶기도 하지만, 마운트 로도 의미전달에는 문제가 없습니다.

 

윈도우 7 에는 탐색기에 라이브러리 라는 메뉴가 신설되었습니다. 이 개념과 비슷합니다. 라이브러리 폴더에 자신의 임의 폴더를 등록함으로서 한번에 쉽게 접근이 가능하도록 만든 바로열기 기능 입니다. 굳이 윈도우 XP에서 비교하자면 바로가기아이콘 과 비슷하다고 할 수 있겠지요.




내 하드의 폴더를 마운트 시키는 화면과 마운트된 모습.

그냥 탐색기로 USB메모리스틱 등에 파일을 담아서 다녀도 큰 문제는 없지만, 이런 관리 프로그램으로 파일컨텐츠 들을 관리하는것도 익숙해지면 정말 편리해질 듯 합니다. 다만 마운트를 시킬 경우 이동시 제대로 동작하지않을 가능성이 있기 때문에 유의해서 사용해야 합니다.

 

 

2. 노트 서비스



노트 서비스는 유프리 서비스 중에서 가장 유용하게 사용할 수 있는 서비스 입니다.

메모장보다 다양한 기능을 지원하면서 문서 관리 기능까지 제공하고, 더불어 휴대성을 보장합니다. 그리고 html로의 저장 기능도 제공해 주어 별도의 문서 편집기 없이도 훌륭한 워드프로세서로의 기능을 합니다.

 

이 노트 서비스는 온라인 웹서비스인 구글노트(링크)나 스프링노트(링크)와 비슷한 서비스 입니다. 구글노트나 스프링노트도 정말 좋은 서비스들이지만 오프라인과의 연계성에서 조금 부족한 부분이 있는 것도 사실 입니다. 이런 점을 유프리 노트서비스가 채워줄 수 있습니다.

 


노트 서비스를 처음 실행하여 보면 미리 생성되어 있는 노트 목록이 분류와 함께 제공되어 보여 집니다.

 

빨간색 테두리 안에 있는 기능들은 노트를 사용하는데 있어서 필수적인 기능들을 제공합니다.

초록색 테두리는 노트의 그룹과 각 그룹에 속한 노트 목록을 보여주고 있습니다.

파란색 테두리는 노트의 탭으로. 노트를 열면 새창으로 뜨지않고, 탭으로 생성되어 보여줍니다.

조금 진한 빨간색 테두리는 검색 및 즐겨찾기 기능을 제공하고 있습니다.

 

빨간색 테두리 안에는 각각 노트의 생성, 노트 그룹생성, 노트 삭제, 노트 이름변경, 부가기능, 휴지통보기의 기능들로 이루어져 있습니다.

 

다음은 그룹을 만들고, 노트를 만들어서 편집하는 화면입니다.

노트의 에디터는 웹에서 많이 사용하는 위지윅에디터로 복잡한 문서가 아니라면 문서 작성에 큰 무리가 없습니다. 저장을 누르게 되면 유프리 자체에 노트 내용이 저장되고, 파일로 저장하게 되면 html 파일로 익스포트 되어 내 컨텐츠에 저장이 됩니다.

 

저장된 html 파일만 따로 빼내어 공유할 수도 있습니다.


아까 조금 진한 붉은 테두리에 있던 숨겨진 메뉴를 호출한 모습입니다.

노트가 많아질 경우, 예전에 썼던 노트를 찾기가 매우 힘들어질 수 있습니다. 그 때 노트 검색을 이용하면 쉽게 노트를 찾을 수 있습니다.

 

키워드만으로도 검색이 가능하고, 노트 작성 중 등록한 태그를 추출하여 검색이 가능합니다. 그리고 노트 목록을 스크랩하여 즐겨찾기 목록으로 만드는 것도 가능합니다.

 

기본적으로 사용하는 워드 프로그램의 일반적인 기능들은 거의 담고 있기 때문에, 이것만으로도 사용하시는데 불편함은 없으실 것입니다. 작은 불편사항들은 검색이나, 휴대성으로 상쇄시킬 수 있을 듯 합니다.

Posted by onionmen
728x90
화려한 경력을 자랑하면서 여러가지 언어를 자유롭게 다룰 수 있는 개발자들과는 다르게, 내가 자신있게 다룰 수 있는 언어는 PHP 한가지 뿐이다. 물론 학부시절에 C언어를 배웠던지라 C계열의 언어를 읽을 수는 있고, 또 이를 사용하여 간단한 프로그램의 작성도 가능하긴 하지만 그래도 현업에서 사용될 정도는 아니다.

지금도 있는지는 모르겠는데, 대학시절 당시 우리 학과에는 소규모 동아리가 있었다. 지역상인들을 대상으로 수주를 받아 홈페이지를 제작해주고 돈을 받는 뭐 그런. 쉽게 말해 웹에이전시 소모임이었다. 그 당시 C언어로 레포트좀 한다고 여기 들어갔었는데, 사실 예비역 선배 몇 명으로 이루어져 있었고, 그나마도 디자이너가 없어서 운영이 더이상 힘들 지경이었다. 그 때 나와 함께 들어간 친구가 디자인을 조금 할 줄 알아 다행이도 한학기를 더 운영할 수 있게 되었었다. 당시 홈페이지를 만들 때, 사용된 언어는 PHP였는데, 그 때 나에게 닥친 문제는 내가 PHP는 커녕 웹을 전혀 몰랐다는 것이다.

웹은 처음이었다. input 태그의 값이 어떻게, textarea 안의 값이 어떻게 해서 데이터베이스에 쓰이는 것인지, 진짜 하나도 모르는 완벽한 초짜였다. POST, GET 의 개념도 모르던 그런 상태에서 선배가 따내온 일은 건강식품 쇼핑몰 이었다. 당시에 개발자가 3명 디자이너가 2명이었고, 개발기간은 두달이었다. 그 때 선배가 나에게 던져준 것은 직접 만든 게시판 소스였다.

그 것을 그대로 세번씩 쳐오라는 것이 과제였는데, 소스코드를 치다보면 어떻게 돌아가는지 알게 된다는 것이 그 선배의 지론이었다. 좀 이해할 수 없었지만 난 코드를 쳤고, PHP를 전혀 이해하지 못했다. (물론 아직까지도 난 그 선배의 "코드를 치다보면 알게된다." 라는 주장을 이해할 수 없다.) 그런 식으로 인터넷을 찾아 물어가며 PHP를 공부했고, 공부하면서 쇼핑몰을 만들었다. 그리고 두달 뒤에는 제대로 납품을 할 수 있었다. 

사실, 난 PHP 라는 언어를 전혀 사용해보지 않았지만, 웹개발 언어 라는 것 만으로 PHP를 무시해 왔었고, 또 언제든지 마음만 먹으면 쉽게 배울 수 있으리라 생각하고 있었다. 그냥 우습게 봐왔었다.


나는 고등학교때 일본어를 배웠었다. 이 일본어가 처음엔 쉽다. 히라가나와 가타카나만 외우면, 아니 심지어는 이것들을 외우지 않아도 처음 일본어는 쉽다(상대적으로).  그냥 듣기만 해도 저런 뜻인가? 라고 생각되는 단어들이 있고, 또 대한민국에 남아있는 일본어의 잔재 때문인지 다른언어보다 비교적 쉽게 알아들을 수 있는 언어가 일본어이다. 애니메이션을 봐도 그럭저럭 들리는 언어가 일본어이다. 그런데 이런 일본어는 조금만 깊이 배우고 들어가면 그 때부터 어려워진다. 히라가나를 알 때는 쉽던 일본어가 한자어가 끼어들기 시작하면서 또 어려워 진다. 정말 만만하지 않다. 

이 PHP는 마치 일본어 같다. 처음엔 마냥 쉽다. 그런데 점점 깊숙이 알고 나면 신경써야 할 것도 많고, 어려워진다. 얼마전 야후코리아에서 자리를 마련해 주었던 rasmus 와의 특강에서도 모르던 많은 것을 얻었었다. 

두달만에 PHP를 공부하고 만들었던 쇼핑몰 소스는 아직까지 집컴퓨터 하드디스크에 잠들어 있다. 벌써 몇 년 전에 작성한 코드이지만, 그 일부가 아직도 기억이 난다. 이 쇼핑몰 이라는. 돈과 직접적인 관련이 있는 이 홈페이지를 우리는 아주 개판으로 만들어 놨다. 아주 기본적이고 간단한 보안처리조차 하지 않고, 그냥 동작하니까 납품을 했다. 어떻게 보면 내 생에 첫 프로젝트인데, 그렇게 납품을 했다. "그 때는 몰랐으니까," 라고 스스로를 위로하지만 어쩌면 그 때 받은 몇 백만원 앞에 부끄러웠던 작품이다. 지금은 없어졌지만 그 쇼핑몰 때문에 어떤 손해를 봤을지도 모르는 그 분에게 미안한 마음도 들고 말이다. 

지금도 가끔 나태해지거나, 자극이 필요할 때, 오래전 작성했던 코드를 들여다 보면서 반성을 하고, 새로 마음을 가다 잡는다. 

다룰수 있는 언어라고는 PHP뿐인 나는 대학교 소모임때 처음 배웠던 기술과 그때 작성했던 코드를 자극제로 하여 지금 난 먹고살고 있다. 


야후코리아 개발자 블로그 에서 이벤트 중(http://ydnkrblog.com/blog/?p=247)입니다. 참여자가 적으니 한번 시도해보세요~!


'Day by day' 카테고리의 다른 글

삼촌이 되었어요.  (2) 2009.08.17
YES24로부터의 기분좋지 못한 경험. 또는 인터파크와 YES24의 차이점 하나.  (5) 2009.08.11
근황  (0) 2009.07.21
설득의 비밀  (0) 2009.07.12
피아노 배우고 싶다.  (0) 2009.06.26
Posted by onionmen
728x90

여유가 없는 삶을 살다보면, 생활의 많은 것을 포기하게 된다. 자신이 쥐고 있는 것 들을 일열로 나열한 뒤 가장 중요도가 낮다고 생각하는 것 부터 하나하나 버리게 되는데, 물론 순서는 각자의 기준에 따라 바뀐다.


웹서비스를 개발하는 것도 마찬가지이다. 서비스 구상과 아이디어 회의를 하고, 기획안을 작성하고, 디자인을 하고, 개발을 하는데, 모두 다른 각각의 역할에서 한가지 공통점이 있다면 그것은 바로 언제나, 늘 시간이 부족 하다는 것이다.
이렇게 여유가 없는 프로젝트를 진행하다 보면 마찬가지로 프로젝트의 많은 것을 포기하게, 아니 포기해야 된다. 다른 부분은 차치하고라도 개발의 경우는 이런 현상이 꽤 심하다. 


여유 없는 상황에서 개발하는 과정 역시 여유 없는 삶을 사는 것과 마찬가지로 몇가지 것들을 버리게 되는데, (좋지 않은 현상이지만)한가지 다른점이 있다면 최우선순위에 해당하는 몇몇 개를 제외하고는 우선순위에 크게 구애받지 않는 다는 것이다.

어떻게 보면 최우선순위에 속하지만, 우선순위에 크게 구애받지 않는 유력한 후보 중 하나가 바로 보안이다. 이것은 하기 싫어서, 또는 중요하지 않아서 하지 않는다기보다는 예측불가능한 상황이 벌어지고, 자신이 아는 만큼은 했다고 생각하기 때문에 오랜 시간을 투자하지 못하는 것이다.


모든 상황을 예측할 수 없기 때문에 더욱 불안해 지지만, 시간에 쫓기다보면 이런 불안감은 곧 놀이터에 버려진 고양이처럼 방치된다. "에이, 괜찮겠지" 와 같은 생각과 함께.

(오래전부터 있어왔지만) 얼마전 크게 뉴스화 된 큰 쇼핑몰의 개인정보 유출과 같은 사건도 바로 이런 점에서 시작했다고 봐도 과장이 아닐 것이다. 수많은 웹사이트가 죽순처럼 생겨나는데, 보안을 신경쓰는 웹페이지는 얼마 많지 않다.


옥X의 경우 개인정보를 빼내는데, 꽤 힘든 작업과정을 거쳤겠지만, 일반적으로는 현란한 고급 해킹기술이 필요한 것도 아니다. 검색엔진 하나만으로도 얼굴도 모르는 사람의 개인정보를 정말 쉽게 획득할 수 있다.( 참조 : 구글해킹, 에이콘 )

이러한 현상을 최소화 하기 위해서 웹개발자를 비롯한 프론트엔드 개발자들은 특히 이런 보안에 대해 끊임없는 학습을 해야만 한다.


사용자 삽입 이미지
이 책을 소개하기 위해 좀 돌아왔는데, PHP 개발자를 위한 꽤 괜찮은 서적이 출간되었다. PHP보안, (한빛미디어, 2006) 이라는 이름의 책인데, 공격패턴을 소개하고 그에 대한 방어책을 제시해준다.

 주요 이슈로는
XSS 방어,
URL 공격방어,
SQL 삽입공격,
세션 공격방어

가 있는데, 적어도 책에서 설명하고 있는 부분들만 신경쓴다면, 최소한의 보안은 검증된다고 할 수 있겠다.


물론 이 외에 수 없이 많은 패턴이 존재하고, 전혀 생각지도 못한 방법으로 해킹에 성공한다. 


마치 좀 더 강한 금속을 찾아내어 방어구를 만드는 것 처럼 한걸음 한걸음 나아가다 보면, (한동안) 뚫을 수 없는 방패를 만드는 것도 가능하지 않을까?

Posted by onionmen
이전버튼 1 이전버튼

블로그 이미지
손을 따뜻하게 만들어 주고 싶은 애인이 있습니다.
onionmen

달력

 « |  » 2024.3
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
DNS Powered by DNSEver.com

최근에 올라온 글

Yesterday
Today
Total