이번 글에서는 Amazon Web Service(AWS) 에서 DynamoDB를 사용하는 방법을 Python을 이용해서 다루도록 하겠습니다.

처음에 AWS Python 카테고리에서 DynamoDB를 다루고자 했던 것은 아니였지만, 이번 회사에서 기술보고서를 작성하는 과정에 있어서 주제를 DynamoDB를 하다 보니까 블로그에도 같이 다루는 것이 좋을 것 같아서 올려봅니다.


2018/06/03 - [Onik Lab./AWS Python] - AWS DynamoDB in Python (Boto3) - #1. 소개

2018/06/03 - [Onik Lab./AWS Python] - AWS DynamoDB in Python (Boto3) - #2. 테이블 관리

2018/06/03 - [Onik Lab./AWS Python] - AWS DynamoDB in Python (Boto3) - #3. 항목 관리


이번 글은 지난 글에 이어서 AWS SDK for Python인 Boto3 를 사용한 DynamoDB의 항목(Items) 호출을 위한 Query & Scan에 대해서 다루어보도록 하겠습니다.

모든 내용은 AWS의 Boto3 Documentation에 있는 내용이며, 번역자료가 없기 때문에 제가 직접 실습하면서 나타내도록 하겠습니다.


원본 문서: http://boto3.readthedocs.io/en/latest/guide/


영어 문서이므로 참고하시기 바랍니다.


1. Query & Scan 

두 가지 모두 DynamoDB의 항목 호출을 위한 기능이지만, 사용 용도는 약간 차이가 있습니다.

Query는 특정 값을 검색했을 때 나타나는 결과를 조회할 때 사용됩니다. 예제에서는 하나의 항목만 반환하지만, get_items() 함수와 기능은 비슷하지만, get_items()가 단순히 키를 지정했을 때의 값을 가져오는 것이지만, Query는 더욱 자세한 조건을 통해서 값을 가져오는 것이 가능합니다.

Scan은 Query와는 다르게 특정 값을 지정해서 불러올 수도 있지만, 주 용도는 호출하고자 하는 값의 범위를 검색 조건으로 할 때 사용됩니다. 내부 속성으로는 FilterExpression을 사용하며, 이는 즉 필터링을 위한 용도로 보는 것이 맞을 것입니다.

Query & Scan을 사용하기 위해서는 boto3를 import하는 것 외에도 추가 클래스를 호출해야 합니다.

추가 클래스는 boto3.dynamodb.conditions.Key와 boto3.dynamodb.conditions.Attr 클래스로, 호출 방법은 아래와 같습니다.

from boto3.dynamodb.conditions import Key, Attr

import boto3 바로 밑에 작성하면 아무 문제 없이 클래스 import가 가능합니다.


아래 Query & Scan을 위한 기본 예제 테이블은 users 테이블로 할 것이며, 해당 테이블의 항목은 아래와 같습니다.

항목의 Address가 내재된 속성(Nested Attributes)들을 포함하고 있으므로, 각 항목 별 값을 나타내면 다음과 같습니다.


 


이 점을 참고하시고 아래 예제를 실행한 결과를 보시면 더욱 이해가 될 수 있을 것입니다.


2. Query

Query 예제는 아래와 같으며, username 파티션 키 값이 'johndoe'의 값을 가진 항목(Equal: EQ)을 조회하는 내용입니다.

당연히 import 에서 클래스 로드까지 모두 마친 상태입니다.

response = table.query(

    KeyConditionExpression=Key('username').eq('johndoe')

)

items = response['Items']

print(items)

결과는 johndoe의 항목이 호출됩니다.


3. Scan

Scan 첫번째 예제입니다. age 속성의 값이 27보다 작을 때 (Lower Than: LT) 의 내용입니다.

response = table.scan(

    FilterExpression=Attr('age').lt(27)

)

items = response['Items']

print(items)

 

결과는 johndoe와 bobsmith의 항목이 호출됩니다.



Scan 두번째 예제입니다. 조건이 조금은 더 복잡해졌습니다.

first_name의 값이 'J'로 시작(Begins_with)하고, account_type이 'super_user'와 동일할 때의 내용입니다.

response = table.scan(

    FilterExpression=Attr('first_name').begins_with('J') & Attr('account_type').eq('super_user')

)

