이번 달은 왠지 저녁에도 시간이 나지 않아서 제대로 포스팅을 못하고 있군요. 사실 어떤 곳에서 한 가지 일을 받아 하고 있는 중이라 그렇습니다. 일의 내용은 바로 Gradient와 + @를 작성하는 것인데요. Gradient 가 실질적으로 주목표라고 할 수 있습니다.
자 Gradient란 무엇인가 하면.. 다들 써보셨으리라고 생각하는 포토샵, 그 포토샵에 보시면 색깔이 점점 변해가면서 색이 섞이는 기능을 써보셨을 것이라 생각합니다. 굳이 그 것이 아니더라도 미술시간에 배우는 구체의 광원 표현등을 컴퓨터에서 표현할 때 Gradient 효과라고 지칭하죠.
위 그림과 같은 그림입니다. 대충 감이 오시죠?? 사실 포토샵에서는 처리가 아주 간단하게 드래그 한 번으로 모든 것이 끝나지만 코드를 통한 프로그램으로는 간단하지가 않습니다. 물론 원리는 무척 쉽지만 속도가 제대로 나도록 하기 위해서 계산을 최적화 해야 되는것이죠^^.
간단한 1 To 1 Color Gradient 같은 경우도 있고, 1 To Many Color Gradient 같은 경우도 있을텐데, 후자 같은 경우는 색 추출에 계산시간을 더 허비해야 됩니다. 고로 속도의 문제점이 더 중요해 지겠죠. 제가 하고 있는 쪽은 후자 쪽을 진행하고 있고, 일반 진행, 반복진행, 타원(원)형의 Gradient를 제작하기 떄문에 제작이 끝나게 되면 코드 그 자체가 아닌 간략한 방법을 정리해서 포스팅 해보도록 하겠습니다.
최근 전 IA 문서에 대한 번역을 시작했습니다. 한 일주일간 제대로 진행은 제대로 하지 못했지만 이 번 만큼은 끝까지 해보려고 마음속에 생각을 계속 하고 있습니다. 사실 이러한 결정을 내리게 된 부분은 내실을 다지자라는 것이 많은 부분을 차지했기 때문이라고 말할 수 있습니다. 제가 5살~6살 때 쯤 COBOL 프로그래머를 하시는 아버지의 영향을 받아 컴퓨터를 접하게 된 후 부터 중학교때까지 관심은 있었으나 게임하느라 바뻤고, 중학교 때 C++ 이야기? 였던가 하는 책을 한 권 외삼촌께 선물을 받았으나 제대로 된 해석도 못하고 있었던 적이 있습니다. 그 때는 생각하면 참 그 땐 지금 하곤 비교할 수 없을 정도로 허접했었지 라는 생각이 저절로 들곤 합니다. 그 후 고등학교를 진학하면서 컴퓨터 써클을 들게 되고 그 안에서 Macromedia( 현 Adobe 인수 )사의 Flash 와 비슷한 Director 라는 프로그램으로 처음 프로그램 제작의 길에 빠져들게 되었지요. 그 때는 정말 신기했습니다. Flash와 마찬가지로 하나의 버튼, 이미지 개체가 Object 였기 때문에 프레임이 지날때 마다 이동하는 스크립트를 쓰거나 단순한 계산만으로 어느정도 원하는 결과가 나왔기 때문이죠. 그런데 그 후 대학에 와서 많은 부분이 바뀌었습니다. 컴파일러를 비롯해서 자료구조, 알고리즘 정말 지금 생각하면 유용하다고 밖에 말할 수 없는 그런 지식들을 배웠기 때문이죠. 현재 제 블로그에 올라가 있는 IPangYa( http://www.filewiki.net/tc/entry/IPangYa-팡야-계산기-라이브러리 )와 자동테트리스 같은 부분이 많은 영향을 받은 것입니다. 그리고 많은 시간이 지나면서 내가 정작 다루고 싶은 언어인 C++언어에 대해서 많은 공부를 하고 고찰을 하면서 언어쪽의 능력은 아직은 스캇 마이어스나 스트로스트럽 같은 흔히 말하는 본좌와는 비교할 수 조차 없지만 원하는 만큼의 코딩은 할 수 있다고 판단이 되었습니다. 그러고보니 내실이라는 것이 당연히 생각이 나더군요. 코딩이라는 것이 자기가 생각하고 있는 하나의 아이디어를 하나의 언어로 풀어나가는 과정을 어떠한 언어로 풀어나가는 과정이다 보니 언어쪽 능력 보다는 이론 같은 내실이 중요한 것 같았기 때문입니다. 물론 예전에도 계속 느끼고는 있었으나 스스로 천재라고 생각하진 않았기 때문에 두 마리 토끼를 쫓는 그런 행동은 취하지 않았죠. 다만 지향하고는 있었습니다.
그런데 몇일 전 우연히 강컴엘 들어갔는데 눈에 좀 띄는 책이 보이더군요. 이론적인 부분이라고 해야 되나요. 수학에 대해 다룬 책이 었습니다.
게임이라고 붙은 제목이 있어서 3D 쪽과 관련된 부분이 많을거 같긴 한데.. 전 아직 내용에 대해서는 잘 모르겠습니다. 그래도 하나하나 원리를 원하는 부분(?)이라고 해야 되나요 그런 부분이 꽤 많이 들어 있을거라고 생각하기 때문에 아마 곧 지르게 될 것 같군요. 사실 The Art Of Computer Programming 3권도 사고는 싶지만 너무나 어렵다는 말과 비싼 비용에 아직은 좀 망설여 집니다^^. 나중에 좋은 곳에 들어가게 되면 공짜로 볼 수 있다는 말도 들었던 것도 있구요. 그래서 기대가 되긴 합니다.
오랫만에 포스팅 치고는 왠지 책 광고같은 느낌이긴 하지만 계속하여 끊이지 않게 알찬 포스팅 해보도록 하겠습니다. 그럼 즐거운 하루 되세요~
최근이라고 적고 요새 일하는 것이 완전 한 가닥의 재미도 없다보니 집에와서는 계속 하여 조금씩 놀게 되는군요^^. 그래서 덕분인지 게을러진 것도 있고 블로그 포스팅도 제대로 하지 못했답니다.
그래도 생각은 계속하고 마음에도 남아있는 덕분인지 새벽녘까지 이상한 짓(?)을 하다가 포스팅을 해야 겠다는 생각이 문득 들어 흔적을 남기게 되는군요. 사실은 까마구 횽님의 블로그를 자주 들어가다보니 OS가 거의 형태를 완벽하게 갖추고 있는 것을 계속하여 보게됩니다. 어느새 완성형에 가깝게 제작이 되었더군요. 저도 OS를 만든다고 예전에 포스팅한 글이 있긴 합니다^^. 예전 중고등학생때부터의 목표였구요. 그런데 전 아직 정말로 제가 만들어 보고 싶은 OS라는 것이 무엇인지 결정이 되지 않는군요.
ReactOS 라고하여 Windows NT와 호환성을 지니게한 OS도 있고, 이름은 잘 기억나지 않으나 일반적인 컴퓨터가 전원이 내려가게 되면 휘발성인 램으로 인해 작업중인 데이터가 날아가는 것을 방지하고자 하드디스크가 램이자 저장공간이고 램이 캐시역할을 하게 되는 OS도 존재합니다. 그리고 혹시 보셨을지도 모르겠는데 예전 한 2년 전 쯤인지 어느 박사과정의 논문프로그램으로 책상 위의 환경을 그대로 옮겨와 3D로 파일 혹은 폴더를 디스크 같은 형태로 보여주는 GUI까지 있기도 하죠.
이런 것을 보아하면 정말 만들고 테스트해보고 싶은 목적이 있어서 만들었다는 것을 알 수 있습니다. 그런데 단순히 현재 존재하는 OS를 구현하려니 뭔가 바퀴의 재발명인 것 같은 느낌을 지울 수가 없더군요. 물론 하지 않는 것 보다야 제작의 의미가 없다는 것을 부정하지는 않습니다. 그래도 제가 좀 특이한(?) 인간이다보니 뭔가 남들과는 다른 그 무엇을 만들고 싶은 생각을 항상하는 중이라 이런 것 같군요. 만들고 싶은 목적에 해당하는 것이 존재하지 않느냐고 물어보신다면 그건 또 아니라고 적고 싶습니다. 예전에 C언어 로부터 시작하여 C++, C#을 이용한 OOP 프로그래밍을 하게 됨으로써 구조적 프로그래밍에 대한 불편함을 느꼈다고나 할 까요. 선뜻 손이 가지 않습니다. 그리하여 원하는 것은 C++로 커널을 제작해보는 것이고, 일반적인 Windows API처럼 단순 함수 호출로써 끝나는 것이 아닌 Class Object를 전달하여 주고받는 형식을 만들어 보는 것 또한 일부이긴 합니다. 그런데 이 것이 전부라고 생각하려니 너무 좀 아닌거 같은 느낌이 있더군요. 너무 Windows와 Linux 같은 일반적인 OS에 익숙해지다보니 그 것과는 다른 뭔가를 속에서 요구하는 듯한 느낌을 계속하여 받습니다. 과연 어떤 것이면 만족스러운 것을 생각할 수 있을지 참 막막하네요^^. 대충대충 만드는 것을 할 줄 알아야 하는데 제대로 된 것을 완벽히 설계하여 제대로 완성해보고 싶은 욕심이 마구마구 드니 이거야 원, 제대로 진행이 될지도 모르겠습니다. 그래도 사람은 꿈을 먹고 사는 존재이기 때문에 언젠간 원하는 것을 제대로 생각하여 제작할 수 있지 않을까 생각해봅니다^^.
어떻게 하다보니 전반적인 내용이 OS쪽으로 흘러가게 되었지만 그건 뭐 최근 생각하는 것들이 그런 고민이다 보니 그렇게 되었네요. 책 사놓은 것을 천천히 읽어가면서 한 번 더 생각을 해봐야 겠습니다^^. 이 땅에 사는 꿈을 먹고 사는 사람들에게 이렇게 말해주고 싶네요. "우리 모두 꿈을 향해 달려갑시다"
이번엔 그냥 넋두리를 한 번 늘어놓아보려고 합니다. 최근에 경찰청 쪽으로 들어가서 프로젝트를 하게 되었는데, 지금 현재 다니고 있는 병특의 업종이 SI쪽이다 보니 일정이 역시나 많이 문제가 되더군요. 문제가 되는 것은 다른 분들도 마찬가지라 생각합니다. 특히 이 번엔 문제가 좀 많은 부분이 있었는데, SI 라는 특성상 프로그램을 제작할 때 필요한 모든 부분을 기반 기술을 자체 제작하여 개발하지는 않고, 필요한 컴포넌트나 엔진을 다른 회사로 부터 제공받아 제작을 하게 됩니다. 그로인해 필수적인 기술지원 부분이 들어가게 되구요. 일반 스탠다드 얼론으로 개발하게 될 때 알고 있으면 API등 뿐만 아니라 그 쪽에서 제공받는 소프트웨어의 사용법 또한 알고 있어야 한다는 점이 필수적입니다. 그로 인해 자의적이든 타의적이든 연관이 되게 됩니다. 그런데 이번은 좀 어이가 없는 경우가 많았던게, 기존에 운용되고 있었던 프로그램 & 시스템들이 현재 제공받았던 엔진의 아주 구형버젼을 사용하여 개발이 되어 있었고, 그 프로그램들 중 엔진을 직접적으로 사용하는 프로그램들은 에러가 발생하여 제대로 사용하고 있지도 못하더군요. 그 대신 업무를 Oracle DB와 엔진 쪽을 직접 사용하여 데이터 관리를 하고 있었습니다. 그런 시스템을 이번에 저를 비롯하여 여러명이 수정하게 되었습니다. 그런데 이게 왠 말입니까!~ 공무원 이른 바 대단하신 "갑"님께서 엔진을 업그레이드 하시겠다는 거 아닌가요. 사실 이 부분은 기존의 엔진이 아주 구형 버젼이기도 했고, 문제점이 아주 많았기 때문에 엔진 부분만 업그레이드 하는 것으로 결정이 지어졌답니다.
그리하여 결정된 대로 전 개발자이니까~ 당연히 기존에 개발되어있던 프로그램을 수정하여 GUI 부분도 수정을 하고 엔진 부분도 수정을 할 준비를 하고 있었죠. 워낙 폼이 많다보니 GUI만 수정해도 시일이 꽤 걸리더군요. 여기까지 읽으신 분들은 또 암흑의 조짐을 느끼시겠군요. 아니나 다를까, 이 번엔 엔진 쪽에서 기존에 개발 된 프로그램에서 사용하는 언어의 지원이 안된답니다?. 어.. 어라..?
딱 내심이 한 마디도 안 틀리고 저렇더군요. 그냥 아주 패주고 싶더군요 ㅜㅜ. 그런데 종류는 여러가지 접해봤지만, 해당 엔진은 처음 접해본 것이기에 어떻게 저렇게든 얘기가 되어 기존 언어로 된 프로그램이 아니라 아예 프로그램을 신규개발하기로 되었습니다. 물론 기존 기능은 다 지원하게 하고 말이죠. 그리하여 개발이 줄줄 진행이 되고 있었습니다.
. . . . . . .
진행이 과연 잘 되었을까요? ㅜㅜ 엔진의 버그(?)라고 해야 될지 환경적인 문제라고 해야 될지 작동이 잘 되지 않는 문제에 대해서 지원도 잘 안해줍니다? 초반에 상주지원할 때는 잘 해주더니 떠나고 나선 Out of sight, Out of mind? 라고 말하면 될지 문제가 질질 끌어집니다. 그래도 급한건 일단 저 자신 아니겠습니까? 이리저리 말해봤으나 잘 되지 않아 위에 보고해서 전달하는 것도 하고 하여 기능이 어느정도 지원이 되었죠. 아 물론 지금 현재는 기능 하나가 제대로 동작하지 않는 것을 제외하고는 다른 부분에서는 동작이 잘 된답니다. 휴우~ 그렇다고 개발과정이 쉬웠느냐라고 물어본다면 oTL 이라고 하고 싶습니다. 마지막으로 제공된 소스라고 적고 기존 운용되고 있었던 제대로 작동하지 않는 프로그램의 소스가 좀 문제가 꽤 많았습니다. "갑"의 수많은 요구사항에 의해 프로그램을 수정한 결과로 보이는 소스코드는 기능이 제거 되었다면 전부 제거 되어야 하지만 이 부분은 제거 되어있고, 저 부분에는 남아있고.... 그야 말로 oTL. 뭐 그래도 하나씩 자세히 보면서 개발을 진행하긴 했습니다. 제가 만드는 프로그램임에도 불구하고 기능이 예전에 존재하던 기능이 과연 맞을까 하는 불확실한 확신을 가지고 말이죠. 뭐 아직 프로그램이 제대로 사용되지는 않았기 때문에 뭐라고 결과가 나온 것은 아니지만, 머지않아 수정건이 뻥뻥 터질 것 같습니다^^; 이 것은 한 번 기다려 보아야 될 것 같군요.
이 것과는 번외로 같이 일하는 어떤 분의 서비스 쪽에 기존은 Tomcat을 사용하고 있었는데, 커넥션 쪽에서 좀 많은 문제가 있었던 모양입니다. 자세한 사정은 알지 못하여 뭐라고 정확하게 적기가 좀 그렇군요. 여느 상황에서나 그렇듯이 일단 문제가 생기면 App 쪽을 의심하는 것이 당연하죠? 그래서 그 분의 서비스를 검사하더군요. 그런데 발견이 되지 않자 어떻하겠습니까? 금요일 저녁 어떤 타 업체에서 꺼낸 "다른 제품으로 업그레이드 하시죠?"라는 크리에 위대하신 갑님 월요일 아침 주문을 해버립니다. ㄷㄷㄷ 다음날 도착한 다른 제품에 서비스를 맞추기 위하여 지원을 받아 이리저리 수정을 하시는 그 개발자분. 한 이틀 지나니 제대로 수정을 하셨나 봅니다. 그리고 몇 일 전에 있었던 데이터 이관일, 타 업체 사장이 "그 다른 제품은 지원이 잘 안되고 그 보다 더 좋은 다른 제품으로 바꾸면 지원 다 해줄께"라는 말을 공무원에 슬그머니 흘리더군요!!?. 우리도 눈뜬 장님이 아니다보니 과장님 선에서 그 것은 막은 것 같습니다. 그런데 팔랑팔랑 참으로 귀가 얇은 공무원 갑 님과 예술적인 혀 영업부분이 만남이란(?) 어떤 결과물이 나올지는...
길지는 않지만 약 2년쯤 일을 하고 있긴 한데 그 와중에서는 제일 ㅡ0ㅡbb 인 일은 경험해 본 것 같습니다. 이런 저런 생각이 많이 들긴 하지만 그 것 까지 적긴 좀 그렇군요^^. 그럼 넋두리 잘 봐주시길..
근 한 달 정도 블로그 관리를 제대로 하지 못한것 같습니다. 최근 문제가 없을거 같은 프로젝트가 조금 문제가 생기는 바람에 이렇게 되었군요. 내심 마음에 계속 걸려있었는데 주말에 쉬기만 하고 제대로 관리를 못하고 있다가 하나의 플러그인으로 인해 이렇게 포스팅을 해봅니다. 인터넷을 통한 문서관리를 해보신 분은 스프링노트(http://www.springnote.com)라는 곳을 아실겁니다. 많이 편리하죠^^;. 저는 이 스프링노트라는 곳의 편리함은 에디터에서 비롯된다고 정의하고 싶습니다. 그 만큼 제가 여태껏 써봤던 게시판(?) 혹은 블로그의 에디터 중 문서를 작성하기엔 가장 편하고 기능이 좋았습니다. 그런데 왜 이런 얘길 하냐구요.. 텍스트큐브(http://www.textcube.org)의 플러그인 부분에 들어가시면 바로 텍스트큐브에서 스프링노트의 에디터인 XQuared를 플러그인화 시켜 사용할 수 있게 한 것이 등록되었기 때문입니다. 제가 현재 사용하는 블로그 또한 텍스트큐브를 사용하고 있는데요. 근 4달간 써보면서 많은 불편함을 겪었습니다. 그런데 나와주다니.. 비록 등록되고 약간의 시간이 흐른 뒤 보게 된 것이지만 무척 반갑고 즐거웠습니다. 바로 적용을 해보았죠.
이렇게 제대로 사용할 수 있더군요^^. 너무나 좋았습니다. 아래에 보이는 코드입력을 사용하기 전까진 말이죠. 이런 저런 테스트를 하다 코드 하이라이트 기능을 사용을 하게 되었고, 제가 사용하는 Hooriza님(http://www.hooriza.com)의 코드 하이라이트 기능이 제대로 동작하지 않더군요. 그러나 저번에 Tistory용으로 개발되었던 Code Hilighter를 Textcube로 단 한줄 고쳐 작동시키게 한 경험이있었기에 그냥 무작정 시도를 해봤습니다.
사실 자바스크립트 쪽엔 깊이 파고들었던 경험이 없었기 때문에 맨 처음 XQuared의 플러그인 소스를 봤을 때 너무나 혼란스럽더군요. 그래도 구조를 일단 파악해보기로 했습니다. 그렇게 한 1시간이 지나니 어느정도 파악이 되더군요. Javascript에서 Class를 제대로 보니 가능했습니다. 그렇게 필요한 부분을 수정하고 수정하고 테스트하여 결국 원하는 기능을 넣긴 했습니다!.
바로 이렇게 말이죠^^. 사실 기능을 수정하여 지원가능하게 하기 전엔 아예 입력자체가 되지 않았습니다. 말 그대로 자바스크립트의 수행도중 에러가 발생하여 제대로 된 처리가 되지 않았던 것이지요. 얼씨구나 좋다 하고 바로 "미리보기" 버튼을 눌러봤습니다. 그런데.. 역시나 쉬운 일은 없나 봅니다.
바로 위와 같이 뜨지 뭡니까? 제 블로그의 코드 부분을 약간이라도 보셨거나 Hooriza님의 코드 하이라이트 기능을 알고 계신 분들은 이상하다고 생각을 하실테지요. 원래 표시되어야 하는 부분은 아래 그림과 같거든요.
컬러풀 하지 않나요?? 처음에 줄 번호와 색 때문에 굳이 티스토리를 벗어나서 웹호스팅과 더불어 텍스트큐브를 사용하게 되었었는데, 거참 약간 허탈하더군요. 그래도 불굴의 의지로 일단 계속해서 진행을 해봤습니다. 그러다보니 해결방법은 잘 모르겠는데, 하나의 원인을 알겠더군요.
위 그림 2개의 선택된 부분을 보시면 바로 감이 오실겁니다. 위(XQuared)와 아래(Textcube)의 Editor로 생성된 코드의 HTML코드를 보니 FIELDSET을 비롯하여 LEGEND 부분이 없어졌죠? 실제 TextCube에서도 두 태그를 삭제하니 컬러 지원이 제대로 되지 않았습니다. 그래서 이 것이 원인임을 알고 수정을 하기 위해 삽질을 계속하여 시도를 해봤는데 제대로 되지 않더군요. 도대체 왜 그런건지는 아직 오리무중입니다? CreateElement 함수로 생성하는 것인데 말이죠.. Node 부분 생성 까진 제대로 되는 거 같은데 Editor에 들어가면서 변경이 되는건지.. 아마 추측하기론 그런 것 같습니다. 일단 어느정도 마무리를 한 다음 TextCube 홈페이지에를 들어가니 1.8 버젼에서는 XQuared를 내장으로 기본지원할 가능성이 많이 높다고 하는 군요. 어느 홈페이지에서는 "지원한다"라고 못박은 곳도 있긴 한데, 포럼에 그런 말이 없으니 잘 모르겠습니다. 하지만 나온다면 환영, 또 환영 뿐이죠^^. 오늘은 삽질을 하다보나 새벽까지 달리게 되었는데, 이 것참 ㅜㅜ 내일 어떻게 할지 고민이네요.. 그럼 삽질기행문 잘 보아주셨으면 합니다.
댓글을 달아 주세요
오오~ 꽤나 멋진걸~
예쁘게 잘 나왔네 ㅎㅎ
ㅋㅋ 속도 튜닝의 무서움 ㅜㅜ이 아직 남았네요 ㅋㅋ
멋있네요 ㅎㅎ