꽃미남 프로그래머 김포프가 창립한 탑 프로그래머 양성 교육 기관 POCU 아카데미 오픈!
절찬리에 수강생 모집 중!
프로그래밍 언어 입문서가 아닌 프로그래밍 기초 개념 입문서
문과생, 비전공자를 위한 프로그래밍 입문책입니다.
jobGuid 꽃미남 프로그래머 "Pope Kim"님의 이론이나 수학에 치우치지 않고 실무에 곧바로 쓸 수 있는 실용적인 셰이더 프로그래밍 입문서 #겁나친절 jobGuid "1판의내용"에 "새로바뀐북미게임업계분위기"와 "비자관련정보", "1판을 기반으로 북미취업에 성공하신 분들의 생생한 경험담"을 담았습니다.

기획자의 배경 지식

기획 2012. 3. 25. 23:31
Posted by 월하

 
D&D 세계관과 유사한 판타지풍의 게임을 제작하는 회사에 신입 기획자가 들어 왔습니다.

그리고 다음 업데이트때 추가되는 새로운 지역의 몬스터 업데이트 컨셉을 잡는 작업을 맡았습니다.

그럼 다음 업데이트에 올라가는 맵이 어떤 컨셉이고 어떤 시나리오가 담겨 있는지 정리 후 

어울리는 몬스터 컨셉을 정리를 하겠죠.

D&D 세계관을 전혀 모르는(큰일이다!) 신입 기획자는 오랜 고심끝에 물리 공격에 대한 방어력/재생력이 좋지만

한 두가지의 약점을 가지고 보상으로 위의 특징을 이용 할 수 있는 몬스터를 며칠간 고민을 했습니다.

그래서 아래와 같은 몬스터의 컨셉이 결정이 났습니다.

 타입  괴수형 
 서식  극지 ~ 열대 전체의 숲 / 동굴
 습성  샤먼을 중심으로 3~12마리의 소규모 집단
 식성  아무거나 전부 다
 성격 / 지능  포악 / 무식
 외견  2미터가 넘는 키
 녹색 피부 
 튀어나온 어금니
 축 늘어진 어깨 
 기타  회복력이 매우 뛰어나지만 불 / 산에 약함
 피를 가공해서 회복제 / 해독제로 쓸 수 있으며 
 피부는 매우 질겨 가공하여 방어구로 만들 수 있다.
돌 도끼를 사용 한다. 

매우 부실하고 허접한 표이지만.... 여하튼 이런 표를보면 기획팀 내부 회의때 뭐라고 할까요?
(내용상 빠지거나 애매한 부분은 넘어가고)

딱 보면 드는 생각이 뭘까요?

제 생각에는 그냥 "음... 트롤이네요"가 아닐까 합니다.
 (아니면 곤란 합니다. ㅡ.ㅜD&D 세계과의 트롤 설정을 정리한건데..... 단, 어금니라거나 돌 도끼는 아니지만)
 
-=

1. 배경 지식의 필요성



위 상황에서 몇 가지를 알 수 있습니다.

1. 다른 기획팀원들은 D&D 세계관에 대하여 어느정도 충분한 지식은 가지고 있습니다. 

2. 위 몬스터는 기존 D&D 세계관에 나오는 트롤과 동일한 몬스터 입니다. 

3. 이 신입 기획자는 불쌍하게도 며칠씩 시간을 낭비 했습니다.

만약 신입 기획자가 D&D 세계관의 배경 지식을 가지고 있었다면 어땠을까요?

이런 불상사는 생기지 않았고 팀 내의 커뮤니케이션도 훨씬 간결했겠죠.

트롤을 설명 하기 위한 표나 그런 여타의 과정이 필요 없었이 

"이번 지역은 동굴을 중심으로 중간 중간 작은 공터가 있는 숲이 매인 지형이니 트롤 부족으로 가면 어떨까요?"

라는 식이 될 수 있겠죠.[각주:1]

배경 지식이 있고 없고의 차이는 작업 효율성을 높여 주는 엄청난 무기가 되는 겁니다.

아주 이해하기 쉬운 예시를 들자면....


 
위 5가지 전설의 동물로 NPC / 몬스터를 만들려고 한다면

용 / 빅풋 / 유니콘 / 네스호의 괴물은 배경 지식이 있어 만들기 쉽지만

여자 친구는 도저히 가늠이 되지 않아서 NPC / 몬스터화 하는데 엄청 오래 걸릴겁니다.

아... 제 이야기는 아닙니다.

저도 한때는 여자 친구가 있었거든요. 음... 한 7년 지났나? ㅡ.ㅜ 



그런데 만약 저 신입 기획자가 다른 컨셉의 게임, 가령 정통 무협 배경의 게임을 만들게 된다면 어떻게 될까요?


D&D 룰북의 배경 지식은 그 의미가 좀 많이 되색하겠죠.

배틀스탈 캘럭티카를 보는게 훨씬 도움이 될 지 모르죠.

그래서 전 기획자는 

비록 박이부정(博而不精)할지라도 박학다식(博學多識)한게 하나만 아는것보다 낫다고 생각 합니다.

단, 여기에는 조건이 있습니다.

자신의 지식이 정확하지 않음을 항상 인지하고 있어야 하는 겁니다.

그렇지 않다면 오히려 더 혼동만 줄 수 있습니다.

필요할 때 확실히 자료를 수집하여 잘못된 점을 바로잡고 올바르게 사용 하여야 합니다.

해당 사항에 대하여서는 아래에 따로 작성 하도록 하겠습니다.

그런데 이쯤되서 드는 의문이 하나 있습니다.

고증을 철저히 해야 하는가 입니다.


2. 고증과 통념



가령 동양풍 게임을 제작 하는데 구미호를 등장 시켜 봅시다.





...... 뭔가 글 내용과 관계가 미묘한 짤이지만 그냥 그러려니하고 넘어 가죠.

일반적으로 생각하는 구미호의 이미지는 어떨까요?[각주:2]

남자를 홀리고는 여우가 간을 파먹고 1000년이 지나면 꼬리가 9개가 되고 각종 도술에 능해지고 사람으로 둔갑을 할 수 있다.

정도가 되겠죠.

뭐 중국에서 주왕을 홀린 달기라거나 일본에서 도바일왕을 유혹하려다 살생석에 봉인 되었다는등 요물 중의 요물로 표현 되기도 합니다.

하지만.....

구미호에 대해서 좀 더 파고 들어보면 재미있는걸 알 수 있습니다.

구미호의 시초는[각주:3] 산해경의 해외동경편을 살펴보면 

동쪽의 청구국에 꼬리가 9개 달린 여우가 있는대 세상이 태평할 떄 나타나는 상서로운 동물이라고 되어 있습니다.

그리고 다른 기록에선 100년동안 도를 닦은 여우는 여자로 둔갑할 수 있고 이후 100년 마다 꼬리가 하나씩 늘어나고

1000년간 도를 닦으면 천년호라 불리는데 천년호가 된 구미호(900년때 꼬리 9개 1000년째는 꼬리가 안 늘어 나는듯)는

하늘로 올라가 옥황상제의 궁에서 옥황상제를 보좌한다...고 합니다.

일반적으로 알고있는 지식과 약간... 많은 괴리감이 들죠.
[남자로 둔갑하는 구미호라니.... 하등 쓸모도 없는 둔갑이군요. -.-]

그럼 어떻게 해야 할까요?

고민 하실거 없습니다.

아래 대화(?) 목록을 보시면 답이 나옵니다.

트위터 캡쳐이니 아래에서부터 읽어 주세요.
(플픽 사진과 이름을 모자이크 처리하는 이 배려심이란....) 






저게 정답 입니다! 정말입니다!

정말 얼토당토 않는 말도 안되는 내용이 아니라면 얼마든지 변형, 가공해서 써도 됩니다.

필요하다면 왜곡도 해야 합니다!
[300 온라인을 만드는데 모든 캐릭터가 근육질에 헐벗은 남자들만 나온다고 생각해보세요. ㄷㄷㄷㄷ]

어차피 기획자는 아이디어, 지식, 정보를 가공해서 게임에 사용 할 수 있도록 가공하는 사람입니다.

저 정도의 변형, 왜곡은 아주 좋은(...) 겁니다.

배경 지식은 어디까지나 배경 지식일 뿐입니다.

있으면 좋고 없으면 약간 아쉬운겁니다.

그럼 아쉬움을 달래줄 배경 지식은 어떻게 얻을 수 있을까요?[각주:4]


3. 습득 방법


 
사람이 사람으로 존재할 수 있게 하는것들...


수 많은것이 있지만 그 중 으뜸은 책이라 생각 합니다.

선대의 수 많은 지식/지혜가 누적되어 기록 되고 후대에 의해 가감되어 보완, 수정이 되어

다시 후대로 내려지는....그래서 옛 말에 책 속에 답이 있다고도 하죠.

 책을 많이 읽을수록 좋습니다.

음.... 학창 시절때.... 뭐 "양질의 도서를 가려서 잘 읽어야 한다." 같은 말을 듣긴 했습니다.

뭐 지극히 주관적 관념이지만 전 의견에는 동의 하지 않습니다.

아니, 최소한 기획자로서는 동의 하지 않습니다.

악질의 책... 어떤게 있을까요?

각종 불온 서적? 도색 서적? 그런 책에서도 충분히 정보를 뽑아낼 수 있습니다.

가령 노루표 무협(노루표를 거꾸로 읽으면 대충 뜻이.....) 에도 많은 정보가 있죠.

무협게임을 만든다면 혈도, 초식, 기연물 등.....

무협 용어를 익힐수 있죠.(그렇다고 궂이 노루표 무협을 권장 하지는 않습니다. 정서 발달에 안좋아요.)


그런데 책은 너무 많고 필요한 정보를 바로 바로 습득 할 수 없다는 단점이 있죠.

그럼 이를 보완해주는게 뭐가 있을까요?

그건 바로 구글님 입니다.

자료 검색을 할 때 네X버를 쓰시는 분들도 간혹 있습니다.

이것도 약간 주관적 관점일수 있지만...

'자료 검색은 구글에서, 가십 거리는 네X버에서' 를 추천 드립니다. 

구글에서 검색을 하면 정말 각종 정보, 데이터가 다 튀어 나옵니다.

딥웹에 있는 정보들이 아닌 면웹에 있는 자료들은 전부 검색이 된다고 해도 과언이 아닙니다.

구글링해서 못 찾는건 인터넷에 공개가 되지 않은거.. 라고 봐도 무방 합니다.

한글로만 검색하지 말고 영어, 한자등 다양한 언어로도 검색을 해 보세요.