items = response['Items']

print(items)

 

결과는 janedoering의 항목이 호출됩니다.



Scan 세번째 예제입니다. 위 예제와는 달리, 속성 내에 내재된 속성, 즉 속성 안에 속성 값을 검색할 때 쓰는 조건입니다.

Nested Attributes에 대한 검색 관리도 아래와 같이 할 수 있으며, addresss 속성의 state 속성의 값이 'CA'일 때 나타내는 내용입니다.

response = table.scan(

    FilterExpression=Attr('address.state').eq('CA')

)

items = response['Items']

print(items)

결과는 johndoe와 alicedoe의 항목이 호출됩니다.



Python SDK인 Boto3를 활용하여 DynamoDB를 관리하는 방법에 관한 글은 여기까지입니다.

이 모든 내용은 AWS Boto3 Documentation에 있는 내용이지만, 번역이 되어 있지 않았고,

앞으로도 DynamoDB를 사용할 일이 생길 때 Python으로 어떻게 해야 할 지를 나타내고자 할 때에는 이러한 기본 예제를 들어 활용하면 될 것입니다.


하지만 고급 프로그래밍을 하게 되면 이것보다는 훨씬 복잡한 명령어를 작성해야 할 것입니다.

그렇기 때문에 AWS에서는 이를 위한 예제를 별도로 제공하고 있습니다.

Tic-tac-toe라는 Python Application에서 DynamoDB를 사용한 예제를 AWS에서 제공하고 있으니, 향후 DynamoDB 프로그래밍이 필요할 때에는 위에서 다룬 내용을 바탕으로 하고, 예제 문서를 참고하여 프로그램을 개발하면 될 것으로 생각됩니다.


Tic-tac-toe Python Link: https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/TicTacToe.html


이상 글 마치겠습니다.


 



WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret

(1) 1월25일 오전10시 오픈. 다운로드 받고 바로 튜토리얼 수행.

튜토리얼 수행 후 캐릭터를 만들면 mysql 에러 발생.


그리고 다시 재접속하면 튜토리얼 처음부터 다시해야됨.

이거 한 10번 하다가 포기.



(2) 1월25일 오후쯤 되니까 점검공지 뜸.

(3) 1월25일 더 지나니까 서버 하나가 늘어났음. 그러나 대기자수 10000명 나옴.

출장중이라서 할 시간이 없는 관계로 포기했음.



(4) 1월26일 오전. 여전히 1만명 나옴.

(5) 1월26일 점심. 드디어 점검하는듯. 이제 해결되려나.

(6) 1월26일 초저녁. 다시 접속을 하니까 접속자수 1명으로 나옴. 이제 되나 싶었지만 1명에서 더이상 안줄어들음. 

한마디로 유저들 상대로 사기친거나 마찬가지.


(7) 1월27일 저녁. 그리고 또다시 점검.

(8) 1월27일 저녁10시50분. 지금 글쓰는 시간. 

1시간 전에 점검 끝나고 접속하니까 7만명 기다리라고 나옴. 하지만 사람 줄어드는게 보임.

이야 어느새 14219명으로 줄었다. 진짜 줄긴 준다.


(9) 과연 접속이 될까요, 안될까요? 저도 확신은 못합니다.

다만 이 게임이 재밌을거같아서가 아니라 하도 일처리를 못해서 오기로 들어가려고 하게 됩니다.



NEXON이 국내 제1의 게임 매출기업인 것은 누구나 잘 아는 사실입니다.

그리고 Netmarble보다는 다소 늦지만 모바일게임 시장에 진출도 했고요.

하지만 NEXON에서 제작한 대작게임에서 이런 사태가 벌어지는 경우가 한두번이 아닙니다.

즉 동시접속자수와 그것에 따른 서버운영, 기타 등등 준비가 하나도 안되어있다라는 느낌을 많이 받습니다.


게임 유저들을 흔히들 이런 생각을 합니다.

어차피 제시간에 열리는게임 없다. 하루는 있어야 제대로 된다.

그러므로 기대자체를 하지 말자. 


이게 관용화되어 있습니다. 

오픈 당일날 처리를 제대로 한 적이 있었으면 과연 이런말이 나왔을까 의문입니다.


