잡담

[161214] 코딩 잡담

난 개인적으로 웹이 너무 싫다. 누군가 나에게 웹 관련 업무를 준다면 때려칠 수도 있을 듯. 비록 작년에 인턴하러 들어갔던 회사에서 웹 개발 업무를 하긴 했지만 내가 개발을 시작했던게 아니라 유지보수 정도라 할 일이 별로 없어서 그나마 했던 것이다.

웹 중에서도 Java로 개발하는 웹, 그러니까 JSP가 특히 더 싫고. Java 쓰기 싫어서 안드로이드도 안 잡고 있는 것이고. Java와 C#의 기본적인 차이점이 그리 크지 않음에도 불구하고 Java는 싫어하고 C#은 1순위로 좋아하는 이유는 사실 나도 잘 모르겠다. 문법이 좀 더 깔끔하고 통일된 규칙이라는 점?

Java와 Javascript의 차이는 인도와 인도네시아의 차이와 비슷한 급이라고는 하지만 어쨌든 난 Javascript도 싫어하는데, 문법이 체계적이지 않다는 이유가 클 것이다. WebAssembly가 프론트엔드용이었던 것 같으니 조만간 Javascript에서 벗어날 수도 있을 것 같은 좋은 느낌이 든다. 뭐, 사실 지금도 잘만 하면 Javascript를 직접 만질 일은 없지만 그 대신 C++을 해야 하는 단점이… 개발도구가 불편한 점도 있고.

근데 뭐 이런 저런 이유가 있어서 웹을 싫어하더라도 웹을 해야 할 수 밖에 없는 이유가 있어서 고통스럽다. 요즘 세상에 웹을 안 쓰고 개발하는 곳이 얼마나 있을까? 심지어 MMORPG나 FPS 게임마저도 웹을 통해 사용자 데이터를 송수신하는 기능을 구현해야 할 정도이고 일반적인 앱 개발은 말할 것도 없다.

때문에 재작년부터 다시 PHP를 조금씩 만져보고 있는데 역시 웹은 너무나 고통… 백엔드보다 프론트엔드가 더욱 더 고통… C#으로 개발하려면 ASP.NET을 사용해야 하는데 음…

광고
잡담

[161212] 코딩 잡담

고등학교 다니면서 처음 게임 프로그래밍을 배울 때는 Windows 환경만 고려하면 됐었다. Linux나 OS X(그때 당시는 Mac OS X였지만)는 물론이고 Android나 iOS(물론 이 OS들은 당시엔 없었지만)도 전혀 고려할 필요가 없었다. 사용하는 사람이 적다는 이유로(그리고 선생님도 사용해본 적 없다는 이유로) 가르쳐 주지도 않았다. 모바일 게임 프로그래밍을 하려면 그냥 PC용 코드는 다 버리고 새로 개발해야 했다. WIPI 환경은 메모리가 정말 적어서 PC용과 코드를 혼용하려면 PC용 게임의 질이 매우 떨어졌기 때문.

고3에 처음으로 Mac OS X와 iOS를 만져봤다. 이 당시에도 크로스플랫폼은 전혀 생각해본 적 없고 사실 Objective-C와 C++을 혼용해서 크로스플랫폼 개발을 한다는 것도 전혀 생각지도 못했다. 게다가 Objective-C의 언어 개념이 좀 생소해서 그냥 C# + MonoTouch로 공부 했었다.

고등학교 1학년 당시에 이미 XNA Game Studio라는 녀석으로 크로스플랫폼 개발에 대한 어느 정도의 지식은 갖추고 있었지만 이 개념을 Windows + Xbox 360 이외의 곳에 활용할 수 있다는 생각은 해본적도 없었다.

요즘 게임 업계를 보면 아직도 그때 그대로이다. 크로스플랫폼 개발을 별로 고려하지 않거나 고려를 해도 구식 방법으로 구현한다. 각 플랫폼마다 결제 시스템, 게임 통계 시스템, 도전과제 등 여러 시스템이 존재하니 추상화를 거쳐서 구현하면 Android, iOS, Windows 10 Mobile, Windows, Linux, iOS 등 OS들을 대부분 지원할 수 있음에도 불구하고 끽해봐야 Android, iOS 지원하고 만다. 그나마도 iOS까지 지원해준 거면 잘 지원해준 것. 국내의 경우 PC쪽은 아직도 Windows용만 개발한다.