한글로된 웹 페이지는 극히 일부 입니다. 

하지만 뭘로, 어디서, 어떻게 찾아야 하는지 모르는 경우도 있죠.

그래서 아까 위에서 강조한 박이부정해도 박학다식한게 좋다는 말이 적용이 됩니다.

어디서 뭔가 들어본거 같은 정보를 검색 하는것과

전혀 모르는 내용을 들어본걸 검색 하는건 엄청난 차이가 나타 납니다.
 
웹의 검색 엔진은 생각보다 똑똑하지 않습니다.

검색어를 어떻게 넣는냐에따라 다양한 결과를 도출 합니다.

무엇인가 검색을 하려는데 검색어를 모른다면? 수십번의 시행착오를 거쳐야 합니다.



만약 위 사진과 같은 효과를 구현하고 싶다면?

God Ray, Light Shaft, Crepuscular rays.... 등등응 용어로 불리니(엔진마다 용어가 조금씩 다르죠. OTL)

God Ray, Light Shaft, Crepuscular rays중 하나로 검색을 하면 되겠죠.

하지만 저 용어를 모른다면 어떻게 검색해야 할까요?

일반적으로 저런 현상을 틴들현상[각주:5]이라도 합니다.

하지만 구글에서 틴들 현상이라고 검색을 해도 쉽게 찾을 수 없습니다.(영어로 해도 마찬가지고요)

위 3가지 용어중 하나로 검색을 하면 바로 알 수 있습니다.

http://http.developer.nvidia.com/GPUGems3/gpugems3_ch13.html  라거나

http://developer.amd.com/media/gpu_assets/Mitchell_LightShafts.pdf  이렇게요. 
 


4. 정리와 백업


각종 정보들을 수집을 하였다면 어떻게 해야 할까요?

보기 편하게 잘 정리를 해야 합니다.

그냥 여기 저기 널부러진 정보는 아무런 의미가 없죠.
(살짝 있기는 있습니다.)

카테고리로 분류를 하여 정리를 잘 해야 찾기 쉽고 편합니다.

무엇이 어디에 있는지 아는것과 무엇만 아는건 검색 시간에 엄청난 차이를 보이니깐요.

하지만 정리보다 더 중요한게 있습니다.

정보의 백업은 수시로 이루어 져야 합니다.

예전에는 서류철에 출력, 복사된 용지를 보관 하였지만

요즘은 책보다 인터넷에서 자료를 구하기 쉽고 편하기 떄문에 즐겨찾기나 스크랩, 파일 저장, 캡쳐

등의 방법으로 자료를 저장 합니다.

하지만 컴퓨터란 녀석은 주기적으로 정리, 포맷이 필요하고(필요에 의해서든 불가항력적이든) 이럴때

데이터의 백업이 제대로 이루어져 있지 않다면 모든 자료를 날려먹는일이 생깁니다.
(제가 모 압축 프로그램을 증오 하는 이유가 약 10여기가의 자료를 상큼하게 날려 먹어서 그렇죠)

2중, 3중으로 안전하게 백업을 하는 습관을 들여야 합니다.

  1. 물론 실제 컨셉을 잡을때는 저것 말고도 고려 사항이 많습니다.단지 예시로 든게 D&D 세계관을 차용한 게임이고 간결하게 설명을 하기 위해 저렇게 처리 하였습니다. [본문으로]
  2. 이하 내용은 오류가 있을 수 있습니다. [본문으로]
  3. 이 부분은 의견이 분분하지만 [본문으로]
  4. 사실 이 부분은 딱히 쓸 필요는 없지만 간혹 어떤 정보를 제공해주면 그런건 대체 어디서/어떻게 찾아요? 라는 사람이 있어 적습니다. [본문으로]
  5. 콜로이드 분사계에 입사한 광선이 빛나는 현상 [본문으로]
반응형
,
Posted by 알 수 없는 사용자


먼저 이고랩터 시퀄라이티 캐슬배니아4 편을 보십니다 (시퀄라이티는 드물게 업데이트 되는듯)
아마 지난번 월하님 포스팅 덕분에 다 보신 분들도 계실거예요
짤방이 없다보니 심심해서...




얼마 전에 마계촌 온라인 2차 클배를 마쳤었죠. 저도 당첨이 되어 조금 해 보았습니다. 본 게임은 아실 분들은 다 아시겠지만 상당히 오랜 기간 개발되어 오다가, 2년 전에 최초 공개되어 이제서야 클로즈 베타를 하는 게임입니다.

무엇보다 놀라운 사실은, 이 게임은 무려 루리웹에서도 좋은 평가를 얻는 게임이라는 점입니다. 이게 왜 놀랍냐면요 메사추세츠 공과 대학이 지잡대가 되고, 존 카멕이 3류 개발자가 되는 곳이 바로 루리웹이거든요. 오죽하면 '루리웹에서 까이면 성공한다' 라고 해서 루까성의 법칙이라는 말까지 나올 지경입니다.

그런 루리웹에서 호평받는 게임이라니 대체 어느정도인가! 해서 게임의 클로즈 베타에 당첨된 저는 매우 기대에 부풀었습니다. 그리고 게임을 조금 즐겨보았는데...




먼저 원조 최신작 PSP용 극마계촌 플레이 영상을 보시고


만지면 커집니다(?)



게임 좀 해보신 분들이라면 마계촌이라는 게임 안해보신 분들은 없으실 겁니다. 그런데 이 게임은 마계촌의 IP를 달았지만 마계촌과는 너무 거리가 멀게만 느껴집니다. 그 차이점들은 대충 아래와 같습니다.

- 캐릭터
본래 한 명의 캐릭터가 다양한 무기를 입수해서 싸웠던 원작과 달리 온라인은 캐릭터를 클래스로 나누어 공격방법의 다양성이 대폭 축소되었습니다. 우선 원조 게임의 기분을 느끼기 가장 좋은 것은 아처 클래스인데, 게임을 시작하게 되면 플레이어는 어떻게 되든 한가지 무기만 죽어라고 파야 합니다. 상황에 따라 무기를 바꾸며 진행했던 흐름이 완전히 뒤바뀌게 됩니다. 또한 클래스는 2개의 상위 클래스로 전직이 가능합니다.

이러한 빈틈은 바로 '스킬'을 통해 보충하게 됩니다. 이런 스킬은 다양한 다양한 공격 또는 보조 능력을 갖추어 게임의 진행을 이롭게 합니다. 그런데 이런 스킬들은 키보드에 숫자로 지정해서 사용합니다. 때문에 게임패드로는 즐길 수가 없다고 하네요. 혹은 패시브로 작동하는 스킬들도 있습니다. 이런 스킬들 가운데는 공중에서 피격시 자세를 바로잡는 스킬도 있더군요. 점프 한 번 잘못했다가, 혹은 점프하다가 맞아서 빠져죽는 게임이 마계촌이었다는 것을 생각해보면 격세지감까지 느껴집니다.

- 레벨 디자인
죽어가면서 한 걸음 한 걸음 앞으로 나아가는게 기존 마계촌이었다면 온라인은 그런게 없습니다. 구덩이나 트랩이 있기는 한데, 빠져도 그냥 피가 조금 빠지고 마는 정도고요. 정말 욕나오는 간격 조정으로 빠져죽는게 일상이었던 기존에 비하면 온라인은 그냥 장애물 뛰어넘는 것이 아무 일도 아닙니다. 적어도 제가 경험했던 초반 던전들은 그러했습니다.

몬스터들과의 전투도 비슷합니다. 까다로운 위치나 간격으로 날아오는 일은 없었고 행여나 갑옷이 깨질까봐 무서워 할 필요도 없으니까 그냥 무심하게 빨리 죽으라고 키보드만 눌러대면 됩니다. 다만 보스와의 전투가 어려운게, 온라인 게임이다 보니 입력이 콘솔 만큼 빠르지가 못합니다. 그래서 돌진하는걸 점프로 피하는 경우에는 한박자 이상 빠르게 입력해야 데미지를 받지 않는게 가능하더군요. 그런데 한 번 받힌다고 갑옷이 깨지는 것도 죽는 것도 아니고, 사정이 이렇다 보니까 애써 피하지 않고 그냥 맞게 됩니다.

- 시스템
현재 온라인 게임에 있는 시스템들은 거의 다 있습니다. 장비는 온 몸 장비에 목걸이 반지까지 다 있고, 소재 갈아서 재료 꺼내고 뭐하고 우편으로 거래하고 경매장 시스템 귀속이나 각종 아이템 클래스 등등...

여기까지 읽지 않아도 딱 생각나는 게임 있으실 겁니다. 이 게임은 던파나 메이플과 크게 다르지 않습니다. 좀 심하게는 2D 디아블로도 되겠네요. 마계촌의 이름과 세계관을 빌려왔지만 내용은 한국 온라인 게임 그 자체. 이게 현재 한국 게임의 현 주소이자 확립된 문법이 아닐까 합니다. 그러니까, 캐슬배니아 처럼 씹고 뜯고 맛보고 즐기는 그런 스타일이 아닌 결국은 시간과 돈을 들여 강해지는 최근의 온라인 게임 그 자체라는 말입니다. 이런 류의 게임은 몇 명이 (혹은 수십명이) 작당하면 독과점해서 게임 경제 무너뜨리는건 일도 아니더군요. '배우긴 쉽지만 마스터는 어렵게' 라는 말도 있는데 뭔가 이 말이 잘못 적용되는건 아닌가 생각이 듭니다.





제가 이런 얘길 하는건 이 게임은 마계촌이 아니야! 이런 얘길 하려고 하는건 아닙니다. 오랜 기간 캡콤과 돈독한 협력 관계 아래에서 제작되고 있는 게임이고, 게임 시작할 때 캡콤 로고도 두둥 올라오고 말이죠. 인터넷 상에서는 호평 일색이니 운영만 받쳐준다면 이 게임의 성공은 중박 이상은 보장되었다고 해도 과언은 아닐겁니다.

아마도 이렇게 만드는 것이 최선이었다고 생각되겠지만, 아쉽다는 생각이 자꾸 듭니다. 앞서도 보셨겠지만 속편대결 메가멘 X편을 보고나니 그런 생각이 더더욱 간절했거든요. 그래서 현재 개발중이라는 록맨 온라인(가칭)은 어떻게 나올지 무척 기대가 됩니다.