국내에서 모바일게임 이거저거 엄청많이나오고, 매출도 잘 나오고있는 것은 다 압니다.

하지만 이런 기본적인것조차도 제대로 못하면서 매출에만 골돌하는 형태를 한두번 본 것이 아닙니다.

물론 그래도 돈이 되니까 크게 신경을 쓰지 않는 것일 수도 있지만,

반대로 생각하면 유저들에 대한 배려는 말로만 배려하는것이고, 실제로는 돈뽑아먹는 기계로만 본다는 것이죠.


과연 게임회사의 이러한 형태. 언제까지 계속될까요.

최근 10년동안 별 문제 없었으니, 앞으로도 계속 이어질까요.


하지만 운영 끝내주게 잘하면서 과금요소도 충족시켜주고.

유저들이 원하는 모든 것을 들어주면서 매출까지 높게 나오는 그런 게임들이 하나둘씩 나온다면.

지금과같은 운영을 하는 게임회사는 결국 밀리게 될 것입니다.


게임회사와 게임유저를 보면 갑과 을이 바뀌었다는 느낌 많이 듭니다.

게임유저들이 다시 갑을 찾아와야한다는 뜻은 아닙니다.

하지만 최소한 고객 중심의 운영을 행동으로 보여줘야 하는데.

이러한 부분에서부터 잘못되고. 매번 반복되고. 그걸 당연시하게 여기고.


우리나라는 아직도 게임 후진국입니다.




WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret

게임 개발 실습에 들어간지 벌써 3일차.

역시 제 예상과 다르지 않게 도구 사용법만 숙지하고, 원래 알고있던 C# Script만 적절히 넣어주니 게임 하나 뚝딱 나오는군요.


2017/11/21 - [Onik Lab./Unity3d] - Unity 2017.2 버전으로 개발하기



물론 책에 있는대로 예제 따라해봤지만,

처음 해보는것인데도 불구하고 큰 어려움 없이 모든 것을 다 이해하면서 구현했습니다.


실습에 사용된 예제는 다음 책을 참고했습니다.

유니티 게임 제작 입문
국내도서
저자 : 아스나 고지 / 김성재역
출판 : 길벗 2015.05.29
상세보기



유장런(劉璋 Run) 실제 구현 영상


책에 있는 예제는 물론 이와 동일한 예제는 아닙니다.

책에서 제공하는 유니티 게임 개발을 그대로 따라하기만 하면 앵무새같고, 응용도 안되고.

어떤 것을 만들 지에 대한 내용을 제공하면, 이를 이해한 다음 저만의 독창적인 게임으로 탈바꿈하면서 만들어야 진정한 학습이 될 수 있습니다.


먼저 책에서 제공한 내용은 다음과 같습니다.

1. 공을 만듭니다.

2. 바닥 타일을 만듭니다.

3. 중간에 구멍이 있고, 마우스버튼을 눌러서 점프를 하면서 앞으로 이동하고 구멍에 빠지기 전까지 이동하는 프로그램입니다.


그리고 저는 이걸 다음과 같이 개조했습니다.

1. 공 대신 '유장'이라는 삼국지 장수의 캐릭터 이미지를 넣었습니다.

2. 바닥과 구멍의 간격을 Random값으로 두었습니다.

3. PC용 게임이 아닌 안드로이드용 게임으로 완전히 최적화시킨 후, 터치를 눌러서 점프하도록 하였습니다.

4. 스코어를 표시할 수 있도록 기능을 추가한 후 화면에 나타냅니다.

5. 초기화면을 만들어서 누르면 시작, 끝나고 나면 다시 초기화면으로 이동하도록 했습니다.

6. 캐릭터가 구멍에 빠지면 'Game Over'라는 자막을 나타내도록 했습니다.


1,2,4,5,6번은 책에 있는 다른 예제의 일부 기능을 참조해서 응용하면 쉽게 구현가능합니다.

3번은 책에는 없기 때문에 안드로이드 터치 이벤트를 Unity3d reference를 참고해서 넣은 겁니다.


프로그래밍 학습은 이런 식으로 해야 스스로가 이해를 할 수 있습니다.