앞으로 점점 멀티플랫폼에 대한 고객 요구가 증가할텐데, 현재의 크로스플랫폼 개발 형태를 보면 한숨만 나온다.

그건 그렇고, 나도 크로스플랫폼 개발을 해보려고 많은 시도를 해보는데(3D 연습용 크로스플랫폼 프레임워크 개발을 해보려고 연습해보는 것만 해도 1년 가까이 걸렸다) 이 크로스플랫폼 개발이라는 것을 아무런 도움 없이 혼자 한다는게 쉬운 일은 아니다. 문제는 내게 크로스플랫폼에 대한 강박관념이 생겼다는 것일까. 크로스플랫폼 대비를 안 하면 개발 진도가 나가질 않는다.

물론 상용 엔진 쓰면 크로스플랫폼 대비도 큰 노력 없이 할 수 있긴 하지만 그러면 또 성취감이 없어서… 요즘 개인적인 개발 성과가 없는 이유가 바로 이것. 그래서 일단 크로스플랫폼 강박관념을 떨치고 뭐라도 개발해보려고 시도 중. 전에 구상했던 FPS 끊어쏘기 연습 프로그램 한번 개발을 시도해보려고 한다.

잡담

SIMD Intrinsic을 이용한 성능 개선?

SIMD(Single Instruction, Multi Data)는 여러 데이터를 하나의 명령어로 연산 수행이 가능한 CPU 명령어 종류이다. 주로 멀티미디어 환경 개선을 위해 사용되고 있고, Intel/AMD의 x86, x86_64 CPU는 물론이고 ARM CPU에서도 지원하고 있다. 물론 형태는 제각각 조금씩 다르긴 하지만.

특히 게임에서 SIMD를 활용한 성능 개선이 가능한데, 벡터 연산과 행렬 연산, 물리 연산 등에 SIMD 명령어를 사용하면 성능을 조금 더 개선이 가능하다. 물론 효과는 좀 미미하긴 하지만 이 미미한 차이가 다른 곳에 신경을 덜 쓰게 하냐 더 쓰게 하냐의 문제가 되니 개발자 입장에서는 쓸 수 밖에 없는 것이다.

컴파일러에서 자동으로 SIMD 명령어로 빌드를 해주는 것도 가능하긴 하지만 어디까지나 운에 맡겨야 하고 코드도 컴파일러가 “이 코드는 SIMD 명령어로 치환하는게 가능하겠는걸?”이라고 인식할 수 있는 정도의 규칙도 맞춰줘야 한다.

때문에 개발자들은 보통 SIMD 명령어 등을 사용하기 위해 어셈블리 코드를 직접 작성하거나 Intrinsic 코드를 작성하는데, 전자는 IA32/AMD64의 두 경우에 있어서 각각의 어셈블리 코드를 따로 작성해줘야 하고 특히나 Visual C++은 64비트 빌드에 대해서 인라인 어셈블리를 사용할 수 없어서 편의성에 문제가 있다. 이에 반해 Intrinsic 코드는 몇 가지 헤더파일만 포함하면 함수 형태로 명령어를 사용할 수 있다.

뭐 이런 이론은 대충 넘어간다고 치고, 그래서 나도 벡터와 행렬을 Intrinsic을 이용해 작성해보기로 했는데, 무슨 이유인지 모르겠으나 C++로 작성한 코드가 Intrinsic으로 작성한 코드보다 빠르다.

Vector4 Get Length
Time by Intrinsic code: 0.933216
Time by C++ code: 0.768878
Vector4 Multiply
Time by Intrinsic code: 0.212694
Time by C++ code: 0.194507
Matrix4x4 Multiply
Time by Intrinsic code: 0.710493
Time by C++ code: 0.504729

도대체 왜 이런지 모르겠고, 디스어셈블리 해서 코드도 봤는데 전혀 이유를 모르겠음이다. 이유를  찾을 수 있으면 좋을텐데.

뭐, 이미 오픈소스로 SIMD 벡터/행렬 라이브러리가 있긴 하다. 그러나 이미 있는 걸 그냥 가져다 쓰느냐 내가 이해하고 그 이외의 다른 부분에도 적용할 수 있냐는 다른 문제기 때문에 그걸 해결하고 넘어가보고 싶은 것. 작년 중순부터 한 번씩 시도해보고 있는 것인데 아직도 성능 문제가 해결이 안 된다. 어떻게 해야 할까…