굳이 마계촌을 예로 든 이유는 제가 예전에 마계촌 온라인 레벨 기획자 구인 공고 보고 포폴 만들려고 없던 PSP까지 사고 전 시리즈 게임 다 해봤던 적이 있었거든요. 결국 포폴의 포도 못쓰고 끝났습니다만 ㅠ 저렇게 나온 게임을 보니 기분이 참...

 
그리고 친목을 중시하는 마비노기에 있어서, 길드라던가 파티,또는 커뮤니티는 필수라고 볼수 있습니다. 마비노기는 혼자하면 재미가 없어요. 그리고 그 친목에 들어가기 위해서는 뭔가 하나 내세울 필요가 있습니다. 생산 마스터라던가, 전투를 잘하거나, 것도 아니면 현실스펙이 뛰어나거나(혹은 뛰어난척 연기를 하던가.) 즉, 강해져야 합니다. 강해지는 기준은 처음에야 많았습니다. 스매시 열라게 찍어서 신나게 빵빵 때려대거나, 방보합이 좋아서 인간방패가 되거나, 또 아니면 볼트 열라게 날리거나.


마계촌 얘기를 하면서 꺼낸 말은 게임 플레이의 한 단면이었고, 그 안쪽을 들여다보면 이보다 더한 문제들도 존재합니다. 온라인 게임은 게임의 본질을 뒤집은게 아닌가 싶은데요 이쯤되면 게임이 아니고 사회가 아닐까 싶습니다. 솔직히 이런게 왜 문제라고 생각하지? 하고 궁금해 하는 분들도 계실테고, 아무래도 상관없다고 생각하실 분들도 계실겁니다. 하지만 지금 시대에 우리가 만들거나 만들거 될 게임은 여태까지 게임이 발전해 왔던 것과는 달리 더이상 발전의 여지가 없게 될지도 모릅니다.

제가 이런 말을 한다고 해서 저한테 뭔가 대안이 있는 것도 아니고-대안도 없는데 문제재기만 하는건 정말 싫습니다만 어쩔 수가 없네요-저보러 당장 기획팀장을 시켜준다고 해도 지금 가장 잘 만들어진 것 만큼 만들 수 있는 자신도 없어서 분하기만 합니다. 하지만 누군가가 그래왔듯 반드시 기가막힌 새로운 무언가가 나오리라 생각합니다. 때문에 저는 외치고 싶습니다. 기가 막힌 그래픽이나 엄청 빠른 알고리즘도 좋지만 결국은 헉!소리 나는 게임을 만들고자 하는 꿈은 여러분 모두가 가지고 계셨거나, 아직도 가지고 계실거라 생각하기 때문입니다.







반응형
,
Posted by 알 수 없는 사용자
모 필자의 전공이 법 이라는걸 알기 땀시 좀 두렵습니다만, 열심히 만든 게임을 산업 스파이에게 빼앗겼음에도 불구하고 보호받지 못하는 경우나, 억울하게 산업스파이로 몰려 처벌받는 경우를 관련 법에 대해 조금이라도 알면 회피할 수 있지 않을까 하여, 최근의 관심사인 영업비밀 보호법과 관련된 내용을 실제 있었던 일 기준으로 이야기 해 보도록 하겠습니다.

0. 영업비밀의 정의 및 처벌 범위 & 지식재산권 (구 컴퓨터프로그램 보호법)

영업비밀이란 '돈을 버는데 사용되는 지식으로 그 소유자가 비밀로 하고 싶어하는 모든 것 중에 만들어 내기 힘들고 진짜 돈이 될만한 것들'을 말한다. 물론 법적인 용어를 사용한다면 위에 쓴 것 보다 훨씬 세련되고 멋진 단어들로 구성된 문장으로 만들어 낼 수 있겠지만, 불행하게도 필자는 공돌이 이다. 컴퓨터도 알아들을만한 단순하고 직선적인 표현이 훨씬 편하... 고싶은 공돌이 이기 때문에 혹시 약간의 오해가 있을 가능성이 있을 수 있겠지만, 포 떼고 차 떼고 표현할 수 밖에 없다. 그러니 내용상의 문제가 아닌 표현상의 문제를 가지고 왈가왈부는 참아주시길 바란다.

ㄱ. 영업비밀이 왜 무서운가

한국에서 영업비밀 보호는 부정경쟁 방지법과 함께 묶여 있으며 '신지식재산권'의 한 분야이다. 즉, 영업비밀 보호법은 지식 자체를 보호하고자 하는 목적과 다른 사람의 지식을 훔쳐 경쟁에서 부당한 이득을 취하는 것을 막는 기능을 가지고 있다.

내게 소중한 영업 비밀이 침해되었다는 것이 인정된 경우, 침해된 비밀을 이용해서 하고 있는 모든 행위를 그만 두게 해달라고 요청하는 것과, 영업비밀을 까발리는 바람에 손해본 것을 물어달라고 하는 것이 가능하다. 물어달라고 하는 경우, 보통은 얻을 수 있었던 이익을 추산하여 청구하는게 일반적이지만, 영업비밀이 침해당했다고 인정된 경우에는 침해한 쪽이 침해를 통해 얻은 이익을 다 내놓으라고 할 수 도 있다.

그리고, 다른 형법과 달리 예비, 음모, 미수범 역시 처벌되며, 친고죄가 아니다. 즉, 거의 내란죄에 맞먹는 수준의 처벌 규정을 가지고 있으며, 기술유출 등으로 손해를 본 당사자가 원하지않는 경우라 해도 국익에 반하는 유출 행위라면 처벌될 수 있다. 사실, 이 규정이 추가된 것은 오래된 것은 아니고, 1998년 반도체기술 해외유출 사건 때문에 강화되었으며, 그 사건이 있기 이전에는 친고죄 이기도 했다.

어찌 되었든, 기업비밀로 인정된 정보를 유출하여 제 3자에게 알린 경우에는 3년이하의 징역이나 3천만원 이하의 벌금을 물게 되어있으니 회사에서 한 일을 회사 밖에서 뻐꾸기 날리는 일은 참는게 좋다. 재수 없으면 쇠고랑 찬다. 그 위에, 말한 내용이 외국으로 나갈걸 알면서도 말한 경우에는 처벌 규정이 더 쎄다. 10년 이하의 징역 또는 재산상 이득의 2배에서 10배 이하의 벌금을 쳐 맞을 수 도 있다. 한마디로, 인생 조질 수 있다. 회사의 영업비밀을 외국으로 들고나가 사용한 경우에도 역시 똑같이 인생 망친다.
 
예전에는 소프트웨어의 소스코드 등을 보호하기 위해 별도의 법이 있었지만, 이제는 소프트웨어를 개발하면서 발생한 모든 자원은 신지식재산권 - 즉 '부정경쟁방지 및 영업비밀보호에 관한 법률'에 의해 보호 된다. 실수로 라도 회사에서 소스코드 한 줄 이라도 회사 밖으로 들고 나오거나 포스팅 하지 말아야 한다. 왜? 위에 말한 '기업비밀 유출'죄에 해당된다. 한마디로... 좆된다.

ㄴ. 영업비밀로 보호 받으려면 뭘 해야 하나

이전에 말 했듯이 프로그래밍 기술을 통하여 공격자의 공격을 막는 데에는 한계가 있다. 수학적으로 안전한 모델을 만들더라도 실제로 그 모델을 어떻게 구현하느냐에 따라 전혀 보호받지 못할 수 도 있다. 그렇기 때문에 기술적인 면 이외에 법적인 방법이나 사회적인 방법으로 보호받을 수 있는 노력을 해야 한다. 탐 크루즈 같은 졸라 잘난 산업스파이가 중요한 정보를 뽀려 가더라도 쓰지 못하게 하는 노력이 필요 하다.

영업비밀로 보호받기 위해서는 다음의 세 조건을 만족시켜야 한다.
  1. 가치가 있어야 한다. 소위 말하는 돈 되는 정보가 아니라면 영업 비밀로서 보호받지 못한다. 주의 할 점은 실패한 실험결과 같이 그 정보를 얻기 위해 시간과 노력이 투자 되어야 하는 정보 역시 영업 비밀로서 보호 된다는 것 이다.
  2. 돈이나 시간이 투입되어야 얻을 수 있는 정보 이어야 한다. 구글 횽아나 위키 횽아에게 물어보면 가르쳐줄 만한 정보를 영업비밀이라고 우길 수 는 없다는 말이다. 영업비밀 보호 법은 기본적으로 두 회사간의 기술적인 격차나 영업력의 격차를 부당한 방법 - 뽀리는 방법으로 줄이는 것을 차단하여, 정당한 노력으로 기술력과 정보를 축적한 기업이 불이익을 당하는 것을 막고자 하는 것이 그 취지인 법 이다. 그러므로 쉽게 얻을 수 있는 정보를 영업비밀이라고 주장할 수 는 없다.
  3. 비밀로서 보호하기 위한 노력을 해야 한다. 보호하고자 하는 내용이 비밀이며, 밖으로 유출되어서는 안된다는 사실을 해당 정보를 취급하는 자에게 주지 시켜야 한다. 그리고, 허가 받지 않은자가 해당 정보를 정상적인 방법으로는 취득할 수 없도록 하는 노력을 해야 한다.
게임을 개발하는 입장에서 A와 B는 자동적으로 성립될 것이기 때문에 C에 해당되는 내용이 확보되도록 노력에 노력을 다하면 될 것이다. 그러면, 이제부터 C를 만족시키기 위해 할 수 있는 간단한 방법들에 대해 다루어 보도록 하겠다.

1. '관계자외 출입금지' 팻말의 힘
 
한국 에서는 소위 부작위범에 대한 처벌이 과하다 싶을 정도로 약하다. 부작위범 이라 함은 한마디로 표현해서 '몰라서 그랬어요 혹은 실수로 그랬어요'라 주장하는 사람을 말한다. 그 사람이 알고서 그랬다는 증거를 제시하지 못하면 설령 일부러 그랬다 해도 처벌되지 않거나 최소한 벌의 정도가 약해진다. '그냥 쓰레기 인줄 알고 휴지통에 그냥 버렸는데 중요한 정보가 유출 되었다'는 개소리를 하는 말종 때문에 회사가 문을 닫아서는 안될 일이다. 이런경우 '몰라서 그랬다'는 변명을 막기 위한 최소한의 조치가 '관계자외 출입금지' 표식이다.


거긴 네가 있어도 되는 곳이 아닐텐데?

'관계자외 출입금지' 팻말을 붙였음에도 불구하고 제 삼자가 문을 열고 들어와서 무언가 집어들고 나갔다면 일단 '불법 침입죄'가 성립이 된다. 그렇기 때문에 '관계자외 출입금지' 팻말 하나로, 실수나 부주의로 비밀 문건을 책상위에 남겨둔 경우, 비밀을 보호하기 위한 노력을 하지 않았다는 판결을 받게될 가능성을 현저히 낮출 수 있다. 그렇기 때문에 개발실이나 연구실 등 뭔가 자료가 있을만한 장소에는 '관계자외 출입금지' 팻말을 붙여두어야만 한다.