책에서 제공하는 것은 여러 가지 기능과 도구 사용법 등을 알려주는 것이며, 물고기를 잡으면서 잡는법을 알려줍니다.

그러나 학습하는데 있어서 물고기를 잡기만하고 잡는법을 모르는 사람들도 다수가 있습니다.


그래서 내가 예제를 실습해보고 만들면서.

무엇을 알려주려고 하는지 맥락을 이해하고, 그에 맞게 나만의 프로그램으로 개조하는 습관을 가져야 합니다.


이 점은 게임 개발 또는 신규 프로그래밍 언어 학습에 관심있는 분이라면 반드시 참고하시기 바랍니다.


Unity3D 사용한지 3일밖에 되지 않았습니다만,

기본적인 이해도를 가지고 수많은 기능을 제공하는 도구를 활용하니 

생각보다 빠른 시간에 기본적인 게임 하나는 나올 수 있게 되었네요.


세상 많이좋아졌습니다.


다음엔 또 다른 예제를 가지고 응용해서 간단한 게임을 만들어보고,

이를 통해서 Unity3D 게임개발에 대한 이해도를 더욱 높여보겠습니다.



WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret

안녕하세요. 鬼風입니다.

또 한번의 변화를 예고하고자 새로운 카테고리를 신설하게 되었습니다.


주제는 Game Directing / Unity3d 입니다.


작년10월말부터 블로그를 본격 운영을 시작하면서,

Maching Learning 기반의 AI에 대한 학습도 해보고.

IT Marketing과 관련된 연재물도 끊임없이 써보고.

IT Trend에 대한 소식도 지속적으로 전하고.

이러한 여러가지 경험이 제 자신의 발전과 수많은 정보를 다수에게 공유한다는 차원에서 꽤 유익했던 시간이였던 것 같습니다.


그리고 이제는 새로운 영역에의 도전을 준비하고자 합니다.

이번엔 Game 개발입니다.


원래 했던 영역은 아니였습니다.

하지만 IT의 성장 트렌드에 맞게끔 내가 할수있는 것이 무엇일까.

그래도 새로운영역에 도전한다면 무엇을 잘할수있을까.

아마도 그것이 게임 기획이 아닐까라는 생각을 해봅니다.


마침 전공도 컴퓨터과고, 대학원 석사도 SW공학쪽이였다는 것이 제가 가진 강점이랄까요.

물론 해보지는 않은 분야입니다만, 

SW 기획. 개발. 결국은 전공자에게 있어서는 늘 해왔던 일이였었고요.

큰 어려움이 없다면 거짓말이겠지만, 충분히 도전은 해볼만한 분야라고 생각해 봅니다.


관련해서 서적을 굉장히 많이 읽었었고.

준비도 몇 달전부터 꾸준히 했었습니다.

하지만 글쎄요. 관련 업계에서 활동을 하기 위해서는 직접 해보는것만큼 좋은방법은 없겠죠.


개발능력이 부족하고 기획만 할줄 안다면 문서만 들이대면서 방향을 제시하면 됩니다.

하지만 개발능력을 갖추고 문서를 작성하고 방향을 제시한다면 훨씬 Well-made된 게임이 나올 수 있습니다.


그래서. 간단하게나마.

제 개인 능력으로 하나씩 해보고.

직접 출시하는것까지도 목표를 두면서 본격적인 연구에 들어가볼까 합니다.


얼마 전에 관련 업계 선배를 만났었습니다.

게임 기획을 잘하기 위한 전제조건은?


구체적인 포트폴리오 문서라도 써봤냐? 네.

유저들이 무엇을 원하는지를 파악 잘하냐? 네.

유저들 호응도라던가 커뮤니티 내에서의 인지도가 높은편이냐? 네.

명확한 방향과 비전을 가지고 제시를 할수있느냐? 네.

직접 뭐 하나라도 만들어본것이 있느냐? 아니오.


답은 하나입니다.

직접 만들어보기만 하면 되는것이죠.

기획을 하기 위한 전제조건은 충분히 갖춰졌으니. 이제 해보지 않은쪽으로 해보면됩니다.


Onik Laboratory 카테고리를 만들고,

Machine Learning, R Programming에 대한 학습과 연구도 병행했지만,

뚜렷한 목표나 성과는 없었습니다.