+ 시간이 아니라 CPU 사이클을 측정해보니 Intrinsic 코드가 좀 더 사이클 수가 적다. 왜 시간은 더 걸리는지 모르겠는 일…

잡담

가해자에 이입하는 사회

우리나라는 정말 기형적이게도 가해자에 이입하여 그들을 동정하고 죄값을 제대로 치르지 못하게 방해한다. 피해자가 어떤 피해를 입었는지는 절대로 생각하지 않고, 죄값을 받아야 되는 가해자가 얼마나 잘못될지만 생각한다.

특히나 성범죄나 미성년자에 의한 범죄, 여성혐오범죄 등에 대해서는 그런 경향이 큰데, 실제로 성폭행을 했던 의대생은 앞길을 막으면 안 된다며 법원 차원에서 집행유예를 한 예가 있다. 아니, 정말로 성범죄자가 환자를 진료하는 의사를 하는 사회가 정상이라고 생각하는 걸까?

미성년자나 취업준비생이 정도가 심한 악플을 달았거나 학교 폭력, 사기 등의 다양한 중범죄 사건들에서도 주변인이나 경찰 등이 아예 피해자가 그들과 합의할 것을 요구하기도 한다.

난 피해자가 가해자를 절대 봐주지 말아야 된다고 생각하는 주의라 중범죄나 강력범죄는 물론이고 경범죄도 그만한 댓가를 치르게 해야 한다고 생각한다. 합의는 웬만하면 하지 말고. 법집행을 받더라도 교화될 가능성이 있을까 말까 한데 과연 합의를 한 것 만으로 교화가 될까? 절대 아닐걸. 피해자가 봐준 그 가해자는 또 다른 피해자를 낳게 된다.

나는 가해자에 이입해서 그들을 봐주라는 사람들은 잠재적 범죄자로 보고 있다. 자기도 그 범죄 일으켰거나 일으킬 예정이라 자기에게 올 피해를 최대한 줄이기 위해 밑밥 까는 것으로 봐왔고, 앞으로도 그렇게 볼 것이다.

잡담

자기 PR의 시대

(예전이라고 아니었던 건 아니지만) 지금은 자기 PR의 시대이다. 나를 적극적으로 홍보하지 않으면 살아남기 힘든 세상. 작년, 좀 더 넓게 보면 재작년까지는 공개적인 본업 활동을 하는 것만으로 자기 PR이 됐었지만(네온비 작가가 자신의 만화를 통해 간접적으로 이런 상태를 소개했던적이 있다), 생산 가능 인구 최대치를 찍은 지금은 그것만으로는 부족하다. 실제로 많은 사람들이 본업 활동 외의 방법으로 자기 PR을 하는 것을 보면 알 수 있다.

예를 들어, 프로게이머는 온라인 스트리밍 서비스를 이용해 본인의 게임 플레이를 보여주는 개인방송을 하고 있다. 웬만한 자기 PR을 온라인 스트리밍 서비스를 이용한 개인방송을 통해서 하는 경우가 많다.

현재 온라인 스트리밍 서비스는 대표적으로 YouTube, Twitch, afreeca TV가 있는데, 현재 아프리카 TV는 극하향세를 달리고 있으니 유튜브와 트위치의 두 가지 길이 있다. 보통 게임쪽을 활동하는 사람은 트위치로 가고, 그 외에는 유튜브로 가는 듯 하다.

예전에는 온라인 스트리밍이 활성화되지 않은 상황이었어서 보통 녹화본을 유튜브 등에 올리는 것으로 대신하는 경우가 많았는데, 소통이 힘들다보니 점점 온라인 스트리밍이 활성화됐다고 본다.

그러나 이런 자기 PR의 시대에 온라인 스트리밍으로 개인방송하는 사람들을 안 좋은 시선으로 보는 사람들이 종종 있는데, 방송인 허준의 트위치 방송에서 이를 지적한 바가 있다. 인터넷 방송을 하는 사람이 퇴물이냐며 그럼 그 방송을 보는 댁은 뭐가 되냐는 말을 했었다.

프로그래머, 프로게이머, 화가, 작가, 요리사(+제빵사), 방송인, 성우 등 정말 많은 분야의 사람들이 개인방송을 스트리밍 하며 각자의 실력을 뽐내고 자신의 예비 고객들과 소통도 하다보면 일거리가 끊기기는 어려울 것이다.