그래도 요즘은 자동으로 잠기는 자물쇠 정도는 달아줘야 한다. 기술적으로 방어할 방법이 있음에도 불구하고 하지 않았다면, '비밀로서 보호하기 위한 노력'이 충분하지 않았다는 판결을 받을 확률도 없지 않기 때문에 가능한 상황이라면 자동으로 잠기는 자물쇠도 추가해 주면 금상첨화가 되겠다.

2. 중요한 문서에는 암호를 써라

기술적으로 암호가 쉽게 깨지는 것 이라해도 상관 없다. 중요한 것은 성의를 보이는 것 이다. MS워드 등에서 제공하는 보안 옵션은 사실 빈약하기 짝이 없는 데다가, 요즘은 컴퓨터의 성능이 좋아져서 대입법[각주:1]을 사용하여 공격을 하면 열댓자리 정도의 패스워드는 일주일 정도면 깰 수 있지만, 재판자리 에서는 아주 큰 의미를 갖는다. 그냥 더블클릭하면 열리는 파일과 암호를 깨기 위해 해킹 프로그램을 일주일 정도 돌렸다는 것은 의미상으로 완전히 다르다.


있어봐야 별 필요 없는 것 같이 보여도 없는 것 보다는 낫다


3. SVN이나 CVS는 계정관리를 확실히 하라

중요한건 아무나 액세스 할 수 없다는걸 보여주는 것 이다. 소스의 유출은 꽤나 타격이 큰 유출 사건이 된다. 그렇기 때문에 소스가 유출 되고 나면 이미 게임오버 이기 때문에 별 의미는 없다. 하지만, 만의 하나라는 경우에 소스의 보호책을 형식적으로라도 시행하고 있다면, 상대 업체에게 해당 소스를 사용하지 말고 폐기해 달라고 하는 근거가 될 수 있다.

유사하게, 아웃소싱 하여 외부인을 사내로 데려다가 일을 시키는 경우 일을 마치고 나갈때 하드 디스크를 포멧할 것을 계약에 명시함으로서, 유출사고가 발생 하더라도 책임의 소재를 분명하게 하고, 다른 방법으로 보호되지 못하더라도 계약위반으로 책임을 물도록 할 수 있다. 물론, 전문적인 법률가의 관점에서 하는 정도의 정교함과 확고함이 아니므로, 기술적으로 별 의미가 없다 하다라도 정보를 보호하기 위하여 최선을 다했다는 것을 보이기 위한 레벨에서 해야만 하는 일이다.

4. 계약서 혹은 보안 서약서에 들어가야 할 문구

직업 선택의 자유는 법에서 보장하고 있는 것 이기 때문에 그 어떤 방법으로도 경쟁업체로 이직 하는 것을 막을 수 는 없다. 그렇기 때문에 계약서나 보안 서약서에는 다음의 의미가 들어있는 문구가 들어가야 한다.

종업원 자신이 개발한 기술을 다른 업체에게 누설하지 않으며, 해당 기술을 개발하기 위해 거쳤던 과정 역시 외부에 알리지 않는다.

1960년 미국 펜실베니아에서 있었던 벡슬리와 그린버그간의 재판에서 '종업원은 자신이 개발한 기술을 다른 경쟁업체에 누설하여도 특별한 특약이 없는 한 영업비밀의 침해로 보지 않는다'라고 판시하였기 때문에 위의 내용을 담는 문구가 필요해 진 것이다. 실제로 자신의 지식을 다른 이에게 알리거나 댓가를 받고 전수하는 것 자체는 정상적인 활동으로 보기 때문이다. 특정 회사에서 영업비밀로 간주하는 사항이라 하더라도 다른 사람이 정상적인 경제활동 하는 것을 막는 것은 허용하지 않기 때문이다.

그러나, 자신이 개발한 내용이 아니라 회사에 입사해서 습득한 내용의 경우에는 잘못 유출하면 '영업비밀 침해', '업무상 배임' 심하면 '불법침입', '절도' 등의 죄목을 뒤집어 쓸 수도 있으므로 회사에서 직무상 취득한 내용을 언급하는 경우에는 주의해야만 한다.

5. 세뇌교육(!)은 반드시 해야 한다

직원들에게 '영업비밀을 침해하지 않도록' 세뇌교육을 주기적으로 질려서 죽을 때 까지 해야 한다. 예전엔 영업주의 노력과 상관없이 직원이 다른 회사의 영업비밀을 가져다가 사용한 경우에는 영업주가 하지 말라고 했던 말건 무조건 영업주도 책임을 졌어야 했으나, 최근에 개정된 법에 의하면 영업주가 충분히 하지 말라고 교육하고 말렸고, 외부에서 부당하게 들고온 정보를 사용했는지를 감시하려고 노력했다면 처벌 당하지 않는다. 그렇기 때문에 직원들이 관심없어 하더라도 끊임없이 '하지말라'고 알려야 한다. 왜? 그래야 면피가 된다.

마찬가지로, 직원들이 다루고 있는 내용이 영업비밀이며, 외부에 알려서는 안된다는 것을 끊임없이 알려줘야 한다. 직원들이 보안 문구에 관심이 있건 없건, 그 문구의 의미를 알던 모르던 모든 비밀 문서의 첫장에는 비밀 이라는사실을 기록 해야한다. 그리고, 그 비밀을 유출 했을때 뭔일이 생기는지 짜증나서 미취어 버릴 때 까지 반복교육을 해야 한다. 그래야 나중에 딴 맘먹은 직원이 헷짓을 했을 때 영업비밀로서 보호를 받고 구제를 받을 수 있다. 그래서, 많은 기업에서 별 의미 없는 보안 문구를 여기저기에 시도 때도 없이, 가끔은 별 의미 없다고 느껴지는 상황에서도 '비밀이니 이거 누설하면 너 인생 끝장' 이라는 내용의 메시지를 보여주는 것이다.

6.  머리속에 든 거 외에는 내 것이 아니다
 
하드디스크를 포멧한 시점을 알 수 없기 때문에 억울하게 유출범으로 몰린 경우가 있다. 갑씨는 을 이라는 업체에서 병이라는 경쟁업체로 이직을 했다. 그는 을 회사에서 사용하던 개인 하드디스크를 아무 생각 없이 병 회사에 가서 사용했다. 그러던 어느날 을 업체는 병 업체가 사용하는 기술이 자사의 기술과 유사하다는 것을 알게 되었고 두 업체는 법적인 소송을 시작했다. 그 과정에서 갑은 이직자 였기 때문에 압수 수색을 당하게 되었고, 갑이 사용하던 하드 디스크에 있던 삭제 파일들을 복구하는 과정에서 을 회사의 영업비밀의 내용이 담긴 파일이 복구 되었다. 그리고 갑의 고난은 시작 되었다.
 
사실, 회사가 개인을 공격하는 경우는 거의 없다. 아무리 괘씸죄라고 해도 회사가 개인을 상대로 소송을 하다보면 보통은 득보다 실이 많기 때문에 에지간 하면 그냥 내버려 둔다. 괘씸죄가 용서가 안될 수준 이라면 법보다 가까운 주먹도 있으니 궂이 법을 통할 이유가 없기도 하다. 문제는 두 회사간에 시비가 붙은 경우 우연히 중간에 끼인 개인의 등이 터지는 경우이다. 그렇기 때문에 스스로를 보호하기 위해서 보안과 관련된 사안에 대해 관심을 가지고 있을 필요가 있다.

회사 입장에서도 마찬가지로 다른 업체에서 인력을 스카웃 해 오는 경우에 문제거리가 될 만한 것들에 대해 보안교육을 하고 오해사거나 트집거리가 될만한 일들을 회피하기 위한 최소한의 노력을 기울이는 것이 필요하다. 
 
*     *     *

아, 역시 전공이 아닌 내용은 글로 표현해 내기가 무쟈게 어렵네요. 뭐, 전공이라 해도 잘 쓴다는 말은 아닙니다만... 쿠헥~

다음 부터는 좀더 전공에 관련된 내용을 다루도록 하겠습니다. 뭐냐면 서버-클라이언트간 통신 프로토콜을 다루어 보도록 하겠습니다. 물론, 공개키 방식을 이용해서 모든 데이터를 암호화 해서 주고 받는다면 조낸 안전하게 데이터를 주고 받을 수 있겠지만, 데이터의 양이 많은 온라인 게임의 통신을 생각하면 미칠듯이 효율이 낮은 헷짓 이겠지요. 다루어 보려는 통신 프로토콜은 가능하면 연산량이 적은 - 데이터를 암호화 하는데 걸리는 연산량을 최소화 하고, 그럭저럭 나쁘지 않은 안전성을 갖는 프로토콜 들에 대해 다루어 보겠습니다.
  1. 가능성이 있는 값들을 모두 입력해 보는 방법을 말합니다. 예를 들자면 자물쇠의 비밀숫자가 네자리 숫자라면 0000~9999의 만번을 시도해서 답을 얻어내는 것이 가장 대표적인 대입법 공격이 되겠습니다. 사이트들이 패스워드 자릿수를 제한하고 반드시 숫자와 특수문자를 섞도록 강요하는 이유가 대입법에 의해 패스워드가 쉽게 깨지는 것을 방어하기 위함 입니다. [본문으로]
반응형
,
Posted by 알 수 없는 사용자
안녕하세요. 17일에만 여러분께 출몰하는 랩하는 좀비, 줄여서 랩좀비군입니다. 2일에도출몰해야하지만게으름이나를압박 원래 주말에 글을 쓰려고 준비해 놨는데 급한 사정이 있어서 이제야 게시하는군요. 날씨가 아직도 춥습니다. 언제 이놈의 겨울이 끝날 것인지 기다려지는군요. 이제 한국에는 여름겨울 뿐이야... 이런 아늑한(?) 분위기에서 다들 프로그래밍은 잘들 되십니까? 어서 봄이 되어야지 먹으러다니는데 외출도 하고 좋은 데 좀 거식하네요
 