그리고 한동안 아무런 글도 없었습니다.


이제는 게임 기획과 개발을 위한 프로토타입과 기획, 개발방향을 제시하면서

하나하나씩 제가 가지고있는 지식. 그리고 가지게 될 지식.

관련된 연구 등등을 공유해보고자 합니다.


제가 올리는 이런 정보는 게임 기획이나 개발을 꿈꾸는 사람들에게 있어서는 소중한 정보가 될 수도 있을테니까요.


새롭게 다시 변화하는 모습 보여드리겠습니다.


WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret

사진출처: 뉴시스


이번에 나오는 아이폰X 가격이 142만원, 163만원을 한다고 합니다.

스마트폰의 등장 이후, 신제품의 가격이 점점 오르고 있음을 누구나 알 수 있죠.


사실 PC나 다른 전자기기만 하더라도 신제품이 출시되었을 때 가격은 큰 차이가 없는 반면, 스마트폰은 조금씩 가격상승이 계속되고있습니다.

반면 기존에 나온 구모델의 경우에는 판매가 자체는 큰 하락이 없고요.

(대신에 판매점에서 지원금을 더욱 많이 주는 형태가 됩니다)


스마트폰 하드웨어 성능도 점점 좋아지고 있습니다.

하지만 하드웨어 성능 증가가 가격 상승의 요인으로 보기는 어렵습니다.

왜냐하면 PC시장의 경우에도 하드웨어가 좋아지면 기존 하드웨어는 가격이 낮아지기 때문입니다.


이런 일이 왜 생기는 것일까요.

아무래도 스마트폰에 대한 수요가 지속적이고, 회전주기가 빠르기 때문입니다.

그리고 지속적인 물가상승도 하나의 요인으로 작용합니다.


그렇다면, 최신형 스마트폰을 비싼값에 주고 사는것이 현명할까요.

저라면 아마도 "아니오"라고 답할 것입니다.

왜냐하면 이전 기종이나 최신 기종을 비교하면 정작 스펙 차이도 크게 없기 떄문입니다.


물론 그것 때문에 기존 기종 가격이 낮아지는 현상은 드뭅니다만,

그렇다고 더욱 비싸진 최신 폰을 사야 할 필요성이 있을지는 솔직히 의문입니다.


그럼에도 불구하고 사람들이 최신기종을 많이 사는 이유는

뭔가 최신기종을 사야한다는 자부심도 한몫을 하지만,

소프트웨어, 즉 앱도 요구 하드웨어수준이 높아지기 때문입니다.


특히 게임쪽은 더더욱 그렇습니다.


사진출처: Liverex.net, 리니지2 레볼루션 화면


모바일 게임시장의 성장이 최신기종을 구매하도록 유도하는 현상.

사실 이러한 현상은 PC시장에도 상당수 존재했죠.


결국 IT 산업의 핵심을 이루는 산업은 이를 통하여 즐기는 놀이문화와 연결되고 있습니다.

1,2년도 아니고. 20년을 가까이 이어져왔던 문화가 단지 PC에서 모바일로 전이되었을 뿐입니다.


심지어 최근에는 VR 장비 등 수많은 기술이 스마트폰과 연동되면서 더욱 높은 스펙의 휴대폰을 이용하는 것을 권장하는 추세이기도 하고요.


저라면 최신 기종의 스마트폰을 굳이 사지는 않겠습니다만,

최신 기종에 대한 수요가 지속적이고. 회전주기도 빠르고.

모바일 게임문화와 다양한 연동장비까지 고려했을때.

이러한 휴대폰 가격의 상승은 결국 불가피한 현상이자 트렌드로 자리잡는 것이 맞을 듯 합니다.


물론 게임을 안하고도 최신 스마트폰을 구매하는 사람들도 많습니다.

하지만 게임 외에도 고사양의 스펙을 요하는 수많은 앱과 기능들 역시 산재해 있고,

그러한 기능들을 사용하기 위해서 구매하는 고객 역시 적지 않습니다.

다만 게임이 고사양의 스마트폰 구매를 주도한다는 것을 언급하려는 것일 뿐이고요.


이번에 스마트폰을 새로 산다면 어떤 기종을 구매하시겠습니까.

