허형준
원하는 지역 드래그 해서 범위 설정해주면 주변 빌딩을 3D로 생성해줍니다. 생성된 지도는 GLB 3D 파일로 다운로드 가능합니다. 그리고 오픈소스로 공개했으니 궁금하신 분들은 깃헙 참고해주세요.
GitHub: https://github.com/cartesiancs/map3d
허형준
원하는 지역 드래그 해서 범위 설정해주면 주변 빌딩을 3D로 생성해줍니다. 생성된 지도는 GLB 3D 파일로 다운로드 가능합니다. 그리고 오픈소스로 공개했으니 궁금하신 분들은 깃헙 참고해주세요.
GitHub: https://github.com/cartesiancs/map3d
허형준
요 근래 오픈소스 하면서 재미있는 나날을 보내고 있습니다.
사실상 글로벌 서비스이기도 하고요 소셜미디어나 메일로 질문도 종종 오곤 합니다.
아무래도 영상편집 프로그램이 오픈소스화 된 사례가 많지 않아서이지 않을까 싶습니다.
이제 1000개를 목표로 하고 있습니다.
최근에는 WebGL로 크로마키와 블러 필터를 구현하기도 했고요. 렌더링 엔진도 갈아엎었습니다.
지금은 프리뷰쪽 손보고 있는데 이쪽 코드가 2500줄이라(...)
미칠것 같습니다. 너무 재밌어요.
궁금하신 분들은 아래 링크에 올려두었습니다.
*저도 몰랐는데 8k 편집도 가능하더라고요.
허형준
그게 될까? 반응이 압도적이었다. 일단 가장 설득이 어려운 사람인 '나'를 설득하는데 꽤 오랜 시간이 걸렸고, 아이템이 뭔데?라는 질문과 '신기하다' 정도. 그게 꼭 오픈소스가 아니어도 괜찮은거 아닌가 라는 반응도 있었다.
아이템은 흔해 빠진 평범한 영상편집 소프트웨어. 당장 숏폼을 생성해주는 SaaS, 무료 영상 편집 프로그램등. 이미 쓸만한 서비스는 널려있기에 거의 레드오션에 가까운 시장. 근데 오픈소스로는 한 번도 만들어진적이 없네? 아. 이거다! 하고 개발중이었던 영상편집 소프트웨어를 오픈소스로 공개했다.
데모 영상도 없이 빈약한 설명과 작은 스크린샷 하나로 공개했고 반응은 좋았다. 물론 시장 반응이 아니라 개발자 반응. 대부분 SaaS가 범람하는 프론트엔드 진영에 놀라운 성과를 보여주었다며 좋은 반응을 보였다. 보통 그러한 반응 중 대부분은 스타수에 비례하는데, 아직 마케팅을 잘 하지 못해 170개 정도 얻은 상태다. 물론 첫 번째 목표가 100개 였기에 목표 달성에는 성공했고 두 번째 목표인 1k는 아직 멀었다.
BM은 AI 자동자막. Self-hosted와 Cloud 옵션을 두어 선택 가능하도록 구성하고 처음에는 높은 가격으로 가겠지만 점점 가격을 내릴 생각이다.
솔직히 이게 될지는 모르겠다. 오픈소스라는게 일종의 신념이기도 하고 돈은 최소한의 생활비와 운영 비용만 있으면 되니까. 사업의 스케일을 키우는것 보다 많은 사람들이 내 비전에 공감하고 수 많은 개발자들이 오픈소스로 비즈니스를 해서 기존의 클로즈드 소스로 운영하는 개발사들의 점유율을 무너뜨리는게. 그럼으로 소비자 효용과 주권을 다시 가져오는 변화가 필요하다고 본다.
그리고 오픈소스로 빅테크를 만드는 꿈도. 아직 가지고 있다.
허형준
지금 3번째 리팩토링 중입니다. 몇 년 전 싸놓은 스파게티 코드 때문에 좀 많이 치우고 있지만 어느정도 정리가 끝나가서 이렇게 공개해봅니다.
조만간 코드사인 인증서 받아서 배포할 계획입니다.
electron / typescript 스택으로 개발했고 웹 프레임워크는 lit을 사용했습니다. 그렇게 막 흔하게 쓰이는 스택이 아니라서 사용하는게 좀 복잡하긴 했지만, 전반적으로 React와 비슷한 패러다임이 구축되어 있어 리팩토링 하는데 큰 어려움은 없었습니다.
궁금하신 분들은 아래 깃헙 올려두었으니 참고해보시면 좋겠습니다. (스타는 정말 큰 도움이 됩니다..!)
너겟
오픈소스 영상편집 소프트웨어
허형준
안녕하세요. 1인 스타트업 데벤트를 설립하고 지금까지 총 4번의 피봇을 겪은 소프트웨어 개발자 허형준 입니다. 얼마전 영상편집 프로그램 너겟을 서비스 종료하고 새 프로젝트인 마스커스를 공개했습니다. 원래는 유튜브 라이브를 위해 개인적으로 개발하던 프로젝트 였는데 반응이 괜찮고 생각보다 성능이 좋아서 실 프로덕트로 개발하려고 합니다.
마스커스는 웹 접속으로 간편하게 버튜버 컨텐츠를 만들 수 있는 플랫폼 입니다. 이 메이커로그에서는 마스커스를 소개하고 개발한 이유에 대해 살펴보겠습니다.
유튜브를 보다보면 얼굴을 공개하지 않고 컨텐츠를 올리는 사람들이 많습니다. 삼성 혹은 애플의 캐릭터를 쓴다던가, 언젠가 같은 3D 얼굴 캡쳐 소프트웨어를 사용한다던가, 아니면 아예 버추얼 유튜버 형식으로 진행하는 경우도 많습니다.
관련 제품을 조사해본 결과 대부분 유료이거나 설치형 방식이 많았습니다. 이 경우 사용자가 설치파일을 다운받아야 하는 단점과 가격부담이 존재한다는 불편함이 있었습니다. 잘될지 안될지도 모르는 컨텐츠를 위해 영상편집 프로그램이 아닌 서드파티 프로그램을 구매한다는건 시장 진입을 위한 방송인들에게 큰 부담이 될 수 밖에 없습니다.
저의 개인적인 니즈로 생각했던 문제가 자료조사를 해보면서 공동의 니즈가 있겠다는 가설수립으로 이어졌습니다. 간만에 괜찮은 아이템이 나왔다는 생각에 대략 MVP 정도만 만들어야 겠다고 생각했고 곧바로 실행에 옮겼습니다.
그럼 과연 이 시장에 도전할 정도로 시장 규모가 큰지 궁금해집니다.
한 마디로 요약하면 “생각보다 큽니다”. 최근에는 버튜버 시장규모를 21억 달러로 추산하기도 했습니다. 이는 영상편집 프로그램 시장규모인 5억 ~ 7억 달러에 비해 월등하게 높습니다. 물론 디지털 광고 시장규모인 6000억 달러, AI 시장 규모인 1000억 달러에 비해서는 현저하게 낮지만요. 그러나 아직 시장 진입자가 적고 상대적으로 마이너한 분야라는걸 감안했을때 높은 수치이긴 합니다.
(조선일보 이미지)
동시에 관련 제품의 수도 적습니다. 시중에 버튜버 전용으로 소프트웨어 출시된 제품은 11개 정도 입니다. 그마저도 웬만큼 사용하기 위해서는 과금이 필요하고 무료 버전에 대한 제한도 상당합니다. 대표적으로 VRChat의 경우 VR 장비가 필요, FaceRig(Animaze)는 비싸고, 멜리고는 트래커를 구매해야 합니다. 그외 프로그램의 경우 성능이 떨어지거나 스타일이 제한적이면서 모두 설치파일을 다운로드받고 구동해야한다는 단점이 존재합니다.
이러한 단점을 마스커스는 VR 장비 없이 웹캠만으로 트래킹이 가능하고, 최대한 무료 기능을 열여주고, 풍부한 스타일에, 웹에서 몇 번의 클릭만으로 기능하게 합니다. 앞선 프로그램의 단점을 해결했다고 볼 수 있습니다.
이 프로덕트를 만들면서 한 가지 주요한 원칙을 세웠습니다.
“내가 쓰기 편한 제품인가? -> 매일 불편함 없이 사용이 가능한가?”
우선 저를 기준으로 사용성을 평가하는게 옳은지에 대해 생각해봤습니다. 다른 스타트업은 MVP를 먼저 출시하고 지표를 확인해 제품을 개선하는데, 개인의 감각을 기준으로 사업성 여부를 판단한다는건 잘못된 판단 가능성을 높일 우려가 있습니다. 그러나 저는 캐즘 이론에 따른 후기 다수수용자에 속합니다. 대부분의 개발자나 창업가들이 얼리어답터, 초기 이용자에 속하는걸 보면 굉장히 보수적이라고 할 수 있습니다.
디테일이 떨어지는 부분, 특히 버튼을 클릭했는데 아무런 반응이 없는 경우 저는 답답함을 느낍니다. 성공/실패 여부만이라도 알려줬으면 하는데, 제가 경험한 대부분의 스타트업 제품은 이런 디테일을 고려하지 않았습니다. 그래서 이미 많은 사람들이 쓰고있는 안정적인 제품을 주로 사용하게 됩니다.
이러한 보수적인 집착은 프로덕트 개발에 도움이 됩니다. 최종 릴리즈 전 전체적인 흐름을 확인해보고 조금이라도 불편하다 싶으면 바로 갈아엎을 수 있습니다. QA 부분을 사용자에게 떠넘기지 않는 셈이죠.
특히 현재 개발중인 마스커스는 이러한 디테일이 떨어질 분기점이 다른 상용 프로덕트에 비해 많습니다. 기본적으로 웹 상에서 On Device AI를 돌릴정도로 브라우저 성능이 괜찮아야 하고 스마트폰에서도 동작하도록 매끄러워야 합니다. 더군다나 3D로 동작해야 하니 그래픽 리소스는 기본으로 차지합니다. 그러나 제가 사용중인 google의 facemesh 모델은 생각보다 무겁습니다. M1 크롬 환경에서 CPU 로드 100%를 찍는건 한 순간이죠. 이렇게 되면 얼굴 캡쳐를 하는 동안에는 유튜브를 킨다던가 음악을 듣는다는건 불가능합니다. 그러나 애초에 마스커스 + OBS(실시간 영상 송출) + 다른 크롬 탭 까지 지원해야하기 때문에 이러한 부분까지 고려한다는건 쉬운일이 아닙니다.
그래서 외부 카메라 기능을 추가했습니다. 스마트폰 카메라로 AI 기능을 분산시켜 성능을 대폭 개선했습니다. 사용자 환경의 성능이 떨어진다면 스마트폰의 성능을 빌려다가 사용할 수 있습니다.
버튜버 하면 따라다니는 불멸의 수식어가 있습니다. “거부감” 저도 조사하면서 약간의 거부감을 느꼈고 이를 해소할 방법을 지금도 찾고 있습니다.
삼성에서 개발한 ar이모지, 애플의 미모티콘. 모두 비슷한 기능입니다. 실제로 몇몇 유튜버들이 ar이모지를 기반으로 컨텐츠를 만들고 공유하고 있습니다. 2D 스타일을 기반으로 하는 버추얼 유튜버 스타일보다는 상대적으로 보편적인 캐릭터 스타일을 유지할 수 있고 따라서 거부감을 줄일 수 있습니다.
이에 마스커스는 Face 모드를 지원합니다. 사용자는 다양한 텍스처를 지정할 수 있고 외부에 3D 오브젝트를 추가해서 캐릭터를 꾸밀 수 있습니다.
저에게는 “개인이 독립적인 주체로써 사회/기술 전반에 얽힌 종속성을 제거한다” 라는 강력한 신념이 있습니다. 처음부터 프로그래밍을 시작한 이유도 초등학생때 “엑셀의 주요한 기능은 금방 만들 수 있을거 같은데 이걸 판매하네? 왜 무료로 공개 안하지?” 라는 생각으로 배웠습니다. 내가 쓰고있는 제품 혹은 기술에 종속되지 않았으면 하는 마음에서 였습니다.
마스커스는 이 신념에 일치합니다. 다른 유료 프로그램이 가진 제약과 가격 부담을 덜고 보다 많은 사람이 다양한 선택권을 가질때 비로소 종속성이 해결된다고 믿습니다. 컨텐츠 제작자들이 소프트웨어의 한계, 제품의 한계를 벗어나 자유롭게 창작할 수 있을때 비로소 문화가 만들어지고 인식이 변하는 법입니다.
또한 마스커스의 기술은 대부분 오픈소스로 구성되어 있습니다. 3D 표현은 ThreeJS로, AI 랜드마크 인식은 Google의 Facemesh API로, 버튜버 모드는 pixiv의 three-vrm 오픈소스로 개발했습니다. 조금만 공부하면 누구나 개발할 수 있는 기능들이고 앞으로는 AI 기술 발전으로 쉽게 개발이 가능하다고 생각합니다. (기술 관련해서 질문이 있으시다면 언제든지 환영입니다.)
@전예찬 님께서 디스콰이엇에 올려주신 “3D 기술 기반 스타트업의 특징" 이라는 제목의 메이커로그에는 다음과 같은 내용이 있습니다.
3D와 AI를 결합한 기술은 일반적인 대기업이 쉽게 따라하지 못합니다.
3D 모델링, 텍스쳐링, 리깅, 애니매이션, AI 기술, 게임엔진 등 각 분야의 노하우가 집약되어 하나의 완성된 기술이 나오기 때문입니다.
맞는 내용입니다. 그러나 그렇다고 해서 기술에만 집중하면 안된다고 생각합니다. 저는 그동안 기술에만 집중했고 그 과정에서 아무도 쓰지 않는 제품을 만들어 냈습니다.
처음에 MVP 제품을 만들며 기술에 매몰되지 말자고 다짐했습니다. 그동안 실패했던 제품 모두가 뛰어난 기술, 안정성에만 집중하다보니 정작 고객에는 집중하지 못하고 서서히 잊혀져 갔습니다. 아무리 좋은 기술이라고 해도 아무도 쓰지 않는다면 의미가 없습니다. 고객에 집착하지 않는 기업은 도태되기 마련이고 마찬가지로 관련 기술 역시 잊혀지고 사장될 수 밖에 없습니다.
마스커스는 아래 링크에서 누구나 10초안에 체험해볼 수 있습니다.
Maskers
3D 얼굴 모션캡쳐 플랫폼.
허형준
영상에 떠있는 실시간 채팅을 보다보면 시선이 분산됩니다. 정보 습득 하려고 들어왔는데 정작 영상은 안보고 다른 사람 의견을 보게 됩니다. 결국 이 영상에 대한 고유한 인사이트는 얻지 못하고 다른 사람 의견에 동조하기 쉽습니다.
저는 몇 개월 전부터 익스텐션 하나 만들어서 이렇게 보고 있습니다. 여러분들 생각은 어떠신가요?
허형준
인생 첫 라이브 코딩 후기 : 야추 다이스(yacht dice) 3D 게임 만들기
일단 내 코딩 실력을 객관적으로 파악해볼 수 있었다. 저정도 기능을 5시간 걸려서까지 만들 필요가 있었는지 반문해보며, 2시간 안에도 충분히 구현해볼 수 있다는 생각이 들었다. 설계의 중요성을 체감했고 지금처럼 직관과 감에만 의존해서 개발하기에는 무리가 있다는 결론을 내렸다.
시간 절약에 도움이 되었다. 아마 라이브코딩을 하지 않고 편하게 개발했으면 이틀 넘게 걸렸을거라 생각한다. 특히 저 프로젝트는 내 아이디어 노트에 적혀있는 우선순위가 가장 아래에 있는 프로젝트였다. 당연하게도 사전 설계나 준비가 없었고 급하게 개발할 목적으로 만들었다.
내 시간을 어디에 활용하는지 검증해볼 수 있었다. 특히 3시간이 넘는 시간동안 쉬는시간을 10분간 가져갔는데, 아마 앞으로는 50분마다 의무적으로 쉬는걸로 해야겠다. 중간중간 집중력 저하 기간이 왔었고 이번 라이브코딩에서는 강제로 집중하다보니 결과적으론 시간이 더 길어지는 현상이 나타났다. 앞서 언급했듯 2시간 짜리 분량이다.
누군가가 보고있다는 긴장감을 줄 수 있었다. 집에서 코딩할때는 그런 긴장감을 전혀 줄 수 없다. 아마 나중에 대회나가서 집중할때에 도움이 될 듯 싶다.
수학 부분은 여전히 힘들다. 쿼터니언 값을 가지고 주사위 값을 계산하는 부분을 가져다 썼다. 조금만 노력하면 빠르게 공식을 만들 수 있지만, 시간 내에 핵심 기능을 만들어야 한다는 압박감에 시중에 나와있는 코드를 대입해서 문제를 해결했다. 프로그래머로써 부끄럽다.
이전에 만들어놓은 보일러 프로젝트를 요긴하게 사용했다. 보통 수학 문제를 풀때 공식을 미리 적어두듯이 프로그래밍도 마찬가지다. 사전에 만들어둔 보일러 프로젝트가 없다면 초기 세팅에 시간을 빼앗긴다.
그럼에도 마무리짓지 못했다. 사실 socket io 연동해서 모바일 컨트롤러를 구현하는건 그렇다 해도, 디자인하고 물리엔진까지는 끝낼 수 있다고 생각했다. 그러나 앞서 언급한 쉬는시간 분배 문제로 급속하게 피로가 몰려왔고 수학 파트등 어려움이 겹쳐 사전에 끝내지 못했다. (cannon es의 불친절한 문서로 인한 시간 낭비는 덤.)
+ 랜덤 난수 생성에서 범위 공식을 까먹었다. 첫 라이브라 긴장한 탓도 있겠지만, 와 이걸 까먹네 하는 생각으로 인해 충격받았다. 역시 기초가 중요하다.
종합하자면, 스스로 꽤 잘 한다고 자부했으나 기초가 중요하다는 생각을 다시끔 했다. 코딩 스킬, 시간 분배 측면에서 도움을 얻었고 반성했다.
집에서 공부하는 취준생이나 주니어 개발자들은 엄청난 도움이 될 것 같다. 나태해질 수 없는 환경을 만들어두고 제한 시간 내에 공부하면 실력 향상에 도움이 되는데, 라이브 코딩이 그 대안일듯 하다.
코드가 궁금한 분들은,
허형준
소프트웨어 개발자 허형준입니다. 주로 프론트엔드를 개발하고 있고 최근에는 ThreeJS, WebXR, ML in JS 기술에 관심이 있습니다.
최근에는 영어 학습 앱 https://inlander.app/ 와 3D 얼굴 모션 캡쳐 소프트웨어(조만간 배포)를 만들고 있습니다. 어떤 제품이 성공적일 수 있는지 계속 테스트 해봅니다.
블로그에 글을 쓰고 있습니다. https://velog.io/@dipokalhhj 에는 기술 칼럼을 주로 쓰고있고 여기(디스콰이엇)에서는 메이커를 주제로 쓰고 있습니다.
신념이 있습니다. "모든 사람이 어떠한 상황에서도 방해받지 않고 정진할 수 있어야 합니다." 좋은 신념은 아닙니다. 누군가에게 중대한 피해를 입힐 수 있는 위험한 신념으로 변질될 수 있습니다. 그래서 늘 중간을 지키려 합니다.
이기적인 이타주의자 입니다. 다른 사람의 문제를 돕는것에서 희열을 느낍니다. 이타주의자 마인드 아니냐고요? 희열은 개인적인 감정입니다. 희열을 느끼기 위해 다른 사람을 돕습니다.
원래 페이스북을 사용하다가 망한거 같아서 이사하려고 합니다. 링크드인 특성상 비즈니스 관련 분들이 다양하게 계시기 때문에 정보를 얻고 공유하는데에도 이점이 있다고 생각합니다. 링크드인에서는 자기계발/스타트업 관련해서 포스트를 작성할 생각입니다.
클럽 가입해놓고 소개글을 안 적었네요. 지금이라도 올려봅니다. 편하게 1촌신청 해주세요 :)
허형준
긴말 안하겠습니다.
줏대가 없으면 남이 만든걸 배끼게 됩니다. 단순히 버튼 디자인 하나 하는데도 padding 값을 어떻게 넣어야할지 flex에 gap을 어느정도 넣어야 클릭하는데 문제가 없을지, 고민에 고민을 거쳐 완성됩니다. 그렇게 노하우가 쌓이다보면 자신만의 색채가 만들어지고 예술이 됩니다. 카피는 그 예술성을 싸그리 무시해버리는, 부단한 노력과 창작의 결과물을 비웃는 행위입니다.
좋습니다. 아이디어에 저작권은 없습니다. 독창적인 기술력으로 실현해 특허에 등록되지 않는 이상 저작권법으로 보호되지는 않습니다. 따라서 공공의 영역에 해당하는건 맞는말입니다. 그러나 공유지의 비극이라는 말이 있듯이, 개인의 이익을 위해 남용되게 되면 자원의 고갈을 야기하게 됩니다.
아이디어도 마찬가지입니다. 내가 아무리 좋은 아이디어를 만든다 한들 그냥 배끼면 되는데 라는 생각으로 접근하게 되면 그 누가 새로운 아이디어를 만들려 하겠습니까? 창조성은 무너지고 무수히 많은 카피의 시대로 가게 될 수 있는겁니다.
카피가 정당화되고 보편화되지 않는 사회, 건전한 메이커 문화가 만들어졌으면 좋겠습니다. 글 마치겠습니다.
허형준
거의 대부분의 사람들이 소셜미디어를 사용한다. 아니 사용 당하고 있다. 능동적이지 않은 이용은 무분별한 남용에 가깝다. 기업은 사용자를 중독시키기 위해 추천 알고리즘을 개선하고 이 사실을 망각한 사용자는 도파민을 쏟아내며 소셜미디어에 빠져들게 된다.
몇 년전 필자도 소셜미디어 중독이었다. 거의 매 시간 아무런 목적 없이 피드를 스크롤하거나 무기력하게 있었다. 그렇게 스크롤하던 와중 넷플릭스의 소셜 딜레마라는 다큐를 시청하게 되었다. 그러곤 엄청 충격먹어서 네이버 계정, 페이스북 계정을 포함한 53개가 넘는 온라인 계정을 하루아침에 삭제했다. (극단적이라고 생각한다면 오해다. 시청하기 몇 개월 전부터 안쓰는 계정 위주로 지우고 있었다)
그러나 6개월전 소셜미디어를 다시 사용하겠다고 마음먹었다. 이번에는 분명한 목적을 가지고 계정을 만들었다. 페이스북은 인맥 교류(개발자, 비즈니스, 정보보안). 인스타그램은 일방적인 개발 기록 공유. Velog는 개발 지식 공유. 디스콰이엇은 메이커 공유. 트위터는 영어로만 이용. 각각의 플랫폼을 나름의 목적에 부합하게 설정한 후 교류해가기 시작했다.
이 포스트에서는 필자가 경험한 소셜미디어를 잘 사용하는 5가지 원칙을 공유해보려 한다.
목적없는 이용은 남용을 낳는다. 쇼핑을 예로들어보자. 마트에 들러 마음이 시키는대로 물건을 구매하다보면 어느센가 장바구니가 꽉 차있던 경험이 한 번 쯤 있을거다. 무엇을 사야할지 모르다보니 물건을 보는 순간 “아 이거 필요한건가” 라는 생각이 들고 별다른 고민 없이 구매하게 된다. 이같은 충동구매는 내가 마트에 왜 왔는지 분명한 목적이 없을때 자주 일어난다.
소셜미디어 사용도 마찬가지다. 페이스북, 인스타그램, 유튜브, 틱톡과 같은 매스미디어는 사용자의 관심을 끌기 위해 디자인되어 있다. 아무런 목적 없이 피드를 둘러보고 숏폼 컨텐츠를 소비하다보면 거기에 중독되기 마련이다. 내가 왜 소셜미디어를 사용해야 하는지 고민해보자.
필자는 커리어 향상, 대외 신뢰도 구축 목적으로 소셜미디어 사용을 재개했다. 즉 커리어 향상 목적에 부합하지 않는 경우 미디어를 사용하는데 있어 자기검열할 수 있었다. 다만, 목적만으로는 소셜미디어를 올바르게 사용하기 힘들어 아래 4가지 원칙을 더 추가했다.
소셜미디어에는 수 많은 기능이 있다. 그중에서 일반적으로 숏폼이라고 불리는 컨텐츠는 틱톡의 성공 이후 여러 미디어에서 나타나는 기능이다. 그러나 숏폼컨텐츠는 강력한 중독을 유발하고 정보의 가치도 없는 무쓸모한 채널이다. 따라서 사용범위를 정해 중독 요소를 완화하는 작업이 필요하다.
인스타그램을 예시로 들면 피드 기능만 사용하고 나머지는 사용하지 않는 식으로 제한하는 방법이다. 이렇게 범위를 미리 정하면 플랫폼 통제력을 키울 수 있다. 사용 범위를 제한할때는 플랫폼 기능, 교류대상 정보 분야로 나누면 편하다. 플랫폼 기능에는 “피드, 그룹, 친구(팔로워)”가 있을 수 있고 교류대상 분야는 “비즈니스, 디자인, 개발”과 같은 산업 분야로 표기한다.
더불어 중독적인 기능을 아예 사용하지 않는 방법도 도움이 된다. 추천 알고리즘이 동작하는 기능을 애드블록으로 막아버린다던지, 매 순간 기능을 사용할때 의식적으로 행동해서 차단하던지 해야 한다. 이런 행위는 높은 수준의 자기검열을 요구하고 정신자원을 크게 소모하는 일 임으로 매 순간 사용범위를 완벽하게 체크하는건 불가능에 가깝다.
아래는 필자가 소셜미디어 사용 범위를 제한한 표다. 링크드인과 같이 특정한 목적을 가진 미디어가 아니라면 한 번 정리해보는것도 도움될거라 생각한다.
페이스북 : 피드(게시글 올리기), 그룹 | 비즈니스, 개발, 정보보안
인스타그램 : 피드, 팔로워 | 개발
유튜브 : only 구독자 영상 | 자기계발, 개발, 학문(수학, 영어, 공학…)
카카오톡 : 채팅, 오픈채팅 | 마케팅 도메인 분석(오픈채팅), 업무
슬랙 : 채팅 | 업무, 개발
디스코드 : 채팅 | 친목
링크드인 : 인맥, 피드 | 비즈니스, 마케팅
하지만 앞서 언급한 사용범위를 좁혀도 강제력이 부족하다. 플랫폼 기업은 어떻게든 그 기능을 사용하려고 만들기 때문에 사용을 안할려고 해도 안할 수가 없다. 유튜브의 경우 검색을 하더라도 중간중간 추천 알고리즘에 기반한 영상이 뜨고, 영상을 재생하면 사이드바에 추천 영상이 또 제공된다. 즉, 영상만 보고 싶어도 영상만 볼 수 없는 구조가 만들어진다.
이때 정보를 필터링할 기준이 있으면 중독 해소에 도움이 된다. 바로 모든 정보를 생산자원으로 보는 거다. 정보를 생산 자원으로 이용할 경우 정보 습득 행위는 창조의 밑거름이 된다. 김영하 작가는 “작가는 글을 수집하는 사람이다” 라고 말하며 좋은 글을 수집해야 나중에 글을 쓸때 글감이 된다고 설명한다. 소셜미디어의 컨텐츠를 적절하게 활용하면 세상의 트렌드를 이해하고 이를 바탕으로 창조하는데에도 도움이 된다.
또한 생산자는 소비 조차도 생산으로 본다. 유튜브를 사용하는 사람을 예로들면 크게 2가지 부류로 나타낼 수 있다. 정보를 시청하는 사람(시청자)과 생산하는 사람(유튜버). 두 부류 모두 유튜브를 사용하지만 정보를 받아들이는 입장은 다르다. 대부분의 시청자는 정보를 단순 유흥거리로 치환하거나 분명한 목적 없이 일방적으로 받아들인다. 영상에 표시된 정보를 비판적으로 처리하는데에는 큰 정신자원이 소모되고 따라서 굳이 비판적으로 받아들일 필요성을 느끼지 못한다. 반면 유튜버는 자신 채널의 성장을 위해 경쟁 채널 영상을 분석하며 정보의 소비 조차 생산 수단으로 치환할 수 있다.
이게 가능한 이유는 우리의 뇌가 선택 지원 편향을 가지고 있기 때문이다. 이 편향은 한 번 의사결정을 내리면 선택의 긍정적인 부분을 더 많이 생각하고, 선택에 반하는 증거를 무시하는 편향이다. 유튜브를 시청할때 생산 중심적으로 시청하는게 내가 생산적인 사람이라는 근거가 된다. 그러나 이 편향을 잘 못 활용하면 유튜브 시청만 하면서 생산적인 사람이라는 착각을 불러일으키기 때문에 영상을 시청하고 나서 꼭 기록을 남겨두자.
앞서 목적 제시로 방향성을 수립하고 사용범위 제한으로 중독 요소를 배제했다. 동시에 모든 정보를 생산자 중심으로 관찰하여 미디어에 중독되더라도 생산적인 방향으로 이끌었다. 이제 목표를 수립하여 행동할 차례다.
정보 생산을 중심으로 사용하더라도 목표가 없으면 흐지부지 된다. “1주일에 한 번 씩 글을 작성하기” “링크드인 촌수 100명으로 늘리기” 같은 방법으로 목표를 세울 수 있다. 이같은 분명한 목표가 있으면 소셜미디어를 방문할때 알고리즘에 휩쓸리지 않고 바로 목표 달성을 위해 매진할 수 있다. 또는 링크드인 챌린지, 스터디 그룹과 같이 강제력을 추가해 목표를 달성해보려 노력해보자.
마지막 원칙은 꼭 지켜야 한다. 필자가 페이스북을 사용할때는 꼭 집에서 데스크탑으로 작업하는데, 이때 다른 기기에 로그인하는걸 방지하기 위해 되게 복잡한 random 비밀번호를 사용한다. 이 원칙을 지키지 않으면 시도때도 없이 스마트폰을 키고 앱을 실행하게 되는 현상이 나타난다.
이는 소셜미디어 특성상 수 많은 알림으로 범벅되어있기 때문이다. 방해받지 않는 생활은 작업에 몰입도를 높여주고 일상에 행복을 가져다주는 중요한 요소다. 인간의 뇌는 멀티태스킹에 유리하지 않다. 한 번 방해받으면 하고있는 작업의 흐름이 끊기고 다시 작업을 재개할때 효율성이 떨어진다.
앞선 5가지 원칙을 필자의 페이스북 사용으로 투사해보았다.
플랫폼 : 페이스북
이용 목적 : 비즈니스, 기술, 정보보안 분야 정보공유
사용 범위 : 게시글 작성, 내 게시글의 댓글, 내 프로필, 페이스북 그룹 | 비즈니스, 개발
목표 : 페이스북 친구 500명
사용 기기와 장소 : 데스크탑과 집
여러분들은 소셜미디어를 어떻게 사용하시고 계신지 댓글로 알려주세요. 글에 대한 비판과 피드백도 환영합니다.
허형준
개인적인 경험에 의거해 쓰인 짧은 글입니다. 논리적 완결성이나 일반화는 무시했습니다. 댓글로 여러분의 생각과 경험을 알려주세요. 비판도 환영합니다.
학생이라고 밝힌다면 거친 표현은 많이 사라진다. 그러나 거친 피드백이 있어야만 진정 개발자로 성장할 수 있다고 믿는다. 필자가 적은 글 중에서 React를 더 이상 쓰지 말아야 합니다라는 제목의 글이 있다. 상당히 과격한 제목이고 글의 내용도 급조한 면이 없지않아 있다. 댓글을 봐도 분위기가 좋지 않음이 보인다. 그러나 만약 여기에 고등학생이 쓴 글이라고 서문을 달았으면 어땠을까.
필자도 몇 번 이용해봤다. 마찬가지로 조회수는 잘나왔지만, 그때뿐이다. 그 이상의 성장과 영예는 학생 개발자에 안주하지 않고 엔지니어라는 본질에 집중할때만 이루어진다.
시기질투는 무시무시한 적을 만들어내는 감정중 하나다. 모두에게 고등학생이라는 공통된 시절이 있었기에 제 3자에게는 무의식중에 패배주의와 적대감을 심어줄 수 있다. 특히 같은 나이대의 사람들은 더욱 그렇다.
고등학생이라는 타이틀이 주는 불완전함은 신뢰가 필요한 제품이나 전문적인 칼럼에 독이 된다. 예로 Q&A를 하는데 질문자가 대학생이고 답변자가 고등학생이라면 그 내용을 무작정 신뢰하지는 않을거다. 말 그대로 둘 다 배우는 학생이니까 말이다.
지금 내가 고등학생 신분에 만족한다면, 앞으로는 상대적으로 불만족하며 살아갈 날이 많을텐데. 그때마다 과거의 영광에 안주할 수는 없는 노릇이다.
그리고 이 포스트를 작성한 이유는 곧 졸업하기 때문이다.
허형준
그냥 레딧에 대충 글 올렸는데도 1000명넘게 조회했다. 물론 실질적인 참여율은 저조하지만, 적어도 국내 웬만한 커뮤니티에 올라가는 조회수보다 압도적으로 많다. 이게 영어의 힘인가.
허형준
디스콰이엇은 글 공유에 적합한 플랫폼이 아니라고 봅니다
필자의 경우 글을 작성해두고 여기저기 공유하고 다닌다. 그러나 디스콰이엇은 공유할때마다 비 로그인 사용자에게 로그인을 강제해서 필자는 디스콰이엇 링크를 공유하지 않는다. 대신에 디스콰이엇에서만 글을 쓰거나, Velog에 쓴 글을 그대로 복사하거나 한다.
필자는 각 글쓰기 플랫폼마다 글이 겹치지 않아야 한다는 일종의 규칙이 있다. 그러나 디스콰이엇에 쓴 글은 다른 사이트에 공유할 수 없으니 디스콰이엇에 맞는 글을 올려야 한다는 부담이 있다.
개인적으로 디스콰이엇에 "공개기능"이 있었으면 좋겠다. 링크 공유에 적합한 게시글 말이다. 비 로그인 사용자에게 로그인을 해야한다고 말하지 않는 게시글. 그리고 "공개 콘텐츠", "독점 콘텐츠"로 분리해서 게시글을 나눈다면 괜찮지 않을까.
ps.
필자 또한 프로덕트를 만드는 사람이기에 디스콰이엇의 디테일이 보인다. 사용자 중심으로 제품을 디자인한게 눈에 보인다. 단순히 글의 임시저장 기능을 만들때도 몇 초간 텀을 두고 저장이 되는데 그 초가 짧으면 서버에 부담이 되고, 길면 사용자가 나갔을때 저장이 안되는 문제가 발생한다. 디스콰이엇은 그 점에서 딱 적당하게 업데이트 주기를 분할했다는 생각이 든다.
허형준
프로그래밍은 빈 캔버스에 그림을 그리는 행위와 유사하다. 아무것도 주어져있지 않지만, 각각의 기능의 세부 구현요소와 관계, 의존성 요소를 생각해가며 유기적으로 개발해야 한다. 보통 프로그래밍을 수학처럼 딱딱하고 정형화된 과정으로 생각하는 사람도 있지만 사실은 그렇지 않다. 많은 부분에서 융통성을 발휘해야하는 부분도 있고 이전과는 다른 패러다임을 적용하거나 Low Level로 내려가야 하기도 한다.
- 포스트의 내용 중
https://velog.io/@dipokalhhj/1000%EC%BB%A4%EB%B0%8B-%EB%8B%AC%EC%84%B1
허형준
잭 웰치의 마지막 강의 173p 에서 기업의 위기대응 원칙이 서술되어 있다. 웰치가 제안한 4가지 원칙은 다음과 같다.
잭 웰치는 “좋은 시절에 친구와 지지자를 확실하게 확보해 두면 나쁜 시기에 당신 편에 서서 목소리를 높여 줄 옹호자가 있을 가능성이 그만큼 높아진다.”고 하며 평판의 중요성에 관해 서술했다. 인간관계에서도 남에게 잘못한 만큼 나에게 돌아온다는 격언이 있듯이, 남에게 함부로 하지 않고 좋은 이미지를 가지도록 노력해 보자.
바야흐로 소셜미디어의 시대다. 인터넷 채팅의 시대에서 대화의 일원이 되어 함께 목소리를 내야 한다. 우리의 적은 다양한 매체를 통해 험담을 들어놓는데, 우리가 맞불을 놓을 수 없다면 난감한 상황이 펼쳐진다. 따라서 직접적으로 메시지를 전달할 공간이 필요하다.
소셜미디어는 내 본연의 의도를 확실하게 전달하는 도구로써 작용한다. 언론이나 방송인에게 의존하지 않고 독립적으로 출판하면 위기 상황에 신속하게 대응할 수 있다.
해고는 관리자의 잘못이다. 직원의 문제가 아니다. 직원이 회사를 떠난다는 이유로 제대로 대우해 주지 않고 떠나보내면 그 직원은 모욕감을 갖기 마련이다. 웰치는 해고에 대해 “해고된 직원이 앙심을 품고 떠나지 않도록 온갖 노력을 다해야 한다.”고 말한다.
위기가 닥치면 그 위기가 지속된다고 생각하기 십상이다. 그러나 상황은 점점 좋아지고 모든 논란은 사그라들기 마련이다. 물론 쉽게 좋아지지는 않는다. 조직 개편을 단행할 필요도, 비판 의견에 대한 반격도 필요하다.
위기는 피할 수 없지만, 대비할 수는 있다.
허형준
지금 와서 생각해보니 기술적으로 치중했던 부분이 없지 않아 있다. 게임의 본질인 재미의 요소를 고려하지 않고 만들었다는게 지금 와서 돌이켜보니 실책이었다. 그러나 개발할 당시에는 일단 만들고 보자라는 생각이 강해서인지 게임의 본질적 요소보다는 기술적 구현 가능성에 중심을 두었다.
아무튼 이 포스트는 게임 기획에 대한 내용은 아니다. 기술적 한계 내에서 최상의 그래픽과 성능을 뽑아내기 위한 기술적 요구사항에 가깝다.
-포스트 중
몇 일 전 공유드린 양궁게임을 개발하며, 기술적인 내용을 제 Velog에 공개했습니다.
허형준
ThreeJS로 개발했고 React/TypeScript로 UI를 구성했습니다.
보통 게임 개발하고 웹 개발이 구분되어있는 경우가 많은데, 사실 웹으로 게임 개발 충분히 가능합니다. 게임 만드는거 생각보다 재밌습니다.
한 번씩 매너리즘 올때 이런 미니게임 만들면 인생이 즐겁더라고요.
허형준
아날로그 감성. 시간에서 나오는 멋. 모든게 빠르게 변화하는 디지털 시대 이전, 느리게 살아갔던 이들의 삶. 아날로그 제품은 오늘날에도 자주 그리고 널리 쓰이고 있다. 때로는 편리함 때문이거나 과시하기 위해서, 단지 멋있거나 역사적인 이유로 아날로그 제품을 찾는다. 그리고 아날로그만이 주는 감성은 디지털로 복제할 수 없는 고유한 느낌이다.
이 포스트에서는 아날로그적 제품이 아직도 사용되는 이유를 정리한다. 먼저 아날로그 제품이 가지는 특징과 범위를 정의해보자.
사람의 힘을 써야 동작하는 감성 예) 태엽 시계
전력이나 특수한 상황에서 쓰이기 위해 예) 라디오
디지털 보다 편리하기 때문에 예) 종이책, 아날로그 시계
소유욕 및 희귀함 예) 빈티지 자동차, LP판, 필름 카메라
향수병 예) 오래된 아이폰
등 아직도 많다. 특히 디지털이 절대 따라오지 못하는 분야인 독서는, 책으로된 감성과 소유욕이라는 인간의 원초 욕구를 자극하기 때문에 그렇다. 반면 디지털의 대명사인 소프트웨어는 소유욕을 자극하지 못한다.
필자도 소프트웨어를 개발하는 사람이지만, 아직까지도 소프트웨어를 만들거나 사용하면서 소장하고 싶은 욕구는 단 한번도 든적이 없다. 어쩌면 모든게 픽셀에 불과하다는 사실을 알아서인가. 이러한 이유는 NFT 같은 디지털 자산의 몰락으로 쉽게 설명되기도 한다.
먼저 아날로그의 정의를 알아보면 다음과 같다.
Analog
신호의 처리를 연속적으로 나타낸것. 디지털의 반대 표현이다. 또는 LP판, 기능이 적은 물리적인 제품 또는 고전적인 기술을 뜻한다.
이 포스트에서는 일부 디지털 제품도 아날로그 제품으로 표현된다. 이는 소프트웨어와 대비해 쓰인 표현으로 원 아날로그 제품의 정의에 반하기는 하지만 아날로그의 특성을 가지고 있으므로 아날로그 제품으로 표기된 점 양해 부탁드린다.
소유욕은 물질적인 욕구를 말한다. 소유욕의 전제 조건은 내 손에 잡히는 실질적 물건이 있고 오감으로 느껴야 한다. 그런데 왜 디지털에서는 소유욕이 없다고 느끼는 걸까. 디지털 세상에서도 오감을 충분히 느낄텐데 말이다. 아니면 아직도 빌게이츠가 살았던 시대와 같이 소프트웨어는 하드웨어의 부속품이라고 생각하는 문화 때문에 그런걸까. 의문이다.
우선 소프트웨어가 줄 수 있는 오감에 대해 알아보자.
가장 눈에 띄는건 단연코 시각이다. 버튼 이벤트, 폭죽 효과, 블러등 사용자 인터렉션에 시각적 요소는 중요하다. 인류가 다른 동물에 비해 시각이 발전하면서 본능적인 욕구 외에 다른 사람을 의식하고, 환경을 자세히 관찰하게 되었다는 진화심리학적 이유도 있다.
다음으로 촉각이다. 촉각은 스마트폰, 키보드등의 외부 기기를 통해 내부 스크린에 반영되는 1차적 요소다. 촉각이 있으면 시각이 있다. 스티브 잡스가 아이폰을 만들때 스크린을 반드시 유리로 만들어야 한다고 주장했던 일화처럼, 즉각적인 촉각은 소프트웨어를 제어하는데 있어 가장 중요하다.
그리고는 청각이 있다. 스마트폰 타이핑 소리, 결제 승인 알람, 카카오톡 알림, 통화음등 이미 소프트웨어로 청각 자극은 충분히 충족 가능하다.
맙소사. 후각과 미각은 불가능하다. 사실 미각은 식품이 아닌 이상 쓸모없지만, 후각은 기억기관에 있어 가장 중요한 요소인 만큼 후각정보를 소프트웨어로 제공하지 못하는건 아날로그적 감성을 구현하기 위해 상당한 리스크가 된다. 우리가 어떤 익숙한 냄새를 맡았을때 관련된 장소가 가장 먼저 떠오르고 기억이 연상되는 것 처럼 후각은 기억에 있어 중요한 요소다.
반면 아날로그가 줄 수 있는 오감은 다음과 같다. 책을 예시로 들자면,
시각은 글자, 폰트 크기등이 포함된다.
청각은 책 넘기는 소리, 손가락으로 문지르는 소리등이 있다. 외에도 주변 환경에서 오는 산들바람 소리등도 함께 어우러져 한 공간에 있는 듯한 느낌을 준다. 즉, 환경과 단절되지 않고 연장선에서 경험하는 감각인 셈이다. 이 부분이 특히 중요하다. 스마트폰은 주변 환경과 단절되어 있다는 특징을 가지기 때문이다. (유튜브를 생각해보자. 어떻게든 당신의 이목을 끌려고 알고리즘이 발악하고 있지 않은가..!)
촉각은 종이 질감이 있고, 후각은 종이 냄새, 집이나 카페의 향기가 포함된다. 여전히 미각은 적용되지 않는다. 참고로 커피를 마시며 책을 읽으면 미각도 경험할 수 있는거 아니냐 반문할 수 있는데. 커피는 책과 별개의 인터렉션을 가진다. 즉, 커피를 마시기 위해서는 책 읽기를 끊고 마셔야 한다. 여기서는 주변 환경에서 오는 1차적인 감각만을 다룬다.
아날로그가 줄 수 있는 감각은 디지털에 비해 압도적으로 다양하다. 또한 디지털은 주변 환경과의 단절을 장려하는 반면 아날로그에는 그 어떠한 제약도 없다. 덧붙여 디지털에는 메뉴얼이나 룰이 존재하지만, 아날로그는 사용자 마음대로다. 이러한 아날로그의 감각적 요소가 소유욕을 자극하고 소비를 불러 일으킨다.
미션 임파서블 데드 레코닝 파트 1에는 인공지능 빌런이 해킹하지 못하는 아날로그 장비를 이용한다. 아날로그 위성, 타자기, 오래된 연식의 스크린으로 AI의 침입을 예방하는 모습을 볼 수 있다.
물론 실생활에서 이렇게까지 극단적인 상황이 필요하지는 않지만, 때로는 필요할때가 있다. 대표적인 예시가 수능 시계와 공부 타이머다.
수능에서는 모두가 시계를 지참해야 한다. 학교 시계가 맞지 않을 경우 학교의 책임이라 문제가 될 우려가 있어 개인이 지참하는 방식을 사용한다. 당연하게도 디지털 기능이 들어간 시계는 안된다.
공부 타이머의 경우 의아해할 사람도 있다고 예상해본다. 열품타와 같은 스마트폰 앱도 있고, 단지 시계앱으로 측정해도 되는건데, 심지어 공부 타이머의 경우 초기화될 위험이 있고 다른 친구들이 얼마나 공부하는지 측정이 안되는데 말이다.
그러나 공부 타이머는 그런 이유 때문에 쓰는게 아니다. 스마트폰을 멀리하기 위해 사용하는 도구다. 공부함에 있어 스마트폰은 욕망의 도구다. 인스타그램, 유튜브, 틱톡등 학생의 마음을 어지럽히기 위한 무수한 앱들이 즐비해있다. 이런 방해요소에서 완벽히 벗어나고자 아날로그 공부 타이머를 이용하는 것이다.
(여기서 디지털은 스마트폰이다. 아날로그는 아니지만, 스마트폰과 대비해 아날로그의 감성을 충족한다.)
아날로그 제품은 그 목적을 달성하기 까지 의존성이 적다. 가장 큰 의존성중 하나인 동력원은 사람이거나 작은 배터리 정도. 반면 디지털 제품의 의존성은 다양하다. 인터넷 연결이 필수이거나 각종 첨단 기술이 응용된다. 설정은 많고 쓸데없이 복잡하기만 하다. 충전식이기도 하고 스마트폰일 경우 앱 설치라는 과정도 필요하다.
여기서 말하는 의존성이란 원하는 기능을 수행하기 까지 걸리는 과정이다. 타이머를 키는 절차를 생각해보자. 아날로그 관점에서 타이머는 모래시계가 있다. 모래시계는 책상위에 올려두고 뒤집기만 하면 된다. 디지털의 경우 스마트폰 전원을 키고 시계앱에 들어가서 타이머 탭을 누르고 타이머 버튼을 클릭한다. 복잡하다.
목적을 달성하기 까지 의존성이 사람에게 있지 않으면 우리는 "서비스를 받는다"고 느낀다. 서비스를 받는 입장에서는 내 것이 아니라는 의식이 작용하고 이는 자연스레 소유욕이 작동할 수 없다. 단적으로, 스마트폰이 사라지면 타이머도 사라진다. 즉, 타이머는 1차적 소유가 아닌 부가적인 서비스에 가깝다.
이처럼 의존성이 많아지고 길어지면 그 거리에 따라 소유욕은 감소한다. 그러한 이유로 아날로그 제품을 선호한다.
오늘날 아날로그 제품은 디지털과 소프트웨어의 편의성에서 밀리고 있다. 그럼에도 여전히 아날로그 제품은 활용되고 있고 모든게 디지털 화면이 되지 않는 이상 아날로그는 우리 삶에서 필수 불가결한 요소로 남을 것이라 장담한다.
허형준
20세기 천재 물리학자 리처드 파인만에게는 독특학 학습법이 있었다. 오늘날 파인만 테크닉이라고도 불리는 학습법인데, 워낙 유명한지라 다들 들어보았으리라 짐작된다. 그래도 간략히 적어보자면 다음과 같다.
배우고 싶은 주제를 적고 목록화한다.
초등학생도 이해할 수 있는 언어로 설명한다.
설명하는데 빈 틈이 있으면 틈을 매우기 위해 개념을 공부한다.
간략하게 정리한다.
예를들어 네트워크 통신의 원리에 대해 알고싶다고 해보자. 초등학생이 ‘네트워크’와 ‘통신’을 이해하기에는 어려우니 풀어서 설명하면 “컴퓨터가 내보내는 편지가 다른 컴퓨터로 전송되는 과정” 정도로 요약할 수 있다.
여기서 컴퓨터가 내보내는 편지가 정확히 무엇 뜻하는지 알수가 없다. 컴퓨터가 내보내는 편지는 0과 1로 이루어진 이산적인 신호고 이를 다시 초등학생이 이해하기 쉽게 설명하면 “다른 컴퓨터가 이해하기 쉽게 편지 내용을 0과 1이라는 간단한 정보로 바꾸고” 정도가 된다. 왜 0과 1로 바꿔야 하는지 서술하려면 네트워크 Layer개념에 대해 알아야 하고 다시 설명하는걸 반복한다.
아마 파인만 테크닉을 적용한 “네트워크 통신”을 공부하게 되면 네트워크 개론의 대부분을 학습하게 되지 않을까. 모든게 “왜”와 필요에 따라 연결되어 있으니 말이다.
필자는 딱 어제 그랬다. 분명 컴퓨터 잘한다는 소리를 많이 듣고 토이 프로젝트도 열심히 하면서 실력을 쌓아나가고 있는데 문득 “내가 뒤쳐지지는 않은건가”하는 의심이 들었다. 보통 혼자 공부하다보면 그런 생각이 든다.
내 실력을 의심하는 일이 벌어지는 이유는 단 하나다. 공인되지 않아서. 객관적인 실력을 측정할 수 없음에서 오는 불안감이 원인이다. 이를 극복하기 위해서는 다른 사람에게 이해될 수 있는 설명을 하는 연습이 필요하다. 그리고 그 시작은 언제나 파인만 테크닉이 가장 효율적이다. 파인만 테크닉으로 필요한 지식을 배우고 남들에게 설명하면서 지식에 대한 기반을 쌓아가는 과정. 그게 필요하다.
스스로의 실력을 의심할 시간에 뭐 하나라도 더 읽겠다는 마인드가 되어야 한다. 실력을 의심하다보면 자기 의심과 기만이라는 틀을 쓰게되고 이는 병적인 가면 증후군으로 이어질 우려가 있다. 이런 가면증후군은 나를 만나는 다른 사람들에게도 부정적인 영향을 끼치며 인생 전반에 악영향을 미친다.
진짜 성공한 사람은 다른 사람의 성공을 돕는 사람입니다.
맞는 말이다. 자신은 이미 정상궤도에 안착했다고 생각하니 다른 사람들을 끌어올려주는 것 만큼의 기쁨도 없을 터, 배웠던 지식을 남들에게 알려주는 일 만으로도 충분하다.
그러나 여기에는 엄청난 이점이 있다.
도움을 받은 사람은 도와준 사람에게 고마움을 가진다.
도움을 준 사람은 도움을 주는 과정에서 모르는 사실을 알아간다.
도움에는 자존감 형성이 있다.
첫 번째는 진화적 이유다. 인간은 다른 사람들과 어울려 생활하는게 생존에 도움이 된다. 그 과정에서의 도움은 보답으로 이루어지고 그런식의 유대관계가 형성되면 내가 누군가를 도울때 보답을 받을 가능성이 커진다고 생각한다.
두번째는 앞서 설명한 파인만 테크닉의 관점이다. 도움을 주는 과정에서 모르는 개념이 생기는데 이를 설명하며 새롭게 알아갈 가능성이 있다. 필자의 경우 후배가 프로그램 구현 과정에서 모르는게 생겨 도와줄 일이 있었는데, 나도 관련 개념에 익숙하지 않을 걸 보고 상당히 놀랐던 경험이 있다. 다행히 그 자리에서 구글링으로 예전에 배운 지식을 복기해서 잘 설명해 주었다.
마지막으로 상대방을 도울때 자존감이 형성된다. 펜실베니아 대학의 심리학자 모길너의 연구가 대표적인 사례인데, 실험은 다음과 같다. “A참가자들에게 아픈 아이나 학생들에게 편지를 쓰거나 도와주는등 일정 시간을 남을 위해 보내라고 했다. B참가자들에게는 같은 시간을 아무 의미없는 여가시간을 주면서 보내라고 했다. 실험은 A참가자들에게서 행복감이 더 높았다는 결론이다.” 우리는 다른 사람들을 도울때 심리적 행복이 찾아오게 된다.
필자도 간혹 심심할때 개발자 Q&A 사이트에서 답변을 적고 있다. 답변을 적으며 부족했던 개념을 보충하기도 했고 모르는 분야에 대해 공부해보기도 했다. 궁금하다면, 아래 사이트의 답변 탭을 참고하길 바란다.
허형준
On device 머신러닝은 쉽게 말해 스마트폰이나 웹앱에서 돌아가는 머신러닝 모델이다. 한때 화제가 되기도 했었던 구글의 티처블머신이 대표적인 활용 사례다. 즉, 서버를 거치지 않고 머신러닝 모델을 전달할 수 있는 기술이다.
이 기술이 바꿀 미래를 설명하기 전 간단히 장점을 짚고 넘어가자면, 적은 지연 시간과 데이터를 오로지 사용자 디바이스 내에서 처리할 수 있고, 인터넷 연결이 없어도 머신러닝 서비스를 제공할 수 있다는 장점이 있다. 동시에 머신러닝 서비스를 제공하기 위한 서버가 필요 없어 서버 사용료 및 데이터 전달 비용을 절약할 수 있다. 특히 이미지 및 영상처리의 경우 네트워크 비용과 머신러닝 서버 사용료를 줄여 비용 부담이 발생하지 않는다.
다만, 제공할 수 있는 머신러닝 서비스에도 한계가 있다. 대부분의 기술이 이미지와 영상처리에만 한정되어 있다는 부분과 거대 모델과 빅데이터를 활용할 수 없다. 대표적으로 최근 화제인 GPT 모델과 같은 서비스는 돌릴 수 없다. 또한 사용자 디바이스 내에서 작동하는 만큼 사용자마다 성능 부분에서도 동일하지 못할 가능성이 있다. 구형 스마트폰에서는 아예 동작하지 않거나 버벅거리는 등의 문제 또한 무시할 수 없다.
이걸 가지고 놀기에는 문제가 없지만, 딱 그 정도 수준이다. 프로덕션으로는 부족한 부분이 많다. 그렇기에 지금도 계속 발전하고 있고 앞으로도 가능성이 많은 분야다. 예상외로 이쪽 분야를 모르시는 분들도 있고 개인적으로도 흥미롭게 공부하고 있는 분야라 이번 기회에 포스트를 작성해보려고 한다.
쉽게 말해 테슬라가 라이다 센서 버리고 집중한 분야. 컴퓨터 비전이다. 사물을 인식하고 그 사물이 가지고 있는 정보를 추출하는 분야인데, 사실 꽤 역사가 깊다. 요약하자면, 63년도에 래리 로버츠가 컴퓨터 비전이라는 개념으로 논문을 작성했고 이때부터 관련 연구가 활발히 지속되었다. 그 이후로 몇 가지의 유의미한 성과를 내다가, 2000년쯤 얼굴 인식과 더불어 관련 기술이 등장하고 스마트폰의 보급 이후로 더 가속된다. 이렇게 데이터가 쌓아감에 따라 그 유명한 이미지넷이라는 데이터베이스를 기반으로 대회가 열렸다. 2012년도부터 정확도가 향상되고 이는 컴퓨팅 파워 증가, 알고리즘 개선이 됨에 따라 인식 정확도에 기여하는 결과를 내보였다.
위 사진은 이미지넷 대회 인식 오차율 그래프인데, 2012년도부터 진화하다가 급기야 사람의 오차율인 5%을 넘어서 이제는 사람보다 인공지능이 사물을 더 잘 구분한다. 물론 데이터가 충분한 상태라는게 조건이지만.
이와 같은 기술을 모바일 환경에서도 사용할 수 있다면 얼마나 좋을까. 그러기 위해서는 경량화가 필요하다. 데이터 학습은 성능 좋은 컴퓨터에서 수행하고 출력된 모델을 가지고 웹에서 동작하도록 만들어야 한다. 문제는 모바일의 성능이다.
다행스럽게도 2012년도를 기점으로 모바일 분야에서 그래픽 처리 분야가 놀랍도록 향상되었다. 대부분 게임 퍼포먼스에 초점을 맞추어 개발되었지만, 이 행운은 모바일 머신러닝 시장에도 불어왔다. 적어도 최소한의 모델 계산을 수행할 그래픽 성능은 나와주어야 하니 말이다.
그럼 On Device ML이 필요하거나 적용되는 시장은 어떤 분야일까.
예상하셨듯, 이미지 처리이다. 사실 아직 모바일 성능에서 빅데이터를 다루거나 파라미터가 큰 모델을 불러오고 고성능을 요구하는 모델을 돌리기에는 버겁다. 그래서 CNN 모델을 중심으로 생태계가 성장했고 앞으로도 비슷한 방향성을 가지고 성장할 것으로 예상된다. 이미지의 경우 픽셀 해상도를 낮출 수 있고 (데이터 및 모델 최적화 가능), 이미지를 서버로 보내고 정보를 받아오는데 네트워크 비용이 많이 들며 (절약 가능), 실시간 처리를 제공해야 한다. 이러한 특징 덕분에 디바이스 내에서 머신러닝을 제공하는데에 이점이 있다.
추가로 관련 기능도 적어보면 다음과 같다.
https://google.github.io/mediapipe/solutions/face_detection Google Mediapipe에서 제공하는 얼굴 인식인데 생각보다 성능이 괜찮다.
개인적으로 개발한 Mesh recovery 구현체.
동시에 개인정보에 민감한 곳에도 머신러닝 기술을 접목할 수 있다. 유튜브 알고리즘이나 기타 플랫폼 사업자들이 유저의 개인정보로 하도 별의별 학습을 돌리니 데이터 법안이 요즘 들어 까다로워지고 있다. 이는 기업이 유저 정보를 마음대로 수집할 수 없다는 뜻이기도 하고 스타트업 입장에서는 데이터가 필요한데 막막할 수 있다. 여기에 디바이스에서 사용자 로컬 검색 기록을 기반으로 추천 알고리즘을 개선한다면 개인정보 보호도 할 수 있고 사용자 입장에서는 보다 투명한 관리가 가능해진다.
요새 ChatGPT나 빅데이터를 활용한 생성형 인공지능들이 주목받으며 이쪽 시장에 대한 수요가 급증하고 있다. 반면 너무 생성형 AI 중심으로 주제가 쏠리는 것 같아, 다른 머신러닝 분야도 간단하게나마 살펴보았다. 혹시 관련 데모나 기술이 궁금하신 분들은 아래 링크를 참고하시면 된다.
https://www.tensorflow.org/js/demos?hl=ko
너겟
오픈소스 영상편집 소프트웨어