오늘은 저에게 어울리지 않는 교양적인 이야기를 하려고 합니다. 사실, 저는 프로그래밍을 하면서 외적인 인자에 대해서는 무감각해지며 그것에 대해서는 깊게 생각하지 않는 프로그래밍덕후스러운 사람입니다. 학원다니던 시절에 동기들이 어떻게 해야 프로그래밍을 잘할까? 라는 고민을 할 때도, '그냥 졸라 열심히 하면 되 임마' 라면서 공부하던 기억이 납니다. 하지만 요즘에는 이런 것들을 많이 생각하게 되더군요. 어떻게 하면 프로그래밍을 더 잘 할 수 있는가, 다른 프로그래머와 어떻게 대화해야 하는가? 어떤 분을 뽑아야 우리 팀이 더 나아질까 등등, 프로그래밍을 배우던 시절에는 동기들의 고민에도 별로 공감이 가지 않고 그랬는데, 나이가 먹으니 심적인 변화가 좀 있는 것 같습니다.

아.. 벌써 30대가 되었어.


그런 의미에서 오늘 풀어볼 썰은 저희 회사에서 시행하고 있는 재택근문에 대해서 입니다. 우선 여러분께 질문을 하도록 하지요.
 

여러분은 언제 코딩이 제일 잘 되었나요?
다른 말로 표현해 볼까요?


여러분의 생산성은 언제 극대화 되었습니까?



프로그래머에게 생산성은 버그의 수정, 기능의 추가, 리팩토링 등등이 있겠습니다.
이런 것을 통틀어서 개인적인 경험을 말씀드려 보겠습니다. 

저희 회사에서 개발하고 있는 게임중에 R1이라는 게 있습니다.

이런 게임이라능.. 오덕심을 자극한다능.. 하악하악. 허벅지 하악하악.

이 게임을 만들고 있는 팀에 가서 현재 제작하고 있는 3d Engine을 이 게임에 맞게 변형시키는 일을 하게 되었습니다. 넷북에서도 돌아갈 수 있을만한 최소사양의 구성(고정파이프라인이 반드시 들어가야 겠네요), 기존의 3d Engine에서 동작하던 무거운 소스 코드의 제거, 라이트맵이라거나, 포스트 이펙트의 구성이라거나... 등등. 처음 얘기를 꺼냈을 때, 기간은 15일에서 20일 정도 소모될 것으로 예상하였고, 저도 최소한 코드를 붙이고 기능들을 추가하는 데만도 10일 정도 걸릴 것으로 예상했습니다.

 그런데 작업을 시작하고 열심히 하다 보니 5일만에 종료되네요?

난 좀 짱인듯.


감히 말하지만 이 5일동안 작업의 분량은 그 때까지 프로그래밍을 하면서 가장 많은 생산성을 보여준 5일이라 생각됩니다. 
그러면 어떤 것들이 이 일을 가능하게 했을까요? R1팀으로 파견 나가게 되었을 때, 저에게는 적지 않은 환경 변화가 있었습니다.
분리된 스튜디오, 문 앞 자리, 오직 인트라넷, 무한 통닭. 이 4가지가 그것입니다. 
하나하나 이야기 해 보도록 하겠습니다.

분리된 스튜디오
그 당시 R1을 만드는 스튜디오는 본사와 걸어서 5분정도 떨어져 있는 곳이었습니다. 어떻게 생각하면 가까운 거리지만, 다르게 생각하면 매우 먼 거리죠. 마음먹고 움직이지 않는 이상 쉽게 갈 수 있는 위치는 아니었습니다. 게다가 본사와는 다른 네트워크를 사용하고 있었구요.

적절한 멀티는 승리의 열쇠


 그렇게 해서 이동을 하고 나니 기존의 업무에서는 완전히 해방되게 됩니다. 기존에 엔진에서 만들고 있었던 기능에 대한 버그 리포트도 없고, 기존 팀의 요구사항도 없었지요. 한 마디로, 작업중에 누가 건든다거나 하지 않는 고립된 환경이 조성된 겁니다. 일을 하다가 다른 일을 하게 될 때는 많은 비용이 들어갑니다. 그것을 프로그래머들은 Context Switch라고 하는데, 예전에 본 글에 대한 기억에 의하면, '다른 프로그래머에게 질문하기 전에 20분은 검색해 보아라. 네가 질문을 하는 순간 그 사람은 20분을 다시 집중하는 데 투자해야 한다' 라고 하더군요. 이 비용은 무시할 수 없습니다. 하지만 이 비용을 발생시키지 않는 환경이 조성된 것이지요.

문 앞 자리

짧은 기간 발령(?)이 난 지라 크게 자리를 옮길만한 분위기가 아니었습니다. 게다가, 맡게 된 일도 딱히 팀과 관련된 일이 아닌 혼자서도 해결할 수 있는 일이었기 때문에 크게 상관이 없었지요. 그래서 문 앞에 자리를 마련하게 되었습니다. ...문 앞자리입니다.

언제나 간부님이 소리없이 나타나시는 문 앞 자리


 문을 열면 바로 모니터가 보인다거나 그렇지는 않지만, 동료들이 왔다갔다 하면서 가끔 모니터를 처다보는 자리였습니다. 그리고 조금만 방심하면 간부님이 나타나 제 모니터를 바로 확인할 수 있는 자리였습니다. 뭐, 딴짓을 해도 갈구거나 하는 회사는 아니지만, 그래도 대놓고 딴짓하기에는 사원으로서 회사에 대한 예의가 아니지요.

이렇게 실시간 감시가 되어지는 자리에서 일을 하게 되었습니다.
문 앞이라 동료들의 움직임이 신경쓰이기는 했지만 집중을 하게 되면 개의치 않게 되더군요. 게다가 좋은 점도 있었는데, 동료들이 하나의 기능이 완료될 때마다 모니터를 스윽 쳐다보면서 반응을 주기도 하였습니다. 라이트맵이 부활한다거나, 글로우의 강약이 쉽게 조절된다거나 할 때 말이죠. '우와 좀 쩐다?' '글로우 죽이는데?' 등등 더 많은 반응을 받고 싶어서 열심히 했던 기억이 나는군요.


오직 인트라넷
원래 회사에서는 개인 인터넷을 할 수 있는 PC를 제공해 줍니다. 하지만, 자리 이동할 때 귀찮아서 인터넷 PC를 안가져 갔더니(모니터까지 들고가야 하니까!) 따로 인터넷을 할 수 있는 기기가 없는 상황이었습니다. 뭐, 아이폰은 있지만 쾌적한 웹서핑은 할 수 없었지요.

군대에서는 인트라넷만 보고 있어도 재미있다.


업무에 대한 궁금증이 있을 경우는 동료의 넷북을 빌려서 검색할 수 있었습니다. 하지만, 동료의 넷북이니 바로 반납해야 하지요. 그걸로 인터넷을 할 수는 없었습니다. 눈에 보이는 것은 일밖에 없고, 한눈 팔 것도 없는 환경이었습니다.


무한 통닭

공돌이에게는 여러 모로 친근한 통닭. 통닭은 진리입니다.

하루 하루 기능이 만들어질 때마다 회사 게시판에 완료된 일들에 대해서 게시했는데, 그 때마다 이사님이 열심히 했다고 통닭을 사주셨습니다. 첫 하루는 그냥 앞으로 열심히 하라는 의미로 받아들이고 먹었는데, 다음날, 그 다음날도 저녁대신에 통닭을 먹게 되더군요. 그러다보니 오늘은 또래오래를 먹고 내일은 굽네를 먹기 위해 달리자! 라는 마음이 생기더군요. 그렇게 일주일동안 매일 빠른 포상 으로 통닭을 먹게 되는 상황이 되었습니다. 회사 입장에서는 싸고, 제 입장에서는 만족감이 뛰어난 긍정적인 포상이었찌요.

이렇게 4가지 환경이 조성되었습니다.
이 4가지의 핵심은 다음으로 표현할 수 있겠네요.

분리된 스튜디오, 오직 인트라넷 == 고립된 환경
문 앞 자리 == 실시간 감시
무한 통닭 == 빠른 포상


이렇게 말이죠.

하지만 사람은 이것만으로는 일을 하지는 않아요.
일에 대한 동기가 없다고 할까요? 물론 월급을 받고 있으니 일을 해야 하긴 합니다.
하지만 이 일에 집중하게 되는 상황은 쉽게 만들어지지 않죠. 그런의미에서 다른 질문을 해 보겠습니다.

여러분은 언제 일을 하고 싶어합니까?
역시 다른 말로 표현해 보겠습니다.

여러분은 언제 받습니까?

흔히 어떤 일이 아주 잘되면 '아 나 오늘 좀 받는데?' 라고 표현 합니다. 일 뿐만 아니라, 게임을 하거나 술을 먹거나 등등의 상황에서도 자주 이 단어를 사용하게 됩니다. 바로 지금 내가 하고 있는 행동에 대한 집중력이 최고에 달했을 때, 즉, 무아지경의 상황에 들어갔을 때 이 단어를 내뱉게 되지요.

여러분들에게는 제로의 영역이라는 단어가 더 어울릴지도... 오덕오덕

 
이 필이 충만한 상황으로 돌입을 하려면 어떻게 해야 할까요? 
아니, 그 상황으로 인위적으로 들어가는 게 가능할까요? 하야토는가능할지도
필은 인위적으로 만드는 게 아니라 영접하는 겁니다. 만약 만들 수 있다면 님은 외계인이니 어서 지구를 떠나세요. 
아니 떠나시기 전에 UFO는 주시고..

아무튼, 프로그래밍을 하다보면 잠자다가도 코딩이 하고 싶어지는 상황을 겪으신 분들이 많으실 겁니다.
회사 내에서 막 고민했었던 버그에 대한 해결책이 떠오르기도 하지요. 퇴근하다가 지하철에서 영접하기도 합니다. 
주말에 이것 저것 생각하다가 바로 실험해 보고 싶으시지 않으셨는지요?
그리고 잠에 들기 전에 눈을 감으면서 이것 저것 생각하다가 뭔가 퐉! 하고 오신 기억은 없으신가요?
하지만 그 때, 바로 코딩을 할 수는 없습니다. 왜냐구요?

  
다음날 아침에 일어나서 출근을 해야 하거든요. 

내일 일어나려면 자야 합니다.


그리고 자고 일어나면 아쉽게도 필은 어디론가 사라져 있습니다.
물론 남아 있을 때도 있긴 하지요. 한 8:2정도로 사라진다고 봐도 무방하겠네요.
아쉽습니다. 통탄할 지경입니다. 왠지 뭔가 하면 잘 될 것 같은 상황에서 우리는 다음날 출근을 위해서 잠을 자야 합니다.
그리고 잠을 안자도 되는 상황에서는 작업하고 있었던 소스코드가 없어요. 일을 하고 싶은데도 일을 할 수가 없습니다.
이는 회사와 개인에게도 큰 낭비입니다.

