뒤로가기back

AI 그룹 개발자 Handy, “가장 필요한 것은 일단 해보는 실행력”

2023.01.30 by Dewey Yoon

AI 그룹 개발자 Handy, “가장 필요한 것은 일단 해보는 실행력”

(2023. 01. 30)

 

가우디오랩의 프론트엔드 개발자 Handy가 개발자 커리어 플랫폼인 프로그래머스와 인터뷰를 진행했다고 하여 그 소식을 가져왔습니다. 입사 꿀팁부터 Handy가 뽑은 가우디오랩 최고의 복지와 개발문화, 그리고 일단 해보면서 성장한 멋진 이야기도 들어볼 수 있었답니다. 그럼 인터뷰 전문 함께 보시죠! 

 

 

핸디의 가우디오랩 합류 스토리

 

프로그래머스는 어떤 계기로 알게 되셨는지, 또 프로그래머스를 통해 이직하신 이유는 무엇인지 궁금해요.

프로그래머스는 코딩테스트 연습 사이트로 알게 되었어요. 제가 틈틈이 코딩테스트 연습을 하고 있는 아주 애용하는 사이트랍니다. 언젠가 프로그래머스에 채용란이 생기고 포트폴리오를 만들어주는 서비스가 런칭된 것을 보고 제 이력서를 한번 올려보게 되었어요. 이후 제 포트폴리오를 보고 가우디오랩에서 먼저 인터뷰 제의를 해주셔서 자연스럽게 이야기를 나누다가 합류하게 되었습니다.

 

이력서나 포트폴리오를 작성하실 때, 특별히 어필한 활동이나 프로젝트 등의 내용이 있나요?

제가 학부생 졸업생 시기에 창업을 했던 이력이 있어요. 창업 경험에 대해서는 지원했던 모든 회사에서 정말 다 좋게 봐주셨던 것 같아요. 또한, 책을 읽고 정리하거나 리뷰를 작성하는 게 제 취미 중에 하나인데요. 그 중에서도 공부한 내용을 정리하거나 그 내용을 팀 내 세미나에서 종종 공유도 했었는데, 그런 경험도 어필했었구요. 이렇게 2가지 활동에 대해 좋게 봐주셨던 것 같아요. 

 

가우디오랩은 코딩테스트가 있더라고요. 경석님도 코딩테스트를 보셨는지, 보셨다면 코딩테스트는 어떻게 준비하셨나요? (준비에 도움이 되었던 사이트, 혹은 콘텐츠가 있다면 함께 소개 부탁드려요.)

저는 사실 코딩테스트 없이 바로 실무 인터뷰를 진행했었어요. 제가 이때까지 했던 프로젝트를 발표하는 인터뷰로 진행했습니다. (주니어 레벨의 경우 원칙적으로는 코딩테스트를 보는 것으로 알고 있습니다.) 다만, 가우디오랩 외에 코딩테스트를 보는 회사도 많았기에 당연히 준비는 했었는데요, 프로그래머스 기준으로 레벨 2, 3를 자주 볼려고 했습니다. 처음에는 지인들과 스터디 형식으로 했었고, 문제를 푸는 노하우와 습관이 생긴 이후로는 혼자서 공부했어요. SQL도 프로그래머스에 나와 있는 모든 문제를 풀었습니다.

 

면접의 난이도는 어느정도였나요? 1차, 2차 면접이 어떻게 달랐는지, 기억에 남는 질문이 있는지 궁금해요.

제 경우 코딩테스트가 없었기에 쉽게 가지 않을까 잠깐 행복한 생각을 했었는데요(웃음), 오히려 있었으면 더 편했을 것 같기도 합니다.

 

먼저 1차 인터뷰는 실무자 분들과 진행되었는데, 제가 경력직이라 그런지 기본적인 cs 질문보다는 이때까지 했던 프로젝트에 대한 질문과 답변식으로 인터뷰가 진행되었습니다. 그렇다고 cs 질문이 없는 건 아닙니다.(웃음) 다행히 이제껏 했던 프로젝트에 대한 자신감이 있어서 기술에 대한 이야기도 하고 최적화했던 경험, 트러블슈팅 경험 등 그동안의 제 이야기를 천천히 풀어나갔습니다.

 