결국 여러분들의 평소 사용 용도에 맞는 구매가 가장 최적일 것으로 판단됩니다.



WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret


삼국지조조전 온라인 게임 공식카페 게시판의 현장입니다.

보시다시피 운영에 대해서 불만을 제기하는 글들이 속출하고있습니다.

원인인즉슨 최근 업데이트가 있었는데 기기호환성문제로 올바르게 동작을 못하는 현상이 심각해져서 불만이 갈수록 늘어가는 것이라 합니다.


과거의 삼국지조조전 온라인 관련 작성했던 글을 보면, 비판이 대부분인 것은 사실이였습니다.

하지만 지금 글은 비판을 하려고 쓰는 것이 아닙니다.


자. 한번 생각을 해볼까요.

지금 나타나는 저런 현상은 모두의 문제일까요. 아닙니다.

하지만 소수의 유저에게만 나타나는 문제도 아닙니다.


운영자들은 저 현상에 대해서 '지금 확인 중입니다' 라는 게시물을 올리고, 

그 이후에는 3열동안 어떠한 글도 없긴했습니다.

하지만 저 문제는 사실 금방 해결될 수 있는문제는 아닙니다.


여기에서 운영의 딜레마라는 것이 생깁니다.

관련된 게시물을 게시해도 욕먹고. 게시 안해도 욕먹고.

그렇다고 개발진에서 처리해야 할 일에 대한 결과가 안나온다고 마냥 손빨고 있을수는 없고.


가장 최선의 방법은 무엇일까요.


그것은 바로.

유저의 반응에 휘둘리지도 말고. 두손놓고 가만히 있지도 말고.

규칙성을 가지고 피드백을 하는 것입니다.


즉 일정 주기를 가지고.

1일이 되었든. 3일이 되었든 6시간이 되었든.

임의로 주기를 정해놓은 다음, 현재 문제에 대한 진행상황을 간략하게 요약하는 글 정도는 괜찮을 것입니다.


아무것도 안한다면 관리도 안하나 관심도 없나라는 오해를 불러일을킬 수 있기에, 이를 해소하기에도 좋고.

반대로 여전히 불만을 제기하는 유저가 있다고 하더라도, 불만을 덜 가지게 되는 유저들도 등장할 수 있습니다.


게임, 제품 서비스 관련 게시판 운영은 분위기라는 것이 굉장히 중요합니다.

다수의 유저들이 동일한 불만을 제기할 만한 사항이 생긴다면, 이에 대해서는 운영진, 개발진도 모두 동시에 인지하고 있을 것입니다.

정상적인 회사라면 당연히 이에 대한 조치는 진행 중일 것으로 판단되며, 진행 상황에 대한 공유도 가능할 것입니다.


모든 것을 상세히 다 말할 필요는 없습니다.

진짜 아주 간단하게라도 상황 공유만 해도 상관없습니다.

고개를 숙여서 사과를 크게 표할 필요는 더더욱 없습니다.

과도한 성의를 보이더라도, 진정성있는 사과를 하더라도 어차피 불만이 있는 유저는 항상 존재합니다.


결국 항상 불만이 있는 유저들은 제외하더라도, 조금이라도 불만이 풀릴 수 있는 유저들을 위한 운영을 한다면

그것이 최선이 될 수는 있을 것입니다.


고객 유치도 중요하지만, 고객 유지는 더더욱 중요합니다.

고객 유지를 위해서 모든 고객을 다 모신다는 생각을 하기보다는,

유저 성향 별로 분포를 파악해 보고, 이에 맞출 수 있는 식으로 고객 관리를 수행한다면 어떤 상황에서도 최선의 운영은 가능할 것입니다.


다음 글에는 이러한 고객 유형 별 대응 절차 및 운영 방안과 관련하여,

여러 가지 지표를 활용하여 조금 더 구체적으로 언급해보도록 하겠습니다.



WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret
요새는 음양사 for Kakao라는 게임을 하고 있습니다.
물론 하드 유저는 아니라 라이트 유저이기 때문에 게임과 관련된 세부적인 내용을 블로그에서 다루지는 않을 것이고요.

이번 업데이트에 현세소환이라는 소환 방법이 추가가 되었습니다.