그러나 개인방송을 자기 PR에 이용할 때 주의할 것이 있다면 역시 각자의 발언과 행동일 것이다. 실제로 온라인 스트리밍 중에 발언을 잘못해 열심히 까이는 사람들이 꽤 있다. 본인이 그게 잘못인걸 뒤늦게라도 깨닫고 사과한 경우에는 넘어간적도 있지만… 이걸 가장 잘 주의할 수 있는 방법은 역시 평소에 언행 바르게 행동하는 것일 것이다. 게임 방송이라면 같이 플레이하는 타인에게 피해를 주는 행동도 최대한 삼가야 할 것이고.

자기 PR에 이용되는 것은 개인방송 외에도 다른 것이 있는데, 기존에 사용되던 블로그와 SNS가 있다. 블로그는 수명이 다 한 매체라고 볼 수 있으니 이를 자기 PR에 이용하는건 좀 그렇고, 그럼 SNS가 있는데, SNS는 좀 제한적이다. 본업에 대한 얘기를 나누기 보다는 일상 생활을 다루게 될테니 일부 분야 외에는 자기 PR에 이용하기는 힘들 것이다.

프로그래머의 경우에는 GitHub, Stack Overflow 등의 활동을 통해서도 자기 PR을 하고 있다. 내가 후배들에게 적극적으로 GitHub 홍보에 임하고 있는 이유 중 하나이다. GitHub는 자기 PR의 수단이 될 수 있기 때문에 적극적으로 사용을 권장하고 있고, 학교의 일부 진보적인 교수님들도 GitHub가 아니더라도 BitBucket 등을 활용할 것을 학생들에게 권장하는 분들도 계시다.

어디서는 자기 PR의 시대는 지났고 타인 PR의 시대이니 남을 열심히 소개하라는 말도 도는 거 같은데, 난 인정하지 않는다. 여전히 자기 PR의 시대이고, 그 방법이 좀 달라졌을 뿐이다. 정보화 사회에 IT 도구를 활용하여 자기 PR을 해야 하는 시대이다. 그것도 내가 뭘 할 수 있고 어떤 면이 좋고 등등 구구절절 말을 할 필요가 없다. 가장 알맞은 매체를 이용해 자신의 실력을 마음껏 뽐내면 된다. 그것으로 자기 PR이 된다고 생각한다.

이런 생각이 든 것은 예전에는 잘 찾아보기 힘들었던 프로게이머들의 개인 게임 화면을 각자의 개인 방송으로 볼 수 있고, 일부 방송인들이 개인방송으로 자신의 팬과 시청자들과 소통하고 유명 개발자는 컨퍼런스에서만 자신을 뽐내지 않고 자신의 저장소에 프로젝트를 업로드하는 등의 모습들을 보고 깨달았다. 이들은 현재 잘나가는 사람들이다. 개중에는 무명에서 이런 방법으로 시작해서 잘나가게 된 사람도 있다. 나도 자기 PR을 위해 알맞은 매체를 좀 더 찾아봐야지. 블로그와 GitHub만으로는 좀 부족한 느낌이 있다.

잡담

게임 문화, 개선해야 한다

한동안 온라인 게임을 잘 안 했다. 일단 비교되는 것부터가 날 좀 짜증나게 했다. 옛날에 MMORPG 게임 하면 다른 친구들은 레벨이 기하급수적으로 올라가는데 난 레벨 20 이상을 올라가질 못하고 있고 온라인 액션 게임을 하면 다른 친구들에 비해 반응 속도가 느려서 맨날 죽거나 피해를 주는 등 내가 게임을 못 하는게 너무 눈에 확 띄었다.

대학교 올라오고 한동안 콘솔 게임 위주로만 플레이를 하다가 정말 오랜만에 온라인 게임으로 돌아왔는데, 그 게임이 바로 오버워치. 동생이 군대 휴가나온 7월 초부터 같이 구매해서 플레이를 시작했는데 중순, 그러니까 학생들 방학하기 전까지는 매우 클린하게 플레이했었다. 이후 엄청난 수의 트롤들을 보고 그룹 맺어서 플레이하지 않는 이상 잘 안 하기 시작했고.

도대체 왜 그렇게 하면서 플레이를 하지? 싶을 정도로 정말 게임 문화 더럽다.