2차 인터뷰는 리더십과의 컬처핏 면접이었는데요. 가우디오랩과 관련된 이야기부터 제 비전과 성장방향, 개발 철학 등 온전히 저와 관련된 깊은 이야기를 나눌 수 있었던 자리였어요. 기억에 남는 질문으로는 “5가지 선택지에 대한 순위 선택“, “친구들이 생각하는 나란 사람“이 아직 기억나요. 답에 있는 질문이 아니어서 많은 고민을 하게 되는 질문이었고, 그를 통해 저에 대해 더 잘 알려드릴 수 있었던 것 같아요.

 

이직을 하신 거라 다음 회사에 대한 고민이 많으셨을 것 같은데요. 여러 회사들 중에 가우디오랩의 개발자로 지원하신 이유가 있을까요?

실은 전 가우디오랩에 인터뷰를 보러가기 전에 이미 다른 회사에 최종 합격한 상태였어요. 그래서 진행 중이었던 타사와의 채용 프로세스를 모두 중단한 상태였는데, 가우디오랩에서 인터뷰 제의가 왔고, 가볍게 서칭을 시작했으나 결국 점점 좋아지는 저를 발견했습니다. 그래서 ‘편한 마음으로 면접이나 봐 보자!’라는 생각을 갖고 인터뷰를 하게 되었는데, 따뜻한 회사의 분위기에 서서히 매료되었던 것 같아요. 그리고 국내에선 거의 유일한 오디오테크 회사라는 부분도 매력적인 요소였습니다. 

 

 

가우디오랩에서의 생활

 

 

가우디오랩의 어떤 팀에 소속되어 있는지, 또 어떤 업무를 맡고 계신지 자세히 설명 부탁드려요.

현재 AI그룹에 소속되어 프론트엔드 개발을 담당하고 있습니다. 가우디오랩의 뛰어난 오디오 AI 기술을 유저들에게 편리하고 친숙하게 제공하는 것이 제 주 업무입니다. 또한, 사내 개발을 위한 내부 툴을 구현하는 것도 병행하고 있어요.

 

가우디오랩은 부러운 사내 문화가 정말 많더라고요. 사내 문화를 소개해 주시고, 그 중에 경석님이 가장 필요했던 복지나 좋아하는 복지는 무엇인지 알려주세요.

일단 삼시세끼 지원이 아주 강력합니다! 아시다시피 강남 물가가 비싼데도, 금액 제한 없이 밥을 먹을 수 있는 법카가 있어서 부담없이 맛있는 식사를 하며 다양한 동료들과 섞여 많은 이야기를 나눌 수 있답니다. 그 다음으로는 무제한 재택근무와 자율 출퇴근제를 꼽을 수 있는데요, 원하면 언제든지 재택근무를 하고 승인요청 없이 자율적으로 출퇴근을 하고 있습니다. 저는 사실 재택 문화가 처음이라 입사 초기에는 적응하기가 낯설었는데요, 이젠 익숙해져서 업무 효율이 높은 장소를 선택해서 근무할 수 있습니다. 이 외에도 세계일주가 가능한 9주 안식년 제도, 자기 계발비 지원 등 정말 많은 복지가 있는데, 다 말씀드리기는 어려우니 저희 가우디오랩 채용 페이지를 봐주시면 좋을 것 같아요!😀

 

코드리뷰, 정기 회의 등의 가우디오랩만의 개발 문화도 있나요?

코드 리뷰는 팀마다 문화가 조금씩 달라요. 코드 리뷰가 안되면 머지도 안 되는 강력한 제약조건을 가진 팀도 있고, 모듈 설계단위까지만 코드리뷰를 하는 팀이 있습니다. (저희 팀이 그래요.) 가우디오랩만의 개발 문화라기보다는 오디오 테크회사여서 생긴 문화인데요. 오디오에 대한 기본 지식이 필요한 만큼 오디오와 관련된 세미나가 자주 열립니다. 그리고 AI 기술 소개에 대한 세미나도 자주 하는데… AI 세미나까지는 제가 여력이 없어서 아직 눈팅만 하고 있어요. (웃음)

 