현세소환이라 함은, 카메라를 활용하여 특정 모형이 촬영될 경우 해당 모형에 시각적 효과가 추가되고,
그 상태에서 캐릭터 소환을 실행하면 캐릭터가 소환진에서 나오는 효과입니다.

그리고 이러한 소환방식은 AR 기술을 활용해서 카메라로 촬영된 주변 사물에 캐릭터가 등장하는 형태로 구성되어 있습니다.

아래 영상을 한번 보겠습니다.


출처: 유튜브, 제가 올린 영상입니다


보시다시피, 저는 침대에서 아이패드를 펼쳐놓고, 아이패드에서 특정 모형을 띄워놓은 다음 카메라로 촬영 및 소환을 하였습니다.

꽤 근사하게(?) 캐릭터가 소환되는 것을 볼 수 있었습니다.


어떻게 보면 귀찮을 수도 있습니다.

하지만 반대로 보면 캐릭터를 단순히 뽑는 것에서 그치지 않고 새로운 형태로 뽑는 방법을 기술을 이용하였다는 점에서
또다른 재미 추구가 가능합니다.


AR이 꼭 게임의 메인이 되지 않아도 충분히 활용 가능한 기술이라는 것입니다.


사진출처: 노컷뉴스


우리는 지금까지 포켓몬고라는 게임을 통해서 AR을 활용한 게임을 했던 바 있었습니다.

새로운 기술이고, 흥행에 큰 성공을 거두었지요.


하지만 AR 기술 자체가 게임의 Main 요소로써 자리잡는것은 쉬운 일은 아닐 것입니다.

설령 나온다고 해도 포켓몬고의 아류인가 싶은 생각도 들 것입니다.

그런 점에서 AR기반 새로운 게임이 큰 성공을 거두기 위해서는 어느 정도의 시간은 필요합니다.


그러나 음양사 for Kakao와 같이 AR기술이 게임의 일부분으로써 재미를 추구하기 위한 방안이라면,

사람들은 더욱 게임을 즐길 수 있고 새로운 재미거리를 찾아나갈 수 있을 것입니다.

어떻게 보면, 고객의 재미를 추구하기 위한 노력이라고 볼 수도 있을 것입니다.


앞으로 출시될 게임도 AR을 활용한 기술이 나타날까요. 기대되는 바입니다.


WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret

오늘도 블로터 기사로 글을 시작해봅니다.


직원 ‘갈아넣어’ 게임 만드는 게임업계, 막을 순 없나

블로터 원문주소: http://www.bloter.net/archives/287707


사진출처: 블로터 기사


사실 새로운 내용은 아닙니다.

8월16일 국회의원회관에서 게임업계에 대한 문제점을 진단을 해 보는 자리를 가졌다 정도하고,

게임업계 근무자들이 우울증이 일반인구대비 4배이상, 자살시도율이  5배이상이라는 언급을 한게 기사 내용의 핵심입니다.


제가 게임업계에서 종사를 하거나 그런 사람은 아닙니다. 

하지만 저도 IT를 전공한 사람인지라 주변에 관련업계 종사자 지인은 몇몇 있는 상태고요.

게다가 제가 즐겨 하는 게임도 단순히 게임만 즐기는게 아니라 해당 기업에 대한 운영형태나 그런 외적인 부분까지도 세세하게 보는 편이긴 합니다.


우리나라의 개발자의 현실은 어떨까요.

IT가 국내에 본격 활성화되고, 프로그래밍을 하는 개발자들은 90년대 말부터 늘어났지만, 이들에 대한 대접은 터무니없기로 유명했습니다.


사진출처: brunch



우리가 알고있는 '개발자'의 개념은.

맨날 밤새도록 일하고 코드짜고. 죽어라고 정신적 노동을 하고.

그리고 프로그래밍밖에 할줄 모르니까 경영학적이나 관리 운영 그런 측면은 당연히 떨어질테니 경영진한테 맨날 까이고.


그래서 일은 겁나 많이 시키면서 무시당하고 핍박받고.

해외하고는 다르게 국내에서는 완전 찬밥신세인 그런 대접을 받기 시작하게 되었죠.


도대체 왜 그렇게 되었는지. 사실 알고 싶진 않습니다.