그렇다면 출근을 마음대로 할 수 있고, 소스코드만 있다면 어떻게 될까요?

집에서 잠자다가 해결되지 않는 버그의 답이 떠올랐습니다. 그럼 바로 작업에 들어가도 됩니다. 다음날 늦잠을 자도 되거든요. 
주말에 TV를 보다가 아이디어가 떠올랐어요. 그럼 시험해 봐도 됩니다. 소스코드가 집에 있거든요.
머릿속에 떠오르는 생각들을 바로 시험해 볼 수 있는 환경이 조성된 겁니다.

자, 이제 우리에게는 '고립된 환경, 실시간 감시, 빠른 포상' 그리고 '필 받으면 바로 작업할 수 있는 환경'이 조성되면 뭔가를 할 수 있을 것 같은 생각이 듭니다. 고립된 환경에서 다른 동료들의 요청이나 버그리포트를 받지 않고, 실시간으로 누군가가 감시하고, 빠른 포상이 있으며 게다가 필 받으면 바로 작업할수 있는 환경을 조성하면 됩니다.

 
그래서 저희 회사에서는 마음대로 재택근무를 시작해 보았습니다. 
이거어째회사광고스멜이

음.. 집 모니터는 좀 구린데?



재택근무

모두 잘 아시고 있는 집에서 근무하는 것을 말합니다.
하지만, 여기서는 꼭 집일 필요는 없습니다. 제 경험에 대해서 말씀드렸던 고립된 환경이 기억나시나요?
각자의 취향에 맞게 고립된 환경을 조성하면 됩니다. 동물을 좋아하시면 애견, 애묘카페. 바다가 좋으면 제주도.
돈 좀 있으시면 발리, 미국, 캐나다, 남극(?). 등 와이파이가 되는 곳이라면 어느 곳이든지 가능합니다.
자신의 재력이 커버할 수 있는 곳에서 오직 프로그래밍에만 집중할 수 있는 고립된 환경을 조성하면 됩니다.

애견 카페에서 작업하고 있었던 랩좀비군.


회사는 사원에게 재택근무를 할 수 있는 것만으로도 이미 빠른포상이 진행되었습니다.
작업한 결과물에 대한 포상이 아닌 미리 포상을 내리고 작업을 열심히 하기를 회사는 사원에게 기대합니다.
사원은 그런 회사의 믿에 대한 보답으로 결과물을 내기 위해서 집에서 열심히 쿵짝쿵짝합니다.

그러나 실시간 감시는 재택근무와는 완벽하게 상반되는 개념입니다.
회사에 사원이 없으니 무엇을 하고 있는지 체크를 할 수 없습니다.

이 부분은 빠른 포상과 더불어서 믿음에 의한 통제에 맡기고 있습니다. 회사가 사원을 믿고 재택근무를 허락하고, 그 믿음에 의해서 사원은 일을 하게 됩니다. 사원과 회사간의 신뢰관계는 증가하고, 사원은 회사에 대한 충성도가 증가하게 됩니다. 그리고 사원은 회사에 자신이 오늘 한 일에 대해서 게시하면서 어떤 일들을 했다고 게시를 합니다. 이 정도면 됩니다. 어떻게 일을할 것인지에 대한 수단은 중요하지 않습니다. 누워서 하던지, 게임 하면서 하던지 그저 그 날에 대한 결과물만 있으면 됩니다. (프로그래밍 방법론에 대한 수단이 아닙니다. 어떤 방식으로 일을 할 것인지에 대한 수단입니다.) 결과물이 없다면? 삽질을 한 기록도 결과물이 됩니다. 사원은 자신이 어떤 방법을 시도했고, 무엇때문에 실패했는지 게시판에 글을 남깁니다. 그러면 그는 일을 한 것입니다.

이제 필받으면 집에서 잡업하고 어떤 작업을 해서 어떤 결과가 나왔는지 회사 게시판에 게시 하면 됩니다.

삽질을 했다면 삽질을 했다고 표시를 합니다.



궁극적인 목적
사실, 저희 회사에서의 궁극적인 목적은 다른 곳에 있습니다. 재택근무는 궁극적인 목적으로 가기 위한 하나의 실험입니다.

일주일에 노동시간을 40시간으로 추천하고 있고, 일주일에 5일을 작업하는 게 통상적인 노동자들의 생활 방식입니다.
...어어 야근하시는 분들에게는 죄송하지만 통상적이라 하겠습니다.
보통 하루에 8시간씩 일하게 되는데, 사실 프로그래머에게 있어서는 그리 긴 시간이 아닙니다. ...아니지요?

예를 들어 볼까요? 게임에 들어갈 어떤 기능을 만들고 있습니다. 서버의 패킷도 바꾸고 클라이언트의 로직도 조금 손 봤습니다. 이제 이 두 개를 잘 조합해서 넣으면 됩니다. 빨리 게임에 넣어서 직접 해 볼 수 있다는 기대감으로 가득찬 상태입니다. 하지만 어느새 퇴근할 시간이 다가옵니다. 그렇다면 다음날을 위해서 퇴근을 하는 게 좋을까요? 아니지요. 필 받으면 그 자리에서 필이 사라질 때까지 작업을 하면 됩니다. 하루 24시간 중, 자는 시간8시간을 제외하곤 16시간 정도는 일을 할 수 있습니다.

 사실, 프로그래밍을 처음 공부하던 시절에는 하루에 12시간도 모자랐습니다. 공부하다보면 여기 저기 크게 삽질을 하게 되고, 이 구멍을 메꾸기 위해서 이것 저것 시도하다보면 12시간은 금방 지나갑니다. 심지어는 프로그래밍하는 게 너무 즐거워서 날을 샌 적도 있습니다. 이런 상태까지 가 본 경험이 있다면 다들 한 번쯔음은 생각해 본 것이 있을 겁니다.

필 받을 떄 2-3일 일하고 2-3일 쉬고 그러면 안될까?

됩니다. 사실 그 게 더 효율적일 수도 있습니다. 수단을 가리면 안됩니다. 결과물이 훌륭하다면 어떤 방식으로 일을 해도 됩니다.
그것을 위해서 조용한 곳에 프로그래머들만 따로 오피스텔을 잡아서 일을 해 볼까도 했습니다. 오피스텔에서 같이 자고, 일하고 싶을 때 일하고 심심하면 근처 바다 가서 놀다가, 다시 필 받으면 일하고 등등...국내일 필요도 없지요. 아에 말도 안통하는 외국에 나가서 일할 수도 있지요. 하지만 각 사원들의 개인사정이 있는지라 이 부분은 조금 힘들더군요. 그래서 저희는 그 중간과정으로 재택근무를 시행하고 있습니다.

성과
그 동안 재택근무를 하면서 많은 성과가 있었습니다.
잠자리에 들아가서 이것 저것 생각하다가 필 받아 밤 늦게까지 작업을 한 후 다음날 오후에 어그적 어그적 출근한다거나, 대규모 리팩토링을 위해서 짐을 싸들고 집에서 일하면서 일주일에 한 번씩 잡요청을 처리하기 위해 출근한다거나, 주말에 필 받아서 작업한 다음날 쉰다거나, 좀 더 메인 브랜치와 분리된 개발 환경을 만들기 위해서 머큐리얼을 설치해본다거나 등등, 그 동안 고립되지 않은 환경에 일을 하면서 '이것 좀 하면 프로젝트의 좋을텐데' 라고 시도해 보고 싶었던 일들을 이제 하게 되었습니다. 코드는 더욱 좋아지고, 앞으로 어떤 일을 해야 하는지 정리도 되었습니다. 프로그래머들의 회사에 대한 충성도도 높아졌습니다.

문제는 회사 입장이겠지요. 이놈이 일을 제대로 하고 있는지 안하는지 알 방법은 결과물 뿐입니다. 그런데, 사실 프로그래머가 결과물을 내지 않고 회사에 앉아 있으면 그것도 골치입니다. 차라리 집에서 회사밥 축내지 않고 일하는 게 더 좋을 수도 있습니다. 이건 사원을 믿으면 됩니다. 그리고 최소한의 장치로 그 날 한 일에 대해서 게시판에 게시하기를 하면 됩니다. 사원에게 믿음을 주면 제대로 된 사원은 그 믿음에 최선을 다해서 보답할 것입니다. 그렇지 않은 사원은 있으나 마나이니 짤라버리세요.

어떻습니까? 다른 분들의 회사에서도 한 번 재택근무를 시행해 보시지 않겠습니까?
그럼 랩좀비군은 이만.. 총총총. 

반응형
,
Posted by 알 수 없는 사용자
안녕하세요 T모사에 근무하는 배경아티스트/TA Silverchime입니다.
저번시간에는 인류초기 동굴부터 수메르, 이집트까지 했지요?
오늘은 그리스 건축을 알아보도록 하겠습니다 

에게 해 문명 

이탈리아반도 동쪽 옆동네,이며 Hellas , Kreta섬  등으로 둘러싸인 바다입니다.


<이 지도>를 를 참고하세요 얼마나 축복받은 위치입니까. (지중해 뙇! 중앙)
그리고 이집트가 온통 푸르게 나와 있지요. 아... 옛날이여.
결국, 에게 해 문명이란 이집트 시리아 이쪽이 잘먹고 잘살면서 
사실상 이쪽과의 해상무역을 통해 덩달아 발전 된 문명이라 할 수 있습니다. 

I . 문명적 배경. 

B.C 1200~ 

페니키아 Phoenicia



사실상 해상무역의 1세대. 이 멋진 아저씨들에게는 단지 그 말로는 부족합니다. 
자 무역을 하려면 무엇이 필요했을까요? 

네! 문자와 숫자입니다. + 수학도 해야겠죠^^

알파벳의 기원이 된 페니키아Phoenician 문자입니다. 

이 문자는 Greek Alphabet과 로마의 전신인 Etruscan Alphabet에 직접적인 모태가 되고
후에 라틴 알파벳의 기원이 됩니다.   소라는 뜻의 Aleph를 반시계로 90도 돌리면 A가 되는 식.


앗 무언가가 기억나셨나요? 축하합니다. 30대 중반 인증하셨습니다.
 


 

Ultima 의 룬문자.

현대의 아라비아 숫자라고 하지만 그 수를 형상화한 스타일은...?
네 이것도 페니키아 문자'식'으로 형상화 한 것입니다. (당시에는 아마 Etruscan 숫자를 썼을 겁니다.)

각 숫자는 기호가 가지는 앵글Angle 수를 의미합니다. 