가우디오랩에서 사용하고 있는 개발툴은 무엇인가요? (개발 환경 등을 소개해 주세요.)

협업툴은 지라, 슬랙, 컨플루언스를 사용하고 있습니다. 개발환경은 팀마다 차이가 있어 전부 설명은 못 드리겠지만, 제가 속한 팀은 React, Next, Typescript, AWS, BitBucket, ArgoCD 등을 쓰고 있습니다. 가우디오랩은 사용하고 싶은 기술, 개발 환경이 있으면 마음껏 사용할 수 있도록 지원하고 있어요. 다만 해당 기술을 도입하기 위해서는 타당성을 팀원들에게 잘 설득하는 과정이 있어야겠죠.

 

가우디오랩에서는 개발 이슈 등이 발생하면 어떤 프로세스로 처리하나요?

버그 리포트 툴과 유저 트래킹 툴을 이용해서 문제가 인식되면 처리하는 방식을 사용하고 있어요. 간단한 버그 같은 경우엔 슬랙을 통해 간단히 이슈 리포팅을 하기도 하며, 큰 문제인 경우엔 지라 티켓을 통해 절차에 따라 관리하고 있습니다. CI/CD가 되어있어서 이슈가 해결되면 배포하고 GIT FLOW 브랜치 전략을 가져가고 있어요.

 

 

개발자 Handy

 

 

티스토리 블로그를 운영하신다고요. 블로그에는 주로 어떤 글을 업로드하고 계신가요? 경석님이 느끼는 블로그 관리의 장점(이점)이 무엇인가요?

제 블로그의 주제는 크게 2가지입니다. 개발에 대한 내용과 책에 대한 리뷰 이렇게 2가지인데요. 블로그의 첫 번째 장점은 정리하여 글쓰는 습관을 기를 수 있습니다. 정리하다보면 주제에 대해 깊이있는 공부를 할 수 있게 되고, 그러면 그 지식을 온전히 제 것으로 만들 수 있습니다. 그리고 자료 수집을 위해 서칭하는 자료에서 얻는 지식도 상당하구요. 물론 아직까지는 글 쓰는 능력이 부족하지만, 계속 시도해볼 생각입니다.

 

두 번째는 브랜딩입니다. 블로그를 보고 면접 제의가 오기도 하고, 또 프론트엔드 개발자 Handy라는 것을 알릴 수 있는 중요한 창구라고 생각하고 있어요.

 

프론트엔드 개발자로서 경석님이 커리어를 쌓아가는 데 가장 도움이 되는, 또는 되었던 활동이나 공부가 있나요? 있다면 무엇인지 소개 부탁드려요.

커리어를 쌓는데 가장 중요한 활동은 바로 “해보는 것“이라고 말씀드리고 싶어요. 상대적으로 빠르게 변화하는 트렌트와 기술스택에 맞춰 실제로 사용해보고 도움이 되는 것을 분별하는 능력이 과거보다 더 필요해졌고, 앞으로 더 필요해질 것이라고 생각하고 있습니다. 물론 단단한 기초와 끊임없는 공부도 중요하죠. 하지만 가장 필요한 것은 일단 해보는 실행력이라고 생각해요. 혼자 혹은 팀을 구성하여 사이드 프로젝트도 해보고, 회사에 도움이 될 것 같은 토이 프로젝트도 해보다 보면, 매번 하는 개발인데도 부족한 게 계속 나오더라고요. 이번 프로젝트에서 부족함을 개선하여 발전하고 그다음 프로젝트에서도 개선을 거듭한다면, 어느덧 좋은 프로젝트를 운영하는 자신을 발견할 수 있지 않을까 생각해요.

 

프론트엔드 개발자를 희망하는 분들에게 해주고 싶은 말이 있다면?

희노애락이 모여있는 프론트엔드 세상에 오신 걸 환영합니다. 각자 자리에서 최선을 다하다 좋은 동료로 만나요. 가우디오랩에도 많은 관심 부탁드립니다! 🤭