다만 제가 추측한 내용은 아마도 이 정도가 될 것 같습니다.


고전적인 회사에서는 의사결정을 문과 출신들의 경영진들이 주도적으로 모든 것을 다 할 수 있었습니다.

하지만 IT가 도입되고, 이제는 IT의 영역 자체가 거의 필수가 되다시피 한 형태에서 이공계 출신들이 그 자리를 꿰차다 보니까 기득권을 빼앗기기 싫었던 것이고, 그렇게 해서 그냥 개발자들은 경영진들의 그런 자리나 판단을 할 위치가 아니라는 것을 아마도 각인시키고 싶었던 것은 아니였을까 싶습니다.


그리고 그 문화가. IT가 본격 도입되기 시작한 2000년대 초반 이후 15년이 넘는 현 시점까지도 계속되고 있는 셈이죠.


사진출처: ㅍㅍㅅㅅ



특히 게임업계는 더 할 것입니다.

예전같으면 PC온라인게임 하나 출시하고. 한 몇년 우려먹다가 관리만 잘하고 업데이트 준비만 좀 해주고 그러면 되었었는데.

이제는 모바일게임이 대세가 되고, 수명주기도 짧아지는데다가 회전률은 반대로 높아져버리기 때문에, 그리고 업데이트나 패치도 빠르게 내놓지 않으면 유저들의 반발도 더욱 심해지게 되었죠.

개발해야 할 게임이 더욱 많아지고, 유지보수 건수도 늘어나고, 관리 포인트도 점점 늘어나다 보니까 더욱 부려먹고 야근하고 스트레스만 쌓이고 그렇게 되어가는 것입니다.




개선방안은 없을까요. 물론 있긴 합니다. 

납기가 급한 게임 컨텐츠가 있을 경우를 대비해서 프리랜서 등의 단기계약직 고용 폭을 늘려나가는 것입니다.

한정된 인원이 많은 시간을 들여서 컨텐츠를 보완하거나 개발하는 것이 효율이 현저히 떨어진다는 것은 어느 정도 증명되었으니, 인원을 더 늘리는 겁니다.


물론 인건비 증대로 인한 고정비 증가로 수익성이 떨어질 수도 있을 것입니다.

하지만 수익극대화보다 더욱 중요한 것이 인권이고, 정당한 근무시간을 보장받는 것이며, 최대한 근무효율을 올리는 것입니다.


그런 곳에서 비용을 소모하는 것이 싫다면. 반대로 납기를 느긋하게 잡고 좀 여유있게 준비를 하시던가요.


제가 하고 있는 게임. 그리고 주변 몇몇 게임들 보면, 오히려 급하게 이거저거하고 그러다가 기본을 놓치고 유저들 원성을 사는 게임이 부주기수입니다.

그저 자기들 수익성에만 급급해서 단기간에 수익 좀 내고 유저들 줄어들어도 나몰라라하고.


이렇게 해서 큰 수익을 내는데 성공한다면 제가 할말은 없지만, 그렇지 않을 경우에는 굉장히 비효율적입니다.

유저들 원하는 대로 해주는것도 아니고. 수익이 그렇다고 장기간 보장되는것도 아니고.

개발자들은 죽어나고. 효율은 떨어지고.


아무것도 얻는게 없는 것이지 않습니까.



결국은 게임 개발과 유지보수, 관리를 위한 큰 라이프사이클을 잡고.

근무자들이 최적에 환경에서 개발할 수 있도록 인원이나 시간 분배 등도 보고.

큰 틀에서 모든 것을 바라보는 자세를 가져야 모두가 만족할 수 있는 결과를 얻을 수 있지 않을까요.



구체적인 사례나 이에 대한 구체적 대안이 필요할 경우에는 댓글 달아주셔도 괜찮습니다. 

원하시는 분 계신다면 제가 연구나 조사를 하는 방안도 고려해보겠습니다.


사진출처: 스톰의 게임기획연구실(http://egloos.zum.com/sstorm/v/5441847)

(좋은 사진 제공해주셔서 감사드립니다)






WRITTEN BY
鬼風
생각이 깨어있지 않다면 살아갈 이유도 없다

트랙백  0 , 댓글  0개가 달렸습니다.
secret