리그 오브 레전드가 한창 상승세를 탈 무렵, 준프로 대회를 준비하던 고등학교 후배가 나한테 리그 오브 레전드를 영업할 때가 있었는데 내가 왜 리그 오브 레전드를 안 했느냐?라고 묻는다면 당시 인터넷에도 많이 떠돌던 롤 문화, “부모님 안부 묻기”와 “상대방 조롱하기” 때문이다.

내가 워크래프트3로 친구들과 로컬망으로 같이 하던 카오스나 파이트 오브 캐릭터즈를 플레이할 때 내 실력을 잘 알기 때문에 롤을 시작하면 100% 저 두 더러운 문화를 직접 접하게 될 것이라는 것을 잘 알기 때문에 시도도 안 해봤었다.

대학교 3학년 올라왔을 때였나, 리그 오브 레전드가 너무 인기가 좋아서 “그래, 동아리 선후배들이랑 한 판 같이 해보자” 하고 PC방에 가서 팀을 나눠 해봤었다. 튜토리얼도 안 해본 나에게 같은 팀인 동아리 선배(학번은 같지만 나이가 나보다 많으니까 선배라고 하자)가 나한테 정말 심한 욕을 해서 그 뒤로 리그 오브 레전드는 쳐다 보지도 않는다. 욕했던 그 선배에게도 만나면 웃으며 인사는 하지만 오래 얘기하지 않는다. 그깟 게임이 뭐라고? 내가 뭐 티어 떨어뜨리는 것도 아니었고 그냥 단순한 친선 게임이었는데.

또 한 번은 고등학교 친구가 갑자기 같이 게임 하나 하자길래 포탈 2 협동 게임을 시작했는데 나보고 뭐라뭐라 설명하다가 혼자 화나서 그대로 해산했다. 도대체 왜? 심지어 게임도 좀만 더 하면 클리어하는 정도였다.

도타 2는 온라인 친구가 설득에 설득을 해서 몇 판 같이 했었는데, 점점 재미를 붙일 무렵 만난 욕쟁이가 나한테 욕을 하자마자 게임 끄고 지워버렸다.

내가 그나마 멀티플레이를 시도할 수 있게 되었던 것에는 스팀에서 만난(정확히는 커뮤니티  사이트에서 만난) 온라인 친구들 덕분이었다. 내가 잘 못해도 웃으며 넘길 수 있는 그런 친구들이고, 때문에 서로 웃으며 게임을 할 수 있었다. 레프트 4 데드 2, 트라인 2, 포탈 2, 페이데이 2, 세인츠로우 3, … 정말 많은 게임을 멀티플레이로 같이 즐기고, 심지어 서로의 게임 플레이를 스팀 방송 등으로 구경도 많이 했다. 서로 게임 못한다고 놀린적 한 번도 없었고, 설명도 이해 못 하면 이해할 때까지 같이 해보기도 하고, 경쟁하는 게임이면 서로 이긴 팀에 격려도 해줬다.

이런 평화로운 분위기에 게임을 충분히 즐길 수 있음에도 지금의 게임 문화는 정말…

첫 번째로, 욕설 너무 난무한다. 실생활에도 욕설이 난무한다지만 서로 고쳐갈 생각을 해야지 도대체 왜 그렇게 욕설을 하는 걸까? 특히나 패드립, 고인드립 등등 진짜 너무 싫다. 심지어 닉네임으로 그런 것을 해놓는 경우도 있다.

두 번째로, 성희롱이나 성적 비하를 하는 경우도 있다. 여성 플레이어만 보면 성희롱 하기 바쁜 개돼지 놈들 진짜 다 적어도 1~2년씩은 감옥 다녀와야 될텐데 사이버수사대와 게임사도 제대로 협력 안 해서 그런 사례가 너무 적다. 게다가 여성 플레이어 실력을 비하하는 놈들도 짜증난다. 잘 하는 여성 플레이어에게는 남자친구가 대신 해주는거 아니냐는 놈들, 못 하는 여성 플레이어에게는 이래서 여자는 안 된다는 놈들 등등. 닉네임에 이런거 해놓는 놈들 심지어 게임사에서 잘 바꿔주지도 않음. 오버워치에서 이런거 신고 좀 넣어봤는데 신고 넣는 놈들 대부분 차단까지 해놓고 있고, 배틀넷에서 차단 목록 볼 수 있는데 닉네임 바뀌어있는 경우가 생각보다 많지 않다.