pre-image
우디포차로 놀러오세요! (ft. 2022년 송년회)

우디포차로 놀러오세요!  (2023. 01. 13)   가우디오랩의 전통인 연말 송년회. 크리스마스와 겨울방학을 앞두고 치러진 송년회를 기획하고 정비하느라 HR매니저 하이디와 OPS매니저 캐롤이 정말 많은 고생을 하셨는데요. 바쁘게 준비하는 와중에도 늘 즐거운 마음으로 미소를 잃지 않는 쾌활한 모습이 주변 가우딘들에게 더 큰 기쁨을 주었답니다.   Heidi : 지금부터 너무 재밌고 즐거웠던 가우디오랩 송년회 이야기를 들려드릴게요! gogogo!     가우디오랩은 1년 동안 열심히 달려온 가우딘에게 서로 수고했다는 인사를 전하고, 기분 좋은 마무리를 위해 매년 송년회를 진행하고 있는데요. 올해는 특별히 우도(가우디오랩의 캔틴. 휴식처, 음악 감상존, 공연장, 캔맥존, 타운홀 등 다양하게 활용되는 것 아시죠? ^_^)에서 진행된 만큼, 거의 모든 가우딘이 참석해 주셨답니다.   옹기종기 모여 웃음꽃이 만발했던 그 생생한 현장을 한번 보러 가실까요? 🥳   참, 이번 송년회는 포차 테마로 진행했는데요. 추운 겨울날, 길거리 포장마차에서 어묵🍢 국물을 먹을 때의 그 따뜻함과 행복감을 재현하고 싶었어요. 그리고 우디라는 이름은 가우디오랩의 ‘우디‘와 우리(we)에 귀여움☺️을 더한 ‘우디’에서 따왔답니다.   자, 그럼 우디포차로 이동해볼까요? 🚀 오라월에서 갬성 한스푼 담은 폴라로이드와 BoF 소품뽑기     잠깐! 우디포차에 입장하기 전에 먼저 사진 촬영과 BoF 조를 뽑아야 하는데요! 디자이너 Anne이 디자인한 ‘겨울밤의 우디포차’ 앞에서 눈사람들과 함께 폴라로이드 사진을 찍고, BoF 조를 뽑으러 이동했어요. 참고로 BoF(Birds Of a Feather)는 ‘비공식 동아리’라고 불리기도 하는 가우디오랩만의 특별한 모임이랍니다. 서로 간의 벽을 허물고 한 마음으로 하나의 목표를 향해 전진하자는 취지에서 도입되었고 주기적으로 조가 바뀌기 때문에 다양한 동료들과 섞일 수 있어요. 이번에는 소지품 뽑기로 조를 배정하였더니, 선택권이 주어져서 더 좋았다는 피드백을 받을 수 있었답니다! 😊     2022 오쇼!     자, 이제 우디포차로 이동해볼까요?   가장 첫번째 프로그램은 바로 오쇼입니다. 오쇼는 유일무이한 가우디오의 송년회 프로그램이라죠? 바로 Henney(CEO)가 직접 준비한 Show!인데요, 덕담으로 시작해서 사진으로 보는 2022년, 코인이 마구 쏟아지는 퀴즈타임까지! 매번 풍성한 프로그램과 풍족한 코인으로 마음과 주머니를 설레게하는 이벤트죠. 😆 오쇼 팬이 생겼을 정도라고.   여기서 잠깐! 코인제도는 가우디오만의 리워드 제도로 코인은 추후에 상품권으로 교환도 가능합니다🥳     새해다짐 회고 및 공유 이어서 또 하나의 특별한 코스죠! 바로 새해다짐 회고와 공유입니다. 회사에서 무슨 새해다짐을 공유하냐구요!? 그만큼 가우딘은 서로를 동료 그 이상의 소중한 동반자로 여기고 있기 때문에 허심탄회하게 서로의 업무적 성장목표는 물론 개인적인 목표까지도 나눌 수 있답니다. Keynote로 만들어 회고하는 과정을 통해 서로의 1년을 함께 응원하고 돌아보는 든든한 이벤트입니다. (열정! 열정! 열정! 🔥)     조별 발표가 끝난 후, best 1위를 선정했는데요. 그 영광의 1위는 바로~~ (두구두구두구) ANF팀의 Simon입니다! 🎉   Simon의 2022년 목표는 “평일 아침에 조깅하기”였는데요, 거의 매일 실천하셨다고 해요. 🏃🏻‍♂️정말 모두가 감탄했습니다. 내년 목표는 울릉도를 포함한 백패킹 4번 이상을 성공시키는 것이라고 하네요. 과연 Simon은 또 어떤 스토리로 저희를 놀라게 할지 2023년의 회고시간이 무척 기다려지네요 🤩       2022 가우디오 Awards 🏆   이어서 각종 어워즈가 진행되었어요. 가우디오의 인재상인 PIETICC을 실천하신 분들, #gia_intelligence (업계 근황이나 유용한 기사 등을 수시로 공유하는 슬랙채널)에 유용한 정보를 많이 올려주신 분들 등, 한 해 동안 가우디오를 빛내주신 분들을 격려하고 감사하는 마음에 상과 소정의 상품권을 전달드렸어요. 물론 상을 받지 않으신 분들도 각자의 자리에서 최선을 다해주셨습니다! 모두 수고 많으셨습니다! 👏🏻👏🏻       Blind Elephant🐘 가우디오랩은 송년회가 단순히 내부의 즐거운 시간으로 끝나지 않고, 좋은 소리를 만들고 그 소리를 모두가 들을 수 있게 만든다는 가우디오의 다짐과 따뜻한 마음을 나누기 위해 기부도 하고 있답니다. 💖   올해는 블라인드 엘리펀트를 개최하여 사용하지 않은 물품을 기증하고 경매를 진행했어요. 조던 운동화, 영국에서 넘어온 찻잔 세트, 어린이 장난감 등 정말 많은 물품을 기부해주셨고 서로 뺏고 뺏기는 아주 치열한 경매를 치뤘답니다. MC Carol이 상품 소개를 아주 맛깔나게 해주신 덕분에 모두 판매 완료했다죠! 가우딘의 적극적인 참여로 마련된 수익금은 사랑의달팽이(소리찾기 지원사업)에 기부완료했습니다~! 😇     “너무 많아서 행복한 고민이었어요.” 먹는거에 진심인 가우디오랩! 얼마나 진심이냐구요? 사진으로 감상하시죠.             가우디오랩의 송년회, 여러분은 어떻게 보셨나요? 2022년 송년회는 한 해의 결실들을 보고 서로를 격려하거나 축하하는 박수가 끊이질 않았던 것 같아요. 한 해 동안 치열하게 살아온 동료들을 응원하고, 맛있는 음식을 먹으며 못다한 이야기를 나누고, 그동안 서먹서먹했던 동료들과도 친밀감을 쌓는 시간이었답니다. 🥰   다양한 열매가 맺어질 2023년도 기대하며… 내년에 또 함께해요!