무역으로 먹고산 해상무역 1세대. 대단한 사람들이었죠. 
심지어 그리스 삼주신 - 제우스, 하데스, 포세이돈도 
페니키아 신 Baal, Mot, Yam이 기원이었다고 합니다.  
문화적으로 그리스 아빠뻘쯤 될겁니다. 

크레타섬에서 시작된 미케네 문명은 기원전 1200년경 잿더미가 되고 맙니다
이어진 기나긴 그리스의 암흑시대 Greek dark age 를 거치면서 점차 발달되고, 바다를 통한 상선무역이 활발해지면서 지중해의 중심가인 그리스는 세계 각지의 문물을 받아들이기 시작합니다. 특히 아테네는 델로스 동맹의 꼼수를 통해 지중해의 패권을 쥐었지요. 


그리스는 페니키아에서는 신과 문자를 받아들였으며, 
옆 잘사는 나라 이집트에서는 거대한 건물들을 보았지요.

아크로폴리스에 이런걸 올리고 싶지 않았겠습니까 ^^
 

그리스 촌놈들이 이런걸 보고 무슨 생각을 했을지... 상상이 안됩니다.

(이집트의 특산물 중 가장 대표적이었던 것은  무려 GOLD 였습니다...
잘나가는게 당연하지 않습니까... 거기에 나일강의 생산력... )

Show me the money!

 

재료적으로는 초기 철기시대. 철기의 여명이라 할 수 있습니다.
철과 청동기가 동시에 공존하던 시기라 할 수 있겠네요. 

초기에는 광석에서 고온으로 철을 얻어내는 Smeltering 용광제강방법밖에 없었고...
연철Wrought Iron은 농기구나 돈으로 사용, 또는 스파르타에서는 철로 돈을 만들어 썼습니다.

특이한 점은 중간에 Meteoric Iron, 우주에서 떨어진 운석등에서 발견된 
천연상태의 니켈-철 합금도(Stainless- 한마디로 스뎅) 사용 되었습니다. 운석철이라고도 합니다. 

박물관에 그냥 놔두어도 녹이 슬지 않아요...

탄소강이 제대로 발달 되지 않은 초기 이런 고품질의 철은 한마디로 -_- 신의 금속.
(녹이 안스는, 게다가 연철보다 강한 철이라니...)
전설의 미스릴과 같은 급의 대우를 받았겠지요 신검등의 여러 전설은 뻥이 아니었던 것입니다. 

메두사의 목을 친 페르세우스의 검.

자 이렇게 왜 문자나 금속이나 철학, 수학 등을 강조하는 걸까요? 

바로 건축기술의 수학적인 접근과 
아리스토텔레스 등의 네임드 과학자들에 힘입어 
기중기Crane 등 각종 도구들이 등장했기 때문입니다. 

피라미드를 한번 다시 볼까요?

 역시  

의심의 여지없이 외계인의 개입이 있었던 것 같습니다

그리스에서 만일 시민들에게 이집트처럼 
수만명 단위로 부역을 시켰다면 

보나마나 결과는 이꼴이 났겠지요. 

금속으로 각종 도르래, 연장, 크레인(기중기) 못 등이 만들어 지면서 
드디어 비용대비 효율적인 건축을 이루어 낼 수 있게 된 것입니다. 

그리스의 크레인.

그리스의 연장.


II. 건축 구조적 의미.

자 핫셉수트 여왕의 신전을 봅시다. 11번은 지붕이 없습니다. 

(중정처럼 그냥 하늘이 펑 뚫려 있습니다)
 


지붕을 해결할 수가 없었습니다. 
벽이 없고, 대부분 내외부의 구분이 없습니다. 
(돌 계곡을 파들어간다던지 얇은 판석을 깐 것은 제외합시다... 그나마도 거의 없지만.)


그러면 그리스의 신전은 어떤가요? 

대략적인 그리스 템플의 평면입니다 
빨간색이 입구이며, 가운데의  나오스에 신상을 두고 뒤쪽 방OPISTHODOMUS 에는 각종 보물등을 모았습니다. 

지붕을 가진 완전한 집의 형태이며 내외의 구분이 생겼지요. 

기술의 발전과 국력에 따라 점점 더 대규모로 진화하는 과정이 

마치 포..포케 (퍽)
 

죄송합니다. 


III. 기술적 분석. 

쿨럭 여튼간에 

 그리스 건축하면 매번 나오는 수사구,
가구식구조
POST LINTEL CONSTRUCTION
에 대해서 알아 보도록 하겠습니다 .


기둥Post와  상인방Lintel. 참쉽죠? 

이집트에서는 보에대해서 최소한 알게 되었습니다. 하지만 마스터하지는 못 했어요.
그 이유는 그들이 기둥위에 올린 부재는 스스로 꺾이지 않기 위한 거대함 이었을 뿐,
그 위에 무언가(천장이나 지붕 , 또는 상위 층)를 더 얹기 위한 철학이 없었기 때문입니다. 


보Beam에는 크게 두가지가 있습니다.  
하나는 거더 Girder : 기둥과 기둥을 잇는 큰 힘을 받는 부재
다른 하나는 Beam : 거더 사이에 이어져 바닥 Slab을 지탱하는 부재입니다. 


이 보Beam이라는 것이 있어야 비로소 상위 층의 바닥이나 지붕을 얹을 수가 있습니다. 
물론 소규모, 목재로야 딱히 어려운 부분이 아니었겠지만, 
이 가구식 구조를 큰 석재에 적용하는 일은 
아날로그식이나, 경험으로라도 쉬운 일이 아니었습니다. 




자 가구식 구조를 알게 되었습니다. 구체적으로 어떤것을 얻을 수 있었을까요? 

1. 높고 넓은 스팬span의 공간에 지붕을 씌울 수 있게 되었습니다!

비도 바람도 안 들이치니 아늑한지고.

2. 건물이 높아졌습니다!


이만큼이나 높아지고, 무려 + 예뻐졌습니다. 
거기에 높아진 부분은 외부 대리석 장식 빼고는 대부분 목재라서 
비용도 크게 들지 않았어요! 

내쉬빌에 있는 파르테논 신전 카피본. 
그리스의 아크로폴리스에 있는 파르테논 신전은 1460년쯤 전쟁 중에 오스만투르크가 신전안에 쌓아놓은 화약더미가
베네치아 군의 포격으로 연쇄폭발하면서 그야말로 개발살이 나고 맙니다. (야이...ㅠㅠ)

어떻게 이런 문화유산에 포격을 하냐 이 야만인들아...


넓고 높은 공간. 그리고 신성한 성역.
이것들은 이제 점점 더 높고 큰 실내공간을 위한 키워드가 됩니다. 

IV. 덧붙여.

무역으로 점차 발달한 에게 해 영역 그 중에서, 여러 내전과 심지어 대제국 페르시아의 침공을 받아가면서도
어째서 유독 그리스에서 이토록 화려한 문화가 발달하게 된 것일까요.

저는 이렇게 생각합니다. 

철학가나 수학자와 같은 기초과학의 전문가에 대한 투자와 기술자에 대한 대우.
 계승받은 
왕정이 아닌 표결방식의 인본주의 시민문화와 맞물려 
여러 거대한 침공에서 헬라스 반도를 지켜내고 마침내 화려하게 꽃피울 수 있었다고 생각합니다. 
(스파르타는 내내 강한 군사력을 유지했으면서도 국사를 좌지우지하는 신관들이 매수되는 바람에 
여러 부작용을 겪고 맙니다...역시 신정분리는 필수)


막대한 돈도, 영토도 아닌 사람(시민)들의 생각과 힘. 다시 생각해 보게 하는 부분입니다.

원래 이번은 로마 건축까지 진행하려고 했는데... 그리스만도 만만치 않네요.
게다가 게임테크 2012 강연준비로 저도 이번회는 조금 짧아지고 말았습니다. 죄송합니다.

 다음 연재분은 에트루리안Etruscan, 로마Roman 건축
볼트와 아치 등 본격적인 구조 수사구가 등장합니다. ^^
그만큼 많이 높고 넓고 아름다워지지요. 

이번주 월요일 아침은 왠지 노곤합니다.
이럴때는 아메리카노 투샷~!
 

오늘도 행복한 하루 되세요 ^^
반응형
,
Posted by 대마왕J

어느덧 8강이 되었습니다. 벌써 UV도 깊게 다뤄 보시고!!! 색도 막 더해 보시고!!
UV가 흘러가게도 하셨습니다!!!

자 다시 정리해 볼까요.

일단 ShderFX를 다루기 위한 기초로, 기본 조작법을 익혔지요. 거기서 가장 중요한건, 여전히 0.0~1.0 사이로 끝나는 float 이라는 단위입니다. 여전히 중요하고, 앞으로도 중요할 겁니다.

그리고 노드를 연결하는 것과... 색을 숫자로 보는 법을 익혔지요.
지금도 색을 딱 보면 숫자가 딱! 하고 나와야 하는 거예요?!? 알겠지요?!? 딱~!

딱~!




그리고 드디어 UV 구조라는 걸 제대로 익혔구요, UV를 눈으로 보는 법도 배웠고 UV를 에니메이션 시키는 법도 익혔어요!!! 공부를 제대로 하셨다면, 1강때 설명한 것을 응용하여 지금까지 만든 쉐이더를 fx로 익스포트해서 친구에게 선물하실 수도 있겠지요!!


자 .. 그럼 이제, shader fx의 기본조작을 마치고, 중급조작 단계에 들어온거라고 할 수 있습니다.
중급조작에서는 이전 시간처럼 UV를 조작하고, 이미지를 다양하게 합성하게 되지요.
그리고 고급에서는...
고급에서는....
고급에서는....

알파 블렌딩과 라이트를 다룰 겁니다!!! 오메!! 어려워!!! 여기까지 과연 할 수 있을까!!!!

다 할 생각 해 보니까 아주 좋되는거야



자 .. 뭐 앞 일은 앞 일이고, 오늘은 그럼 오늘 일을 해 봐야죠.

오늘 할 일은 드디어 멀티 텍스쳐링입니다.텍스쳐를 섞는거죠.

0. 우선 개념을 설명해 볼까요.

포토샵 정도는 쉽게 다루실 수 있으실 겁니다 다들. 이 강의는 일단 그래픽 디자이너를 위한 강의 이니까요.
포토샵에서 일단 이 이미지를 보실까요.


네.. 이전 시간에 줄기차게 썼던 또 그 이미지입니다.
강의를 쉽게 하기 위해서 익숙한 그림을 쓰는거지, 결코 다른 이미지 찾기가 귀찮거나 힘들어서 이러는거 아닙니다. [각주:1]