세 번째로, 조롱하는 놈들 너무 많다. 자기 팀이 이기면 상대 팀 조롱하는 놈들, 자기 팀이 지면 자기 팀 다른 사람들에게 실력이 그게 뭐냐며 욕하고 나가는 놈들 등등. 그렇게까지 해가면서 자기 자존감을 챙겨야 되는 놈들이라면 솔직히 병원 가야 되지 않나?

네 번째로, 자기들만 즐거우면 즐겜이라는 놈들이 열심히 트롤링하는 경우. 즐겜은 자기만 즐거우면 되는 것이 아니다. 모든 사람들이 즐겁게 즐겨야 즐겜인 것이다. 그런 면에서 정정당당하게 즐겨야 되고, 서로가 최선을 다해야 한다. 이 자기들만 즐거우면 즐겜이라는 놈들은 오버워치에서 이런 놈들이다. 1) 시메트라로 절벽으로 빠져나가는 순간이동기 생성. 2) 자기팀 시작지점 출구 빙벽으로 막아버리는 메이. 3) 상대팀 어떻게든 이겨보겠다고 3개 이상의 바스티온 픽 및 서로가 사각지대에서 공격 또는 6개의 디바 픽. 4) 난투에서 아나 재우기 스킬 무한으로 쓸 수 있는 점 악용해서 재우기만 하기, … 이 외에도 많은 사례가 있다.

내 닉네임을 ‘다람군’에서 ‘다람이’로 바꾼지 얼마 안 됐는데, 어차피 내 주위 친구들(고등학교, 온라인 친구들. 대학교 친구들은 대부분 다른 호칭으로 부른다)은 대부분 나를 ‘다람군’이 아닌 ‘다람이’로 불러왔기 때문에 그냥 호칭을 통일하자 싶어서 이렇게 바꾼 것이었다. 근데 저번 일요일에 만난 한 파티가 내 닉네임이 “여성적”으로 보였는지 자꾸 여성에 대한 성적 비하를 해대서 정말 짜증났었다. 남자인 내가 이런 기분을 느꼈는데 실제 여성들은 매일매일 게임에서 어떤 느낌일지 감히 상상도 가지 않는다.

이번 달 초~중순 사이에 업데이트 이후 돌렸던 1:1 게임에서는 별 한 개 짜리가 별 세 개 짜리 이겼다고 나보고 물레벨이라면서 조롱하고 갔다. 오버워치에서 별 하나 찍었으면 레벨과 실력은 별 상관관계가 없다는거 잘 알텐데 이렇게 조롱하고 갔다는건 악의적인 것이다. 내 자존감을 도둑질하겠다는 악의.

오늘은 팀 채널로 오라는 팀 채팅을 적은 후 일종의 성희롱을 하는 노래를 반복적으로 틀었던 놈이 있었다. 이 게임 끝나고 다들 게임 할 생각이 싹 사라져서 바로 해산해버렸다.

이 사례들 외에도 정말 많다. 셀 수 없을 정도로. 그나마 최근 겪었던 것들이라 기억에 남아 적을 수 있었던 사례들일 뿐이다.

뭐 내가 리그 오브 레전드 딱 한 판 해보고 접은 주제에 오버워치를 계속 욕먹어가면서 플레이하는 이유는 솔직히 같이 하는 그룹 덕분이다. 이 친구들 덕분에 그나마 얼마 없는 재미를 느껴가며 플레이할 수 있었다. 지금 게임 내 악의적 플레이어들의 수는 기하급수적으로 늘어나고 있는 전망이고, 이 추세라면 우리 그룹은 점점 다른 플레이어들과 붙는 게임보다 사용자 지정 게임으로 돌리는 횟수가 그에 비례해서 늘어날테고, 그러다가 오버워치를 접고 다른 게임을 찾게 되겠지.

사실 게임은 물론이고 인터넷 문화 자체가 좀 바뀔 필요가 있음. 인터넷은 물론이고 실제 문화도 좀 바뀔 필요도 있고. 근데, 게임과 인터넷은 지금 초중고 학생들은 물론이고 20대, 30대, 40대 등등도 전부 아무런 거리낌 없이 만날 수 있는 공간이다. 적어도 이런 공간들의 문화가 바뀌어야 실제 문화도 바뀔텐데, 잘못된 문화들이 인터넷과 게임에서 자꾸 생겨난다. 부디 이런 문화를 바로잡을 어떤 운동이 시작되면 좋을텐데 방해꾼이 너무 많다.