2023.01.13
after-image
Android Spatial Audio 지원, 그러니까 그게… 뭐냐면요.

Android Spatial Audio 지원, 그러니까 그게… 뭐냐면요. (2023. 03. 15)   2022년 4월에 루머로 떠돌다가 2023년 1월 Google Pixel 업데이트를 통해 Android Spatial Audio 지원이 공식화되었습니다. 아직까지는 모든 안드로이드 스마트폰에서 경험해볼 수는 없고, 일부 Pixel 스마트폰과 Pixel Buds Pro를 연결해야 Android Spatial Audio를 체험할 수 있는 상황이지만 (2023-03-15 기준) 앞으로 점차 지원 대상이 늘어날 것으로 예상됩니다. Android Spatial Audio를 도입하려고 검토하시는 분들을 위해, 무엇이 변경되었고 어떤 부분을 추가적으로 고려해야할지 살펴보고자 합니다.     Figure 1. Google Pixel 스마트폰 및 Pixel Buds Pro 연결 시 지원되는 공간음향   조그만 이어버드 속 거대한 콘서트홀, 공간음향 Android Spatial Audio 소개에 앞서, 공간음향 기술에 대해 잠깐 소개하고자 합니다. 일반적으로 공간감 있는 소리를 듣기 위해서는 기본적으로 5.1 채널 이상의 스피커 환경을 구성해야 합니다. 게다가 이를 하나씩 배치할 전용 공간도 필요하고, 앰프도 구비해야 하는 등 여러 번거로운 일들이 많죠. 때문에 출퇴근길이나 야외에서 운동하면서 공간감 있는 소리를 듣기는 어렵습니다.   공간음향(Spatial Audio) 기술은 이러한 물리적 제약을 극복하고, 이어폰(헤드폰) 환경에서도 마치 7.1.4채널이 마련된 청음실을 옮겨놓은 것처럼, 마치 내가 실제 공간에 있는 듯한 몰입감있는(Immersive) 소리를 재현하는 기술입니다. Apple의 AirPods Pro에 적용된 Apple Spatial Audio를 시작으로 삼성 갤럭시 등 몇몇 플래그십 스마트폰에 적용된  공간음향을 경험할 수 있죠.     Figure 2. Apple Spatial Audio와 삼성 Galaxy의 360 Audio   Android Spatial Audio 지원으로 무엇이 변경되었는지 보려면, 현재까지 공간음향은 어떻게 구현되었는지 이해하는 것이 좋습니다. 현재 시중에서 볼 수 있는 공간음향은 스마트폰 위에서 구동되도록 스마트폰 제조사에서 직접 구현, 지원하는 이어버드 또는 헤드폰을 통해 소리를 냅니다. MP3와 같은 일반 스테레오 음원을 공간음향으로 재현하는 프로세싱 과정을 보통 렌더러(renderer)라고 부르는데, 스마트폰 업체들은 이를 자체 개발하거나 서드 파티 라이센싱 등을 통해 구현하고 있습니다. 다른 각도에서 보면, 제조사들마다 표준화된 방식의 공간음향을 사용하지 않고 파편화되어 있음을 알 수 있습니다. 더불어, 머리 움직임을 반영하여 마치 이 소리 공간에 들어와 있는 듯한 느낌을 주기 위해 헤드트래킹 구현이 필요합니다. 만약 실제 콘서트장에서 잠깐 머리를 오른쪽으로 돌렸는데, 눈 앞에 있던 가수의 목소리가 머리를 따라온다면 비현실적인 상황이 아닐 수 없습니다. 몰입감을 현저히 저해하여 내가 그 공간에 가 있는 듯한 경험을 이룰 수 없죠. 소리 공간에 머리 움직임에 대한 정보를 반영해주지 않는다면, 눈 앞에서 들리는 소리는 고개 움직임을 따라가며  계속 눈 앞에서 들리게 되며 이는 몰입감(Immersion)을 저해하게 됩니다. 한편, 헤드트래킹은 소리가 머리 밖에서 들리도록하는 ‘외재화’ 효과에도 중요한 역할을 합니다. 심리음향학(Psychoacoustics)적 해석에 따르면 사람은 원래 무의식적으로 움직이는 고개 움직임으로 두 개의 귀만을 가지고 소리의 전후좌우를 더 정확하게 구별할 수 있는데, 헤드트래킹을 활용한 공간음향 구현은 이를 가능하게 하여 소리가 머리 밖에서 들리는(마치 스피커에서 나는 것 같은) 경험이 극대화 됩니다.     Figure 3. 헤드트래킹이 없는 공간음향(왼쪽)과 적용된 공간음향(오른쪽)   헤드트래킹 기반의 공간음향을 지원하기 위해서는 머리 움직임을 인식할 수 있는 센서가 필요한데요, TWS 안에 내장된 IMU(Inertial Motion Unit) 센서가 그 주인공입니다.   IMU 센서는 자이로스코프(Gyroscope), 가속도계(Accelerometer), 자기계(Magnetometer)등이 내장되어 6축 또는 9축의 머리 움직임 정보를 인식해 블루투스 채널을 통해 스마트폰으로 전달되는 것이죠.   현재의 공간음향 동작 구조(아래 그림 참조)를 보면, 블루투스 통신 과정을 두 번이나 거쳐 처리되기 때문에, 실제 머리 움직임과 이를 반영한 소리가 재생되는 사이의 시간 지연이 발생할 수 밖에 없습니다. (이 지연을 Motion-to-Sound(M2S) Latency 라고 하는데, 이에 대해서는 다음 글에서 한 번 자세히 다루겠습니다.)   결국, 이 지연를 최소화하는 것이 자연스러운 공간음향 구현의 열쇠라고 할 수 있습니다. (안드로이드에서도 이러한 지연을 우려 150ms 이하로 구현할 것을 권고하고 있습니다)   Figure 4. 공간음향 동작 구조   Android Spatial Audio 그래서 무엇이 변경되었나면요 Android Spatial Audio 도입의 가장 큰 이유는, 제조사마다 각기 다른 공간음향 구현 방식을 표준화하는데 있습니다. 하지만 기본 구조를 표준화하되 공간음향 실현의 실체인 렌더러는 제조사가 직접 구현해야 합니다. 이렇게 스마트폰 제조사가 렌더러를 구현하면 ‘Spatializer’라는 블록에 넣어주면 됩니다. 이것이 Android Spatial Audio의 핵심입니다.   그렇다면 이 새로운 ‘Spatializer’ 추가로 인해 Android OS 구조가 바뀌었느냐? 그것은 아닙니다. 안드로이드에서 이뤄지는 모든 오디오 기능들은 AudioService[1], AudioPolicyService[2], AudioFlingerService[3]와 같은 서비스들이 협업하여 처리하는데요. 이러한 기존 오디오 프레임워크 안에서 공간음향 기능이 수행될 수 있도록 설계하여 개발 부담을 낮췄습니다.   전통적으로 제조사들의 오디오 정책들은 AudioPolicyService에서 추가하는 방식으로 커스텀화했었는데요. 공간음향 역시 AudioPolicyService 내의 Spatializer에 추가할 수 있도록 하여, 기존 구현 방식을 크게 해치지 않는 범위에서 설계되었습니다.   사용자 경험 관점에서 보면, 앱에서 공간음향을 제어하고 블루투스를 통해 이어버드로 전달되어 출력되는 방식일텐데요. 앱과의 인터페이스 역할은 AudioService 내의 Spatializer Helper가, 렌더링은  AudioFlingerService 내의 SpatializerThread가 처리하여 이 역시 기존 안드로이드 구조를 그대로 계승한 것임을 확인할 수 있습니다.   앱 개발자 입장에서는 공간음향을 어떻게 앱에 적용해야 할 지 많은 고민이 있을 수 있습니다. 안드로이드에서 많이 사용하고 있는 플레이어인 ExoPlayer 에서는 이러한 프레임워크 이해없이도 쉽게 공간음향을 구현할 수 있도록 지원하고 있습니다. ExoPlayer 2.1 8 이후 버전부터 자동으로 멀티채널 트랙을 선택하고 공간음향 제어가 가능하도록 제공하고 있습니다.   또한, 앞에서 언급한 헤드트래킹 구현을 위해서는 IMU 센서 정보를 활용해야 하는데요. 센서 정보를 받아 공간음향 렌더러를 업데이트할 수 있도록 Sensor Service 프레임워크 안에 Head Tracking HID sensor 클래스를 추가하고 Sensor Service와 오디오 서비스 간에 표준화된 통로를 제공하고 있습니다. 그리고 이러한 IMU 센서 정보는 반드시 HID(Human Interface Devices) 프로토콜을 따르도록 권고하고 있습니다.   HID 프로토콜이란 USB Implementers Forum에서 지정한 프로토콜로, 본래 키보드, 마우스 등의 주변 기기와 host 기기 간의 PS/2 및 USB 통신을 위해 정의되었습니다. 이후 블루투스 기기의 확산으로, 이에 맞는 HID profile이 지정되어 점점 더 프로토콜의 지원 범위가 확장되었는데요. 바로 이 프로토콜을 사용하여 스마트폰과 이어버드 기기는 IMU 센서 정보를 주고 받게 됩니다.     [1] 앱과 오디오 프레임워크간의 인터페이스 역할을 하는 서비스입니다. [2] 오디오 제어 요청(볼륨 조절 등)을 받아 처리하는 서비스이며, 여기에 제조사들의 오디오 시스템 정책을 추가할 수 있습니다. 이렇게 구현된 오디오 정책들을 현재 오디오 입출력 동작에 적용될 수 있도록 AudioFlingerService에 요청합니다. [3] 오디오 입출력을 제어하는 역할을 하고 있는 서비스입니다. 이를 위해서 여러 제조사들의, 각기 다른 드라이버를 가지고 있는 오디오 하드웨어들을 통합적으로 제어해야하는데, 이러한 하드웨어들의 인터페이스 역할을 해주는 HAL(Hardware Abstraction Layer)을 통해 제어하고 있습니다. 여기서 제어하는 오디오 입출력은 AudioPolicyService으로부터 받은 오디오 정책을 적용합니다.   Figure 5. Android Spatial Audio 추가에 따른 안드로이드 스택 변화   Source : Google Android Source (https://source.android.com/docs/core/audio/spatial )   Android Spatial Audio 도입, 아직 많은 노력들이 필요합니다 Android Spatial Audio로 쉽게 공간음향을 적용할 수 있는 판을 만들었기 때문에, 이제 안드로이드 디바이스 제조사는 공간음향을 어떻게 잘 구현할 수 있을까 고민하게 될 텐데요. 몇가지 지원 제약으로 인해 제조사에서 고민해야할 점들이 있어, 고려해야할 부분들을 설명드리려고 합니다. 제조사는 반드시 Spatializer, 즉 렌더러를 직접 구현해야합니다. 또한 헤드트래킹 지원으로 인해 발생할 수 있는 시간 지연도 함께 고려하여 설계해야 합니다. 그런데, 앞서 설명한 것처럼 Android Spatial Audio에서 권고하는 150 msec 이내의 시간 지연을 실현하는 것은 생각보다 난이도가 높습니다. 안드로이드 13을 지원하는 고성능 디바이스에서만 프로세싱 가능합니다. 즉, 이어버드 등 안드로이드가 지원되지 않는 기기에서는 구현할 수 없습니다. Android Spatial Audio 스택을 이용하지 않고, 이어버드에서 직접 렌더러를 구현하는 방식도 가능한데요, 이에 대해서는 다음 기회에 다시 소개드리도록 하겠습니다. 스마트폰 뿐만 아니라 태블릿, TV, 노트북 등등 여러 종류의 기기에서 균일한 공간음향 경험을 필요로 하는 제조사 입장에서는 부담이 엄청 커지게 됩니다. 스마트폰도 봐야하고 TV도 봐야하고… 이어버드 또는 헤드폰 제조사 입장에서 아무리 좋은 기기를 만들어도, 역시 연결하려는 스마트폰에서 공간음향을 이상하게 구현한다면 사용자들에게 의도하지 않는 사운드 경험을 전달하게 될 수 있습니다. 현재 5.1채널 음원에 한해서만 공간음향을 지원하고 있고, 스테레오 음원은 지원하고 있지 않습니다. 아직까지도 5.1채널 대비 스테레오 콘텐츠 비율이 압도적으로 높기 때문에, 본 기능이 있어도 사용자가 실제 활용할 기회가 상당히 낮습니다.   Android Spatial Audio 구현을 고려하고 있는 제조사라면 Gaudio Lab이 도와드릴 수 있습니다. 제조사가 직접 구현해야하는 고품질 렌더러(Spatializer)의 최적화된 라이브러리뿐 아니라 시간 지연을 최소화할 수 있는 각종 노하우가 적용된 솔루션으로 CES 2023에서 Spatial Audio 기술로 유일하게 혁신상을 수상하기도 했다죠. 더 자세한 GSA의 정보를 보고 싶으시다면 여기를! GSA 데모가 듣고 싶으시다면 여기를! 클릭해주세요 😊

2023.03.15