어쨌건 이 이미지를 포토샵에서 채널 창과 함께 보면, 이렇게 생겼죠.


이게 무슨 의미입니까? RGB 채널은 지난번에 말했으니까 그런가부다.. 하시고,
알파를 보세요! 이 풀 그림은 사실 풀 모양으로 이미 '따져' 있고, 밖은 그냥 투명이라는 의미 아닙니까?

즉 이렇게 표현할 수도 있겠지요 .


네 ... 이 그림은 풀 모양으로 추출되어서 플로팅 되어 있는 이미지입니다.
포토샵을 오래 쓰신 분들은, 저 체크무늬가 '아무것도 없는 허공' 으로 보이신다는거 다들 알고 계실 겁니다.

특정 환자들에게만 투명하게 보이는 이미지.jpg


네, 알파 채널이 있는 이미지는 저런 느낌인 거지요.
다시 말해서, 저 이미지를 호랑이 이미지 위에 얹었을 때,[각주:2]



이런 느낌으로 얹어질 테니까,


결국 이렇게 얹어지게 될 거란 말씀입니다. 아시겠지요?


오늘 해 볼 것이 이거입니다. 일명 리니어 인터폴레이션 (Linear interpolation) 이라고 하지요.
두 이미지를 섞을 때 주로 사용하는 법이지요.




1. 그러면 해 봅시다.

이번엔 plane 입니다. 하나 만듭시다. 주전자 만드는 것 만큼 쉽습니다.
모르시는 분은 주변에 물어보세요. 정말 별거 아닙니다.

거기다가 Tiger.bmp 를 맵핑으로 입혀 놓습니다.
이제 뭐 이거까지는 다 아시고 막 이러시잖아요.
진짜 이거 어떻게 하는거냐고 이 와중에 물어보시는 분 있으시면 때릴것임

때리러 오는 검은 삼연성





네 뭐 이 다음은 간단합니다.

여기다가 다른 이미지 한 장 겹치면 되는거지요.
그럼 일단 다른 텍스쳐 한 장 준비해 둡니다.
만만한 풀을 준비해 두지요.


엄청 만만한 풀 불러왔습니다.
저거 알파 채널 가지고 있는거, 다 아시지요? :)

자 이제 저 두 이미지를 "리니어 인터폴레이션" 해 봅시다.
그럼, 리니어 인터폴레이션 (일명 Lerp라고도 하죠) 노드를 불러 옵시다.

'계산' 계열일게 분명하니까 Math 아래에 있고,
MixLinearInterp 라고 씌여 있습니다. 다 쓰려면 다 쓰던가 ..... 뭐야 줄여쓰기는....



이걸 만들면 이렇게 생겼습니다.
제가 늘 칭찬하는게, 참 아이콘이 직관적으로 생겼어요 :)
뭔가 0 에서 1까지, 직선으로 그어져 있지요?

그리고 다시 잘 봅시다. 들어오는 값인 Input은 A와 B 두 개가 있습니다.
그리고 그 두 개를 '섞어주는' 인자인 Blend Value가 있습니다.

그리고 그 둘이 섞여서 나오는 결과값이 Result 라고 있습니다.

척 생각해 봐도, 두 개를 섞는 거니까 Input A 와 Input B의 단위는 서로 같아야 할 것 같습니다. float2 건 float3건 말이죠. 그리고 섞는 값인 Blend Value는, 지금은 뭐 아무 값이나 받을 수 있게 되어 있습니다만... 사실 float 을 넣어줄 일 밖에 없습니다. 섞는거야 한자리면 충분하니까요.



이게 또 재밌는게, 오른쪽 메뉴에서 옵션만 바꾸면 리니어 인터폴레이션(Linear Interpolation) 이 스무스 인터폴레이션 (Smooth interpolation) 으로 바뀐단 말입니다. 이건 나중에 Smoothstep 이라고도 불리는데, 언젠가는 쓸 일이 있을 겁니다. (SSS 할때 쓸지도... 후후후) 그치만 지금은 안쓸거니까 신경쓰지 말고 리니어 인터폴레이션만 쓰기로 하지요.



자.. 그럼 여기의 A와 B를 각각 호랑이와 풀로 만들어 줍시다.

그럼 어떻게 보이나요?


검게 보입니다!!!! 무언가 잘못된 것일까요????

이런 표정 지으신분은 베란다에서 5분간 손들다 오세요.

이젠 슬슬 눈치 채실때가 되었지용

Blend Value에 아무 값도 넣지 않았잖아요.

shader FX 가 너무 자동으로 잘 해 주다보니까, 당연하다는 듯이 오류가 안생길거라고 생각하실 수도 있는데
이런 뻔한 오류는 일으켜 주는게 맞습니다.

자 그럼 당황하지 마시고, 저 Blend Value 에다가 숫자 1을 넣어 주시지요. [각주:3]

오오, 드디어 풀이 나왔습니다!!!
아니 그런데 호랑이는 어디 간건가요?

호랑이를 보고 싶으시면, 저 Blend Value에 0을 넣어 보세요.

오옷 , 0을 넣으니까 이번엔 호랑이가 나왔습니다!!!!
뭔가 짐작이 가능하시죠?
1을 넣으니까 Input B에 넣었던 풀이 나왔고,
0을 넣으니까 Input A에 넣었던 호랑이가 나왔습니다!

그럼 퀴즈입니다. 숫자 0.5를 넣으면 뭐가 나올까요?

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

정답 공개합니다.

딱 절반이 섞였습니다!!!!!

이제 명확해졌습니다!!! 리니어 인터폴레이션(Linear Interpolation)은, 0~1 사이의 값으로 , 두 이미지를 섞어 주는 명령입니다!!!! 또 0~1 사이야!!!! 도대체 0~1 로 못하는 것이 뭘까요???? [각주:4]

그런 스토립니다.

자자자자자자자
그렇다면 봐요봐요봐요봐요봐요봐요

저 풀은 알파 채널을 가지고 있어요 그렇죠?

알파 채널은 float 이예요 그쵸?

float이란 0~1 사이의 한 자리의 숫자란 의미예요 그쵸?

뭔가 또 생각나지 않아요?

전부 다 스토리가 연결되어 있던 거예요. 믿을 수 없게도...

이 풀의 알파 채널을 다시 봅시다.





이게 투명도를 나타내는 '숫자 덩어리' 라고 말씀드렸잖아요. 아시겠지만 저는 친절하고 관대하므로 다시 한 번 자세히 설명드립니다.

관대합니다.




이 이미지를 확대해 보면 이렇게 되어 있죠.

이 한 픽셀 픽셀이 투명도를 나타내는 한 자리의 float 숫자라고 생각해 보세요.



흰색은 불투명도가 100% 이므로 1이고요
검은색은 완전히 투명하므로 0이고요
그 중간은 각각 그 % 에 맞는 색이겠지요.

즉 이 이미지들은 전부 한 픽셀 픽셀이 한 자리 소숫점 숫자란 말입니다.

여러 번 얘기했다는건 중요한 거예요 밑줄 좍 그으라고.


그러므로 이 숫자덩어리 알파 채널을 Blend Value 에 넣으면 어떻게 되겠습니까?



이렇게 된다고요

두 이미지가 블렌딩 된다고요

알파 채널의 픽셀이 흰색이면 1이니까 풀이 나오고, 알파 채널의 픽셀이 검은색이면 0이니까 호랑이가 나오고, 그 중간이면 그 중간이 나온다고요.

별 거 아니죠? :) 정말 쉽잖아요? 포토샵에서 레이어 올리는거 다 이렇게 동작하는 거예요. 똑같아요.


... 그치만 정말 별게 아닐까요?
여기서 부터 시작해서 응용되는게 장난이 아닌데???



2. 정말 별게 아닐까요?

제가 요즘 게임테크 강연 준비하느라 좀 바쁩니다 (후후후)
강의를 더 길게 하고 싶은데 이번주는 좀 짧게 해야 겠어요.
http://www.zdnet.co.kr/news/news_view.asp?artice_id=20120308090801


그래서 오늘은 특별히! 숙제를 내 드리겠습니다.
어렵지 않아요. 위의 것의 응용입니다.
응용을 보여 드릴테니, '왜 이렇게 되는지' 이해해 보세요.

그리고 실습해 보세요. 이게 숙제입니다.
이해도 못하고 그냥 따라만 하면 때릴 거예요!!!

숙제 다 했으면 댓글 써!!!!


숙제 다 한사람만!!!!




자 첫번째 이미지입니다.


풀이 멀티플라이 레이어처럼 어두워졌네요? 왜 그렇게 되었을까요?
그리고 또 이 어두운 정도를 조절할 수 있을까요?



풀이 이번엔 밝아졌네요? 무슨 일이 일어난 걸까요?
너무 밝은데 조금 어둡게 할 수는 없을까요? 이미지 수정 없이 말이죠.


엇 호랑이가 많아졌어요!!! 무슨 일이 일어 난 걸까요? 따라 하실 수 있으시겠어요????



3. 오늘은 일단 여기서 끝냅니다.

게임테크 2012 강연 참가하고 나면, 이번엔 유니티 부트캠프에 또 강연 참가... OTL
그래서 바쁩니다.

그치만 이거... 쉬워 보이는데
이거에서 발전하면 별별거 다 만듭니다.

예를 들어


이렇게 얼룩이 알파 채널로 따져 있는 이미지와

깨끗하고 작은 벽돌 이미지 하나만 있으면

이렇게 얼룩진 벽도 간단히 만들 수 있구요.

더 응용해서 다다다음 시간쯤 되어서 더 실력이 올라가면 말이죠

맥스에서 실시간으로 동작하는 맵에디터를 만들 수도 있어요


다음 시간에는 버텍스 칼라를 이용한 Liniar Interpolation을 해볼까... 하고 생각하고 있습니다.
자 그럼 오늘은 바빠서 이만 총총.



  1. 믿어주세요 [본문으로]
  2. 일단 모든 이미지는 shaderFX를 깔았을때 , 3Dmax 설치 폴더 아래의 map폴더에 자동으로 같이 깔리는 이미지를 사용하였습니다. 이 호랑이는 tiger.bmp 입니다. 깔려 있어요. [본문으로]
  3. 숫자 넣는건 constant 라는거 잊지 않으셨죠? [본문으로]
  4. 프로그래머들은 이 용어를 잘 알고 있습니다. 사운드건 인공지능이건, 두 값을 적절한 조건에 의해 섞어줘야 할 때 "그거 그냥 리니어로 섞어줘!!!!" 라고 말하면 다 알아 듣습니다. :) [본문으로]
반응형
,