잡담

도메인 변경

웹호스팅에서 워드프레스닷컴으로 다시 블로그를 이전하면서 아예 좀 더 쉽고 짧은 도메인으로 바꿨다. 워드프레스닷컴에 내장된 도메인 구매 기능 덕분에 일반보다 더 저렴한 가격에 변경할 수 있었다.

현재 도메인은 daram.me이다. 이전 도메인인 daram.pe.kr은 2016년 12월 10일까지만 유지된다. 만료 후 유지 기간이 있기 때문에 아마 2017년 01월 09일까지 유지될 수도 있다. 혹시 내 블로그를 즐겨찾기 했거나 링크를 건 곳이 있다면 daram.pe.kr 부분을 daram.me로 변경하면 된다.

잡담

GC 언어는 대용량 데이터 처리에 적합하지 않은 언어

GC를 사용하는 언어들이 있다. Java, C#, ….  최근에 그 중 C#을 이용해 영상 처리를 공부하면서 코드를 만들어보고 있다. 문제가 있는데, 영상 처리를 위해 이미지의 복사본을 여러 개 만들고 수행하는 와중에 들어가는 비용이 장난이 아니다. 1920 * 1080 이미지에 대한 4배 확대 및 필터 처리 등 모든 작업이 끝나면 최악의 경우 대략 4~5초 정도 걸린다. 거기에 32비트 환경에서는 즉각즉각 작업이 끝날 때마다 GC를 걸어주지 않으면 메모리를 너무 많이 써서 더 이상 할당이 안 되는 문제도 있다. 사실 GC.Collect ()나 System.gc ()같은 함수들은 바로 GC를 실행하는 것이 아니라 “할 수도 있다” 정도의 일을 하기 때문에 GC 실행이 안 될 수도 있는 문제도 있다.

C나 C++같은 언어들은 메모리를 할당하고 삭제하는 작업이 즉각즉각 이뤄지고 각 명령의 실행 속도도 인터프리터 언어보다 빠르기 때문에 실시간 영상처리를 위해서는 GC 언어를 사용하지 않을 것을 추천한다. 물론 C#은 일반 인터프리터 언어가 아니라 JIT 컴파일러 언어이기 때문에 한 번 실행한 코드는 매우 빠르게 실행이 가능하지만 JIT 컴파일러 언어에도 한계가 있다.

다음 테스트 코드는 C#이 아닌 C++로 작성해볼 생각이다. 전에 C++로 비슷한 걸 작성해보다가 실패하긴 했지만 이번엔 잘 해봐야지.

잡담

의욕이 없다

요즘 진짜 아무 것도 하기 싫어서 코딩도 잘 안 하게 되고 그렇다. 계속 게임만 하고 있음. 잠도 평소에 8시간 가량 자던거 지금은 9시간 자도 피곤하고.

기존에 만들었던 프로그램들 유지보수를 좀 하려고 했는데 어디서부터 손대야 할지 하나도 모르겠고. 윈도우폰7 시절에 만들었던 앱은 이제 전부 계정 문제로 마켓에서 내려가버리고. 안드로이드 공부같은것도 잘 안 되고. 6~8월에는 후배들 DirectX 11 알려준다고 예제 코드라도 작성을 좀 했지, 지금은 그런 수준의 코드도 작성하기 귀찮고.

무기력증인거 같은데 어떻게 고쳐야 될지도 모르겠고 매일같이 비주얼 스튜디오는 켜는데 정작 코딩은 안 하고 게임만 하고 있음. 언제나 생산성 있는 일을 해야 된다는 강박관념을 최대한 벗어나보려고 아무 생각 안 하고 게임만 하기도 하고 음악 틀어놓고 웹서핑만 하기도 하고. 사 놓은 책도 읽기 너무 귀찮아서 안 읽고 있네… 최근에 가장 규칙적으로 하는 것은 오버워치 플레이하고 하이라이트 녹화해서 유튜브에 올리는 일이고.

한 번씩 기분 전환으로 영화 보러 영화관에 가거나 했는데 그러다보니 이번 여름에 상영한 볼만한 영화도 다 본 거 같고. 메가박스에서 동반1인 7500원 영화관람권 쿠폰도 줬는데 같이 볼 사람도 없고. 아예 기분 전환하러 인천이나 부산 같은 다른 지방에 놀러가볼까.

잡담

블리자드, 신고 정책 믿을 만 한가?

※ 링크 때문에 가독성이 떨어질 수 있지만 레퍼런스를 위해 트위터 계정주에게 허락을 받지 않고 링크를 남겼다. 혹시라도 링크를 내려달라는 계정주의 요청이 있다면 링크를 내릴 수 있다.

최근에 블리자드 게임에서 사건이 하나 터졌다. zergmaster라는 유저가 오버워치에서 여러 유저에게 귓속말로 악성 메시지를 전송하는데 이걸 3일 내내 블리자드에 문의 및 신고, 상담전화 요청을 해도 별 조치가 취해지지 않은 것. 3일만에 피해자가 참다 못해 트위터 블리자드코리아 고객센터에 멘션을 남겼는데 하루 뒤에 답장 온 것이 “담당 부서에 전달을 했으니 그쪽에서 처리할 것이다. 신고나 열심히 해라.”였다. 심각한 사안임에도 불구하고 이모티콘을 쓴다던가 “에고,”라는 말을 쓴다던가 하는 가벼운 답변을 남겼다. 이후로도 피해자가 남기는 멘션에는 답을 해주지 않고 다른 유저들의 멘션에는 답을 해주는 모습까지 보였다. 게다가 크게 이슈화되고 보니 이 유저는 스타크래프트 2 자유의 날개부터도 이런 비매너 플레이를 해 왔다.

그렇다면 의구심이 들 수 밖에 없다. 블리자드에 신고한 내역, 정말로 처리가 되고 있긴 한건가? 혹시 오버워치 극초기에 이미지 메이킹 하느라고 일시적으로만 신고 내역 처리를 한 것은 아닐까? 블리자드코리아는 이런 비매너 플레이, 악성 메시지를 심각하게 받아들이지 않고 있는 것은 아닌가?

일단은 일부 유저들이 블리자드 본사에 블리자드코리아의 이런 실태를 알리기 위해 자료를 모으는 것 같다. 제발 비매너 플레이어 신고내역 빨리빨리 확인해서 계정 정지나 제대로 시켰으면. 그나마 대부분의 고등학생들 방학 끝나고 비매너 플레이어 수가 많이 줄긴 했지만 여전히 많다. 성인이라고 비매너 플레이어가 아예 없는 것도 아니니.

신고 정책의 신뢰도를 높이려면 내가 신고한 내역이 어떻게 처리되고 있는지 명명백백히 볼 수 있는 기능이 필요하다. 블리자드코리아의 이런 행태를 블리자드 본사가 빨리 깨닫고 이런 기능 좀 만들어 줬으면.

아, 그리고 일반 토론장 역시 관리가 제대로 안 되고 있는 모습이 많이 보인다. 크게 이슈화된 스레드는 모니터링을 하고 있는 듯 보이나, 눈쌀이 찌푸려지는 글들이 매우 많다. 이런 글들을 정리하지 않는 블리자드코리아가 정말 제대로 일하고 있다고 보여지냐면 난 아닌 것 같다. 욕설 필터링이야 기본 구현되어 있는 것 같으니 별 상관 없다고 생각할 지 몰라도 허구한 날 이 캐릭터 상향해달라, 이 캐릭터 하향해달라 하는 징징글은 물론이고(물론 징징글은 올려도 별 문제가 없긴 하다. 이걸 도배하니까 문제지.) 다른 사람을 비방하는 글들도 많이 보인다. 게임 뿐만 아니라 토론장도 별 신경 안 쓰는 것 같음.

+ (2016. 08. 27) 블리자드코리아가 각종 비매너 채팅 상습범을 처리하지 않는다는, 또는 처리하지 않는 듯한 모습을 보이는 제보가 속속들이 나타나고 있다. 거기에 블리자드 본사는 우리나라 사람들이 블리자드코리아에 문제가 있다며 남긴 문의에 계정이 미국 계정이 아니므로 한국지사쪽에 문의를 남기라는 매크로 답변만 보내왔다. 블리자드 자체가 문제가 있는 것도 같다.

++ ( 2016. 08. 27) 원 문의자에게 온 공식 답변도 가관이다. 월요일에 보낸 문의를 트위터 이슈 터지고나서 겨우 답변해줬는데 문의 자체를 제대로 안 읽어보고 매크로 답변 함.