ESC

나는 다시 갤럭시를 쓴다

잡담

나는 다시 갤럭시를 쓴다

Google의 Pixel 8 Pro를 사용한 지 16개월 정도 사용하던 중, 또 새로운 스마트폰을 들이게 되었습니다. 새로 구매한 스마트폰은 삼성의 갤럭시 S26 울트라입니다. 제가 다시는 갤럭시를 사용할 일이 없을 줄 알았는데 말이죠. 16개월 만에 다시 돌아온 갤럭시를 2주쯤 써보고 있는데, 불만과 실망이 가득합니다. 그럼에도 왜 제가 다시 갤럭시를 사용하게 되었는지와 그리 만족스러웠던 Pixel을 더 이상 메인 스마트폰으로 사용하지 않는지에 대해 이야기해 보려고 합니다. 메인 스마트폰으로 무엇을 써왔나 저는 갤럭시 S10+, 갤럭시 Z 플립3, Pixel 6 Pro, 갤럭시 S24 울트라, Pixel 8 Pro, 갤럭시 S26 울트라 순으로 스마트폰을 사용해 왔습니다. 그 중, 갤럭시 S10+는 정말 만족스러운 스마트폰이었습니다. 29개월 정도를 사용해 왔는데, 좋아했던 이유는 가볍고 한 손 조작이 쉬운 기기였기 때문이었습니다. 사용하다가 디스플레이 파손으로 인해 스마트폰을 교체해야만 하는 상황이 되었습니다. 2020년부터 시작된 플래그십 스마트폰의 카메라 경쟁 등으로 인해 스마트폰은 커지고, 무거워지고 있었습니다. 이 때문에 다음 기기를 쉽게 고르지 못하고 있었습니다. 망원이 없지만 상대적으로 가볍고, 휴대가 편리한 갤럭시 Z 플립3를 메인 기기로 선택했었는데, 그리 만족스럽지 않았습니다. 갤럭시 Z 플립3의 AP로는 퀄컴의 스냅드래곤 888이 채택되었습니다. 이 때문에 배터리 타임도 적고, 발열도 엄청나 사용 시 매일매일 불만이었습니다. 그 이외에도, 변화하던 삼성의 소프트웨어에 대한 불만과 AP 때문인지, 소프트웨어 최적화 탓인지 모를 이상한 답답함이 있었습니다. 디스플레이도 웹 서핑을 할 때마다 글자가 우글거리는 느낌이 들지만, 정상이라는 답만 받을 뿐이었습니다. 24개월 뒤, Pixel 6 Pro로 메인 스마트폰을 교체하게 됩니다. Pixel 6 Pro를 처음 사용하던 당시에 이렇게 무겁고 이렇게 큰 폰을 제가 쓸 수 있을지 의구심이 들었습니다만, 사용하다 보니 금방 적응이 되어 만족스럽게 사용했습니다. 갤럭시 Z 플립3을 사용하던 때, One UI 5 업데이트 이후 엄청난 이질감과 불편함을 느꼈습니다. 추가된 애니메이션이 없는 것보다 못한 수준이라든지, 자사 가이드라인을 지키지 않는 통일성이 떨어지는 경험이라든지 등 많은 좋지 않은 경험이 있었지만, Pixel에서 제공하는 소프트웨어에서 많은 좋은 경험을 해왔습니다. Pixel 시리즈 스마트폰들은 항상 거의 동시에 소프트웨어 업데이트를 수신받는다거나, 부드럽고 자연스러운 애니메이션을 제공한다던가, 어디서 가져온 것이 아닌 항상 독창적이고 사용하기 편한 경험을 제공하는 등 많은 좋은 경험을 해왔습니다. 하지만, Pixel 6 Pro의 AP 성능, 전성비가 좋지 않았던 탓에 동시대 플래그십 스마트폰보다 성능도 부족했고, 배터리 시간도 상대적으로 더 적게 가는 등의 문제가 있었고, 그 당시 가장 심각했던 것은 제가 사용하는 통신사인 SK텔레콤 기준, 통화 사용이 어려웠던 문제가 있었습니다. 그래도 소프트웨어 경험이 너무 좋아 그냥 사용했습니다. 이렇게 사용해 오다 Pixel 6 Pro의 디스플레이가 파손되었고, 정상적인 수리 방법이 없어 사용한 지 3개월 만에 갤럭시 S24 울트라로 넘어오게 됩니다. 앞서 언급한 갤럭시 Z 플립3 당시의 불쾌했던 경험이 갤럭시 S24 울트라에서 이어져 오고 있었고, 계속 사용하며 Pixel 6 Pro를 사용하던 당시의 소프트웨어 경험이 그리웠습니다. 그렇게 10개월 후, 다시 Pixel로 돌아갑니다. Pixel 8 Pro를 구매하여 메인 스마트폰으로 사용하게 되며, 그리고 또 15개월 후, 다시 갤럭시로 돌아갑니다. 왜 갤럭시로 돌아왔을까? 그렇게 Pixel의 소프트웨어 경험이 좋았고, 삼성의 소프트웨어 경험이 별로여서 10개월 만에 스마트폰을 변경했으면서 왜 다시 갤럭시로 돌아왔을까요? 앞서 Pixel 6 Pro를 사용 당시를 언급할 때처럼 통화가 제대로 되지 않는 문제가 Pixel 8 Pro를 사용할 때도 이어졌기 때문입니다. 물론 Pixel 6 Pro를 사용할 때보다는 Pixel 8 Pro를 사용할 때는 모뎀 패치가 있어 나았지만, 루팅을 해야 한다는 점과 루팅을 하여 오는 제약 사항들이 너무나도 많았습니다. 그렇다고 루팅을 하지 않고 모뎀 패치를 하지 않고 사용하자니, 너무 많은 문제가 있었습니다. 제 경우 모뎀 패치를 하면 VoLTE를 지원하지 않는 유선 전화로 통화를 하지 않으면 문제가 없었는데, 모뎀 패치를 하지 않으면 불규칙하게 발신/수신 문제가 발생하여 사용이 거의 불가능한 수준입니다. 이 문제는 여행을 가서도 발생했었습니다. Pixel 8 Pro를 메인 스마트폰으로 사용하면서 말레이시아 여행을 갔습니다. 다른 도시로 이동하는 과정에서 전날 머물렀던 숙소에 AirTag를 두고 와서 숙소에 전화로 문의하는데 통화 발신이 안 된다거나 연결이 성공해서도 VoLTE가 지원되지 않아 통화품질이 엉망이었습니다. 게다가, 루팅을 하고 제대로 스마트폰을 사용하려면 여러 패치와 우회 과정이 필요했고, 어느 순간에는 또 우회할 수 없어집니다. 게다가, 업데이트할 때마다 다시 루팅을 해주는 과정이 필요했고, 루팅으로 인해 어느 때에는 OTA 업데이트 수신을 받지 못할 때도 있었습니다. 이런 순간들이 지속되면서 스마트폰을 사용하는 시간보다 스마트폰을 유지보수하는 시간이 길어지고 있고, 같은 값 혹은 더 저렴한 갤럭시나 iPhone을 구매했었더라면 없었을 통화 문제가 지속되면서 피로감이 누적되고 있었습니다. 또 출시된 지 3년이 가까워지고 있는 기기이다 보니 2026년 6월, 현재 배터리 수명이 조금 나빠졌습니다. 하지만, 대한민국에서는 이를 정상적으로 수리할 방법이 여전히 있지 않았고요. 위에서 언급한 문제들의 가장 큰 문제는 대한민국을 포함한 대부분의 전 세계 국가에서 동일한 문제가 있다는 것입니다. 아무튼, 다양한 이유로 메인 스마트폰을 다시 한번 교체해야 하는 시기가 왔고, Pixel 시리즈의 최신 플래그십 스마트폰 Pixel 10 Pro가 후보지에 없던 것은 아닙니다만, 갤럭시 S26 울트라를 결국 메인 스마트폰으로 구매하고 사용하고 있습니다. 갤럭시 S26 울트라를 선택한 이유 제가 갤럭시 S26 울트라를 선택한 이유는 간단했습니다. 대한민국에서 사용할 수 있는 가장 편한 안드로이드 스마트폰이기 때문입니다. 수리도 쉽고, 가장 중요한 통신 기능도 문제없이 동작합니다. 배터리도 안정적이고, 성능도 좋고, 카메라 하드웨어도 강력합니다. 적어도 스마트폰을 쓰면서 기본적인 부분 때문에 스트레스받을 일은 Pixel보다 적고, 실제로 사용해 보니 훨씬 편합니다. 갤럭시 S26 울트라는 배터리가 오래 갑니다. Pixel 8 Pro를 사용할 때보다 확실히 마음이 편합니다. 외출할 때 보조배터리를 챙겨야 하나 고민하는 일이 줄었습니다. 성능도 좋습니다. 앱 실행, 게임, 카메라 등 여러 방면에서 여유가 느껴집니다. 디스플레이도 좋고, 통신도 안정적입니다. 대한민국에서 사용하는 스마트폰으로써 갖춰야 할 기본기는 거의 다 갖추고 있습니다. 문제는, 저는 이 기본기가 좋은 스마트폰을 쓰면서도 계속 불만을 느끼고 있다는 점입니다. 다시 만난 삼성의 소프트웨어 가장 큰 불만은 역시 소프트웨어입니다. 이전보다 애니메이션도 나아진 것 같은데, 이것을 제외하고는 전부 퇴보했습니다. 제가 마지막으로 사용했던 삼성의 소프트웨어는 적어도 독창적이었습니다. 이제는 독창적이지도 않고, 무언가가 뛰어나지도 않고, 멋지지도 않은, 그냥 흔한 소프트웨어가 되어버렸습니다. 어디서 많이 본 것 같은 상태 표시줄을 좌측에서 내렸을 때 알림이 보이고, 우측에서 내렸을 때 빠른 설정창이 나온다던가, 잠금화면 시계가 배경에 맞게 늘어난다던가, 화면 상하에 블러 처리가 되어있다든가 하는 부분은 어디선가 많이 본 듯하고, 삼성이 이것을 채용하기 전 중국 제조사들이 채용하여 많은 비판을 받았던 부분입니다. One UI는 분명 한 손 조작을 위해 만들어졌다고 One UI 1.0부터 이야기해 왔는데, 지금은 그런 구조만 남아 있고, iOS나 중국 제조사들의 소프트웨어에서 본 듯한 것들이 마구 섞여 있습니다. 색상이나 아이콘도 마찬가지입니다. 이건 완전히 취향의 영역이지만, 제 눈에는 이전보다 더 가볍고 촌스럽게 느껴집니다. 아이콘의 형태나 색이 전체적으로 장난감 같아졌고, 기본 앱들의 분위기도 제가 좋아하는 방향과는 멀어졌습니다. Pixel의 Material You가 항상 완벽하다고 생각하지는 않지만, 적어도 시스템 전체가 하나의 방향을 향하고 있다는 느낌은 줍니다. 편하지만 좋아하긴 어려운 스마트폰 이렇게 불만을 말하고 있지만, 대한민국에서 아니, 전 세계에서 마음 놓고 쓸 수 있는 스마트폰은 갤럭시 혹은 iPhone 정도라고 생각합니다. 일단 이 두 기기의 제조사는 큰 문제 없었고, 무엇보다 VoLTE 프로파일이 대부분 포함되어 있어서 어디서든 통화가 원활합니다. 게다가 갤럭시는 사전 고지 없는 통화 녹음이 문제가 되지 않는 지역에서는 사전 고지 없는 통화 녹음은 물론, 자동 통화 녹음까지 설정 한 번으로 모두 해결할 수 있다는 장점도 있고, 대한민국에서는 삼성페이 같은 지역 특화 기능도 있어 강력합니다. 이러한 편의성에 한 번 빠지면 빠져나가기가 쉽지 않습니다. 그래서 저는 갤럭시가 좋았으면 좋겠습니다. 진심으로요. 제 개인적으로는 지금의 갤럭시는 좋지 않다고 생각합니다. 편하긴 한데 어딘가 엉성한, 겉은 번지르르한데 내용은 별거 없는 그런 느낌입니다. 하드웨어는 정말 좋습니다. 디스플레이도 좋고, 배터리도 오래가고, 성능도 충분합니다. 통신도 안정적이고, 수리도 쉽고, 삼성페이나 통화 녹음처럼 실제 생활에서 체감되는 기능도 많습니다. 메인 스마트폰으로서 해야 할 일은 정말 잘합니다. 그런데 이상하게 마음이 가지 않습니다. 스마트폰을 쓰면서 스트레스를 덜 받는 것과, 그 스마트폰을 좋아하게 되는 것은 다른 문제였습니다. 갤럭시는 분명 전자에 가깝습니다. 들고 다니기 편하고, 문제가 생겼을 때 해결 방법이 명확하고, 한국에서 사용하기에 불편한 부분이 적습니다. 그런데 사용할 때마다 기분 좋은 순간이 많지는 않습니다. Pixel은 반대였습니다. 불편한 점이 많았습니다. 통화 문제도 있었고, 루팅과 패치도 필요했고, 수리도 어려웠습니다. 메인 스마트폰으로 쓰기에는 신경 써야 할 것이 많았습니다. 그런데 사용할 때는 좋았습니다. 애니메이션, 카메라, 업데이트, 전체적인 소프트웨어의 감각이 제 취향에 잘 맞았습니다. 그래서 이번 선택은 더 아쉽습니다. 저는 더 좋아하는 스마트폰 대신, 덜 피곤한 스마트폰을 선택했습니다. Pixel이 싫어져서 갤럭시로 온 것이 아닙니다. 갤럭시가 너무 좋아서 돌아온 것도 아닙니다. 그냥 메인 스마트폰으로 쓰기에는 갤럭시가 더 현실적이었습니다. 아마 Pixel이 대한민국에 정식 출시되고, 통화와 수리 문제가 해결된다면 저는 다시 Pixel을 고민할 것 같습니다. 반대로 삼성이 지금의 One UI를 더 일관되고 자연스럽게 다듬고, 단순히 어디선가 본 듯한 요소를 따라가는 것이 아니라 삼성만의 방향을 다시 보여준다면 갤럭시에 더 오래 머물 수도 있을 것입니다. 하지만 지금은 둘 다 아닙니다. 그래서 저는 갤럭시 S26 울트라를 사용하고 있습니다. 좋아서 돌아온 것은 아닙니다. Pixel이 싫어진 것도 아닙니다. 그저 메인 스마트폰으로 쓰기에는, 갤럭시가 덜 피곤했기 때문입니다.

LLM이 내가 사랑하는 일을 망쳤다

잡담

LLM이 내가 사랑하는 일을 망쳤다

남녀노소, 세대와 나이 상관없이 모두가 사용하는 LLM이 대중화되어 가고 있는 것도 3년 남짓 되어가고 있는 듯합니다. 저 또한 일상에 엄청난 영향을 미치고 있고, 과장 조금 더해서 LLM이 없으면 제 방 전등도 못 켜게 되었으니 말이죠. Hermes Agent부터 Claude Code까지도 잘 쓰고 있는 제가, Google 같은 검색 엔진 대신 ChatGPT와 Gemini부터 찾는 제가, 왜 사랑하는 일을 LLM이 망쳤다고 하는지에 대해서 자세히 이야기 해보려고 합니다. 무엇을 망쳤나 2023년도 초 쯤, '바이브 코딩'이라는 용어가 나왔던 것으로 기억합니다. 그 이후, 누가 바이브 코딩으로 어떤 서비스를 만들어서 얼마를 벌었다 같은 이야기로 인터넷이 도배가 됐었던 것으로 기억하며, 지금도 다르지 않다고 저는 느낍니다. 저는 이런 분위기를 정말 싫어합니다. 누구나 전문적인 지식이 없이 코딩을 할 수 있는 시대가 왔고, 누구나 아이디어를 형태로 만들 수 있게 되었으니까요. 이를 부정한다던가, 싫어하지 않습니다. 저 역시도 Claude Code를 정말 잘 사용하고 있습니다. $100를 지불하는 Max 요금제를 사용하고 있으며, 모든 프로젝트에 Claude Code를 꼭 사용합니다. Claude Code가 어느 정도 Figma에 선언된 디자인 시스템, 와이어프레임을 모두 구현하고, API 명세를 이해하여 API 유틸을 만드는 등 생산성에 큰 도움이 됩니다. 하지만, 생산성에 도움이 되는 것과는 반대로 저에게는 도움이 되지 않는다는 점입니다. 사라진 내 도파민 제가 처음 이 블로그를 만들 때가 기억납니다. 저는 /[postId] 같은 구조를 만들고 싶었고, 당시 사용하던 라이브러리에서는 /posts/[postId] 같은 구조가 예제로 제공되고 있었습니다. 기초 지식이 없었던 저는 /[postId] 같은 구조를 구현하려고 밤을 새우고, 또 밤을 뜬눈으로 보냈습니다. 당시에는 생성형 AI 도구들이 현재와 같은 수준이 아니였어서 지금이야 프롬프트 몇 줄이면 뚝딱하면 나올 코드들이었지만, 이를 제힘으로 해냈다는 사실이 기뻤습니다. 너무나 기뻤던 나머지 누군가에게 계속 자랑하고 싶은 마음이 가득했습니다. 지금은 어떨까요? 프로젝트 시작 시, Claude Code만 사용합니다. 어쩌면, 제 작업 시간에 제가 타이핑하는 것은 TypeScript 코드보다는 자연어가 더 많을지도 모르겠습니다. 더 이상 내가 무언가를 만들었다는 느낌은 사라졌고, 내 프로젝트를 누군가 자랑하고 싶지도 않습니다. 결국에는 제가 만든 것도, 무언가를 뜬눈으로 밤을 지새우며 끙끙거린 경험도 없으니까요. 제가 사랑하던 일은 '코드를 작성하는 일'보다는 코드를 작성하며 모르는 것을 알게 되고, 망가져 있는 무언가를 다시 동작하게 만들고, 제 손으로 무언가를 만들었다는 경험이었습니다. 그렇다면, 사랑하던 일을 위해 LLM을 안 쓰면 되는 것 아니냐고 하실 수도 있지만, 그럴 수도 없는 노릇입니다. 당장 누군가는 LLM으로 더 많은 일을 해내고 있고, 모두가 '그걸 아직도 손으로 직접 해요?', '그거 Claude Code한테 시키면 n분이면 되는데, 왜 안 써요?'라는 말을 듣게 되면 그냥 Claude Code를 켜게 됩니다. 생각 할 기회를 뺏김 당하는 사람 누군가의 프로젝트를 검토하고 피드백할 일이 있었습니다. 살펴보면 코드 자체는 그럭저럭 잘 짜여졌고, 실제로 동작도 잘하며, 일부 코드에는 주석도 알맞게 작성되어 있습니다. 그런데, 'XX는 왜 이렇게 하셨나요?'라는 질문을 하게 되면 답변은 대개 비슷합니다. ChatGPT가 그러던데요? 대부분의 사람에게는 큰 문제가 안 될 것 같다는 생각입니다만, 무언가를 배우고 싶어 참여한 사람들이 이러한 행보를 보인다는 점입니다. 무언가를 배워간다는 것은 본인이 스스로 고민하고, 해결하는 부분이 모두 망가졌습니다. 자신이 할 줄 모르는 일을 자연어 몇 줄로 몇 초 만에 모두 해결해 버릴 수 있다면 그게 대체 뭐가 남는 걸까요? 무언가를 배우고 싶어 참여한 사람들이 LLM이 작성한 것을 이해하지 못하는 것은 올바른 사용법이 아니라고 생각합니다. LLM은 일자리를 뺏어가고 있지 않습니다만, LLM과 올바른 방법으로 함께하는 사람들이 일자리를 뺏어가고 있는 것은 사실입니다. '올바른 방법'이라는 것은 LLM이 작성한 것을 이해하고, 검증하고, 필요하다면 수정할 수 있는 것이라고 믿습니다. 그래서 나는 그래서 이러한 것을 뺏기고 있는 시점에서 뺏기지 않으려면 어떻게 해야 하는지에 대한 뾰족한 해답은 없습니다. 저는 내일도 Claude Code를 사용할 것이며, ChatGPT와 함께 제가 구매할 물건의 대안을 찾을 것이고, Hermes Agent와 스마트 홈을 조작할 것이니까요. 다만, 한가지 의식적으로 노력하는 게 있습니다. LLM이 작성한 것에 대해 왜 작동하는지 의심하고, 검증하는 것입니다. 이 과정이 끝날 때까지는 다음 과정으로 넘어가지 않습니다. 대단한 것은 아니어도 LLM에게 생각할 기회와 '내가 해결했다'라는 뿌듯함을 뺏기지 않기 위한 최소한의 장치라고 생각합니다. LLM이 모든 것을 쉽고 빠르게 해결해 주는 신비로움에 빠져 제가 사랑하던 일을 제 손으로 망쳐버린, 제 잘못도 어느 정도 있는 것 같습니다. 그 도구로 무엇을 얻고 잃을지는 전적으로 제 책임이었으니 말이죠.

25년 회고 - 태풍이 휘몰아치는

잡담

25년 회고 - 태풍이 휘몰아치는

너무나도 힘들었던 2025년에 대해 돌아볼 시간이 왔습니다. 이번연도 회고는 넘어갈까 생각하다가도 생성형 AI를 사용하지 않는 제 블로그에 이번연도에 작성한 글이 얼마 없었기 때문에 회고라도 작성하려고 열심히 써보고 있습니다. 고등학교 졸업 현재는 이전과 다른 학교생활을 즐기고 있습니다. 고등학교 졸업식에 갈 때, 브로콜리너마저의 \ 을 들으면서 졸업 분위기에 기분을 맞춰보고 싶었지만, 쉽지 않았습니다. 하여튼 12년 동안의 학교생활에 마침표를 찍고 현재는 사회와 마주할 준비를 하는 중입니다. 운전면허 취득 고등학교 졸업 후, 시간이 많이 남았었습니다. 이 시간 동안 너무나 힘들고 혼란스러운 시간을 보내고 있었지만, 그렇다고 시간을 허무하게 날려버릴 수는 없었기 때문에 무언가라도 하자는 마음으로 운전면허 학원에 등록하여 운전면허를 취득했습니다. 운전면허 학원에 가보니 '붙는다'라는 표현보다는 '붙여준다'라는 표현이 맞는 거 같다고 생각했었는데요. 운전면허 학원에 가서도 운전면허를 취득하지 못하는 것은 정말 쉽지 않은 일인 것 같았습니다. 또 Pixel Pixel 6 Pro를 보낸 다음 다시 Pixel 시리즈를 구매할 줄은 저도 몰랐습니다. Pixel 6 Pro 다음으로 갤럭시 시리즈를 사용하고 있었거든요. 좋은 매물이 좋은 가격에 떴길래 저도 모르게 집어 왔는데, 그래도 후회 안 하고 만족스럽게 사용하고 있습니다. 이전과 다르게 요즘은 패치를 통해서 통화도 문제없이 할 수 있고요. 그리고 Pixel 8 Pro를 사용하다가 너무 만족스러워서 Pixel Watch 3를 충동구매 했습니다. iPhone을 사용하면서 Apple Watch도 같이 사용하고 있었기 때문에 거의 고민하지 않았던 기기입니다. 원형 돔 디스플레이가 너무 매력적으로 보여서 구매했습니다. 이것도 만족하면서 사용 중입니다. 최근에는 Google Pay도 풀어줬어요. 말레이시아 여행 여러 일들로 인해 너무 지치고 힘들어 어디론가 떠나고 싶었습니다. 마침, 친구가 말레이시아 여행을 제안하였고, 모든 이동 경로는 친구가 짜두어서 저는 따라다니기만 했습니다. 친구 따라다니면서 맛있는 것도 먹고, 저라면 절대 하지 않았을 스노클링 같은 것도 해보고 등산도 하고 원숭이, 악어 같은 동물들도 보고... 꽤 재밌었습니다. 키보드 정착 작년부터 키보드에 빠져서 많은 키보드를 구매했었습니다. Neo65, Neo80, Luckey65v2, QK101 등 여러 키보드를 구매해서 사용했습니다. 현재는 Neo65, F1-8X V2, TIGER LITE만 남기고 모두 떠나보냈습니다. 너무 많은 키보드를 목적 없이 구매했다는 생각이 들어서 정말 필요하다고 생각되는 키보드만 남기고 모두 지인들 나누어줬습니다. 그리고, 여태 써보았던 키보드 중 가장 마음에 들었던 것을 뽑아보자면 지온웍스의 F1-8X V2를 고르겠습니다. 지금도 열심히 사용하고 있는데, 만약 V3가 나온다면 나오자 마자 사지 않을까 싶어요. SW인재페스티벌 참가 SW중심대학사업단에서 진행하는 SW인재페스티벌에 대학 선배들께서 좋은 기회를 주셔서 참가해 볼 수 있었습니다. 오픈소스 LLM 모델을 사용하는 프로젝트를 만들었었는데, 이걸 4일 정도 몰아서 한 번에 완성했었네요. 아쉽게도 수상은 하지 못했었지만, 프로젝트 개발하면서 많은 걸 배웠습니다. 마무리 하루하루 태풍이 휘몰아치는 곳에서 아무런 대비도 하지 못하고 많이 다쳤었던 한 해였습니다. 물론, 한 해 동안 있었던 모든 일들이 힘들었던 것은 아니었지만, 이곳에 말할 수 없는 힘든 일들을 많이 겪었습니다. 힘들었던 순간을 제외하면, 그렇게 바라던 기술적 성장을 해왔고, 멋진 사람들을 많이 만났고, 많은 도움을 받았습니다. 아직 더 배워야 하고, 할 일이 많지만, 이번 해에는 정말 애썼고 잘했다는 말을 저에게 하고 싶군요. 종종 과거를 많이 그리워했었기 때문에 회고를 작성할 때 과거를 떠올리지 않고 잘 살았다고 이야기했었습니다. 이번 연도에는 너무 바빴던 탓인가 그럴 기회조차 없었네요. 벌써 달력에 내년 일정들이 빼곡히 쌓였습니다. 지금도 사실 해야 할 일이 있는데, 회고를 작성하느려고 미뤄두었습니다. 다시 할 일을 하러 가야겠네요. 이 글을 읽으시는 여러분의 다음 해에는 태풍과 마주하지 않길, 태풍이 어떠한 상처도 주지 않기를 기원합니다.

24년 회고 - 사랑하는 일, 증오하는 일

잡담

24년 회고 - 사랑하는 일, 증오하는 일

정말 최선을 다하면서 지낸 2024년이 또 몇 시간 남지 않았습니다. 계속 있는 일이지만, 해가 지나갈 때마다 느낌이 다르다는 게 꽤 신기하네요. 이 말은, 졸업이 얼마 남지 않았다는 이야기이기도 합니다. 이제 졸업도 몇 번 남지 않았지만, 졸업이 다가올 때의 느낌이 다른 것도 꽤 저에겐 신기해요. Apple Developer Program 가입 2024년에 가장 처음 있었던 일이기도 하면서 2024년에 제가 제일 의미 있는 소비를 했다고 생각하는 일입니다. App Store에 무언가를 배포하거나 Apple 플랫폼을 위한 무언가를 하려면 꼭 필요한 것이 Apple Developer Program입니다. 가입 이후에 Flutter를 이용해서 개발한 프로젝트를 직접 배포해 보기도 하고, 저에겐 꽤 재미있는 경험이었습니다. 여전히 하고 싶은 것들이 많이 있어서 129,000원을 지불하고 연장도 했습니다. 또 노트북 작년에는 제가 노트북 패널을 해 먹었지만, 이번엔 아무것도 안 했는데 패널에 균일도 문제가 생겨서 수리했습니다. Apple 여의도에 갔었는데 수리도 빨랐고 좋은 경험이었습니다. 제가 아는 분들이 항상 Apple 제품이 고장 나면 항상 Apple 여의도에 방문하던데, 그 이유를 알겠더라고요. 제 과실이 아니어서 무상으로 수리했습니다. 첫 Pixel 중고로 Pixel 6 Pro를 구매했었습니다. 처음으로 사용해 보는 Pixel 제품군이였는데, 꽤나 재밌는 제품이었습니다. 제 불찰로 디스플레이가 파손되어서 오래 사용하지 못하긴 했었지만, 제가 잘 관리했다면 아직 사용하고 있지 않았을까 싶습니다. Pixel 6 Pro를 사용했을 때 경험이 너무 좋아서 다시 Pixel 제품군 구매를 고려 중인데, 한국에 정발한 제품이 아니다 보니 여러 문제점이 있어서 계속 고려 중이기만 합니다. 첫 HomePod Apple의 HomePod mini 두 개를 최근부터 사용하게 되었는데, 꽤 좋은 기기라고 생각합니다. Apple TV 4K도 함께 사용 중인데, 이 크기의 스피커 중에서는 독보적인 것 같다고 사용할 때마다 생각하고 있습니다. 하지만, 여전히 한국어 지원을 안 해주고 대한민국에 판매하지 않는 것이 별로라고 사용할 때마다 생각 중입니다. 장비 구매 2024년에 두 번째로 잘 한 소비는 장비를 구매한 것이라고 확신할 수 있습니다. 최근 손목 건강이 상당히 악화되었고, 계속 여러 불편함들이 있어왔어서 모니터 암, 27인치 4K 모니터, 키보드, 마우스를 구매했습니다. 현재까지 상당히 만족스럽고, 너무나 잘 사용 중입니다. 왜 진작 이렇게 구성하지 않았을지 많이 손해 본 것 같은 기분이지만, 지금 잘 쓰고 있으니 괜찮습니다. Apple Vision Pro 체험 Apple Vision Pro 단독으로 한번, Mac과 연결해서 한번 사용해 보았는데 상당히 별로였습니다. 모든 게 자글자글하게 보이고, 초록 색감이 많이 섞인 보정이 잘못된 세상을 사는 기분이었습니다. 이걸 제 돈 주고 샀다면 정말 땅을 치고 후회했겠지만, 돈 주고 안 샀으니, 여기까지 말하겠습니다. Backend 도전 Frontend 관련 프레임워크만 사용해 오던 제가 어쩌다가 Backend 구축의 필요성을 느끼고 직접 구축했습니다. 그냥 간단하게 Express.js와 TypeScript를 이용하고, Jenkins와 Docker를 통해 배포하는 방식으로 아직 사용 중입니다. 제가 봤을 때 상당히 엉망으로 구성한 것 같은데, 아직 어찌저찌 돌아간다는 게 꽤 기적 같습니다. Jetpack Compose 사용 Android 앱을 개발할 때 사용하는 프레임워크인 Jetpack Compose를 써봤습니다. 아직 완성하지 못한 프로젝트여서 블로그에 언급한 적은 없었지만, 웹 개발만 하던 저에게는 꽤 어렵고 복잡하게 느껴지더라고요. 그래서 아직 완성을 못 하고 그냥 비틀대고 있습니다. 어찌저찌 거의 다 만들어가고 있는데, 올해 안에 완성하지 못했다는 아쉬움이 꽤 남습니다. 내년에는 꼭 완성해 보려고요. 잔디 결산 2024년에만 1,659개의 기여를 했고, 221일 동안 끊기지 않고 열심히 달려왔습니다. 제가 사랑하는 일을 끊임없이 사랑해 오면서 해왔다는 것만으로도 저는 만족스럽습니다. PS도 열심히 하고, 다른 개발도 하고, 진짜 오픈 소스 프로젝트에 기여도 해보고, 2024년에 제 잔디를 보면 정말 잘 해왔다고 생각합니다. 마무리 23년도 회고를 작성하면서 제가 이렇게 작성했더라고요. 이번 해처럼 아니 이번 해보다 더 다음 해가 더 행복해 이번 해가 생각나지 않도록 행복하게 살아보겠습니다. 이 말을 저는 잘 지킨 것 같습니다. 행복했고 2023년이 생각나지 않도록 잘 살았어요. 가끔 노력한 것에 비해서 결과가 잘 안 나와서 실망했었던 일은 있었지만, 행복했습니다. 사랑하는 일을 더 사랑하고, 증오하는 일을 더 증오할 수 있었던 2024년은 저에게는 멋진 한 해였습니다. 그래서 제가 행복할 수 있었나 봅니다. 다음 해도 더 행복하게 살아보려고 합니다. 그러기 위해서는 더 노력해야겠죠. 이제 2025년이 얼마 남지 않았는데, 2024년의 마지막 몇 시간을 더 행복하게 보내려고 합니다. 이 글을 읽으시는 여러분들도 여전히 행복하시길 바랍니다.

나도 코딩 배울까?

잡담

나도 코딩 배울까?

저번에는 매년 있던 WWE라면, 이번에는 매달 있는 WWE에 대한 답입니다. 나도 코딩 배울까? 나도 코딩이나 배워볼까? 이 말을 저는 매달에 한 번씩 듣는 것 같습니다. 생각보다 이 질문에 대해서 제가 할 말이 많더라고요. 생각해 볼 것도 많아서, 한 번 정리해 보려고요. 이 글도 길기 때문에 대충 정리해 보겠습니다. 코딩은 컴퓨터에 명령을 내리는 기술로, 모든 사람이 필수는 아니지만 개발자나 특정 프로젝트에 유용합니다. 코딩을 배우는 다양한 방법으로는 온라인 강의, 부트캠프, 대학 강의, 자기 주도 학습 등이 있으며, 자신에게 맞는 방식을 선택하는 것이 중요합니다. AI가 코딩을 도와주더라도 창의적인 문제 해결과 협업 능력은 여전히 인간 개발자의 중요한 역할을 유지합니다. 코딩이 뭔가요? 코딩은 컴퓨터에 내리는 명령입니다. 컴퓨터는 명령을 받아들이고, 그에 따라 동작합니다. 말은 쉽게 하면, 컴퓨터에 남을 거치지 않고 내가 직접적으로 명령을 시키는 겁니다. 그러니까, 코딩을 배우면 컴퓨터에 명령을 내릴 수 있습니다. 예를 들어, 컴퓨터에 "안녕!"이라고 말하고 싶다면, "안녕!"이라는 명령을 컴퓨터에 내릴 수 있습니다. 근데, 이미 누가 나 대신에 내가 "안녕!"이라고 말하고 싶을 때 말해주는데, 굳이 내가 배울 필요가 있을까요? 어떻게 배워요? 방법은 정말 다양합니다. 인강 강사 고를 때처럼 여러 방법을 겪어보길 저는 추천해 드립니다. 저는 유튜브 강의나 책을 통하여 배웠는데, 안 맞는 사람도 많았어요. 저처럼 유튜브, 책 같은 걸 통해서 독학하셔도 됩니다. 인터넷 강의도 다양한 플랫폼에 존재하니까 맛보기 강의 몇 개씩 들어보시고요. 이것도 별로면 국비 지원되는 학원도 저는 추천해 드립니다. 아니면 맨땅에 해딩한다고 생각하고 목표를 정한 후에 어떤 기술을 사용하겠다고 정하고, 문법 몇 개 익히고 막힐 때마다 계속 찾아서 학습하는 것도 저는 나쁘지 않다고 생각합니다. 블로그나 계산기, 메모장 같은거 만들어도 좋습니다. 근데, 구글이나 AI가 만들어준 코드 그대로 복사 붙여 넣기 하라는 이야기는 아니에요. C부터 팔까요? 이 질문에 대한 제 대답은 '아니요.'입니다. 코딩을 시작하려는 분들께 듣는 질문 중 제가 가장 많이 들은 질문 같습니다. C는 매우 복잡하고 어렵습니다. 메모리 관리, 포인터, 직접적인 하드웨어 접근 등 복잡한 개념들을 다루어야 하므로 대부분의 초보자에게 절대로 추천하지 않습니다. 그래서, 만약 처음 시작하실 거라면 저는 Python이나 Java를 정말 추천합니다. 이것들에 익숙해지면 C를 배울 때에도 아마 큰 어려움을 겪지 않으실 겁니다. AI가 다 하던데 굳이 필요해요? AI가 다 해준다기보다는, 도와준다고 하는 게 적절합니다. AI를 활용하면 더 효율적으로 코딩을 하는 것이지 모든 걸 AI가 대신 하지는 않습니다. 지금 AI가 어떤 문제를 완벽하게 풀고, 어떤 그림을 완벽하게 그리던 프로그래머는 사라지지 않을 겁니다. AI 모델 만든 프로그래머는 그 AI 모델이 자신의 직장이거든요. 그리고 아직도 AI가 해결하지 못한 숙제가 매우 많이 남았어요. 저도 당장 사용하는 프레임워크에 급격한 변화가 생겼을 때, AI가 해결해 주지 못해서 도움도 못 받고 직접 해결했습니다. 마무리 시간이 많아서 코딩 배우는 건 저도 좋다고 생각합니다. 저는 재밌어서 좋아해요. 근데, 관련 없는 업계에 종사하고 있거나, 관련 없는 과에 재학 중이라면 업으로 삼을 생각은 하지 않으시는 게 좋을 거예요. 당장 아무 대학교 컴퓨터공학과 들어가서 실력을 오름차순 정렬하면 최댓값과 최솟값의 실력 차이가 어마어마할 겁니다. 그리고 이거 생각보다 어려워요.

MacBook 좀 사지 마세요.

잡담

MacBook 좀 사지 마세요.

이 시기에 제가 많이 듣는 질문은 'MacBook 살까?'입니다. 이 질문에 대해서 몇몇 친구들을 빼고 저는 '아니 사지 마.'라고 똑같이 답변해 줬습니다. 이제 이 답변을 하는 것도 지쳐서 매년 있는 WWE를 제 손과 입이 해왔던 일을 이 글이 대신 하게 할 것입니다. 글이 상당히 길기 때문에, 세 줄 요약을 해보겠습니다. 비슷한 사양을 가진 유명 제조사의 Windows가 포함된 노트북보다 MacBook 제품군이 약 1,000,000원 정도를 더 지불해야 합니다. MacBook 제품군을 사용할 때, 대부분의 사용자는 응용 프로그램을 설치하고 삭제하는 과정이 익숙하지 않거나 Microsoft Office 제품군 사용에 불편함을 겪는 사용자들처럼 불편함을 겪게 됩니다. Apple Silicon이 탑재된 Mac 컴퓨터와 macOS를 지원하는 게임 중, 대한민국 게이머들이 즐기는 게임은 거의 없다고 봐도 무방하기 때문에 PC 게이머는 Windows가 설치되는 게이밍 PC를 따로 마련해야 합니다. 가격 제 개인적으로 Apple의 가격 정책에 항상 불만을 느낍니다. 제가 현재 사용 중인 MacBook Pro 16-inch (M2 Pro, 2023)을 3,120,300원에 구입했습니다. 당시, 같은 화면 크기, 같은 램 용량과 SSD 용량을 가진 유명 제조사의 노트북을 선택했다면, 제가 지불한 금액보다 약 1,000,000원 저렴하게 구매할 수 있었습니다. 지금 비교하더라도 가격 차이가 비슷합니다. OS도 다르고, 성능, 배터리 지속 시간도 다른데 비교 대상이 되냐고 물으실 겁니다. 하지만, 대학 생활을 하며 많이 사용할 한컴오피스 사용이 매우 불편한 macOS가 왜 필요하세요? 왜 iOS 프로그래밍, 영상 편집 같은 고사양 작업을 하실 것도 아니면서 이러한 고사양 작업에 도움이 되는 Apple Silicon이 탑재된 Mac 컴퓨터가 필요하신가요? macOS와 Apple Silicon이 탑재된 Mac 컴퓨터를 여러분은 약 1,000,000원을 더 지불하고도 모든 것이 불편하다고 생각하게 되실겁니다. 이 이야기를 이어서 해보죠. 사용성 여러분들이 지금까지 사용해 왔던 Windows PC나 iPad에서의 경험과 Mac에서 경험은 완전히 다릅니다. 응용 프로그램을 설치하고 삭제하는 방법부터 문서를 작성하거나 확인하는 과정까지 모든 것에 차이가 존재합니다. Mac에서 응용 프로그램을 설치하는 방법은 세 가지로 나뉩니다. iPhone이나 iPad에서처럼 App Store를 이용하여 설치하거나, Windows PC에서처럼 .pkg 확장자의 설치 프로그램 프랫 패키지 파일을 이용하여 설치하거나, .dmg 확장자의 디스크 이미지에서 응용 프로그램을 끌어다 옮겨 설치합니다. 먼저, App Store를 이용하여 설치하는 방법에 대해 알아보겠습니다. iPhone이나 iPad에서처럼 App Store를 열고, 원하는 응용 프로그램을 설치하면 됩니다. .pkg 확장자의 설치 프로그램 프랫 패키지 파일을 이용해서 설치하는 방법에 대해 알아보겠습니다. 설치할 응용 프로그램을 제작한 회사에서 배포하는 .pkg 확장자의 설치 프로그램 프랫 패키지 파일을 내려받습니다. 이 파일을 열고, 설치 과정을 따르면 응용 프로그램 설치가 완료됩니다. .dmg 확장자의 디스크 이미지에서 응용 프로그램을 끌어다 옮겨 설치하는 방법에 대해 알아보겠습니다. 설치할 응용 프로그램을 제작한 회사에서 배포하는 .dmg 확장자의 디스크 이미지를 내려받습니다. 이 파일을 열고, 응용 프로그램을 Application 폴더에 끌어다 옮깁니다. App Store에서 설치한 응용 프로그램은 Launchpad에서 삭제할 수 있습니다. iPhone이나 iPad에서 응용 프로그램을 지우는 것처럼 응용 프로그램을 길게 클릭하고 있으면, 삭제가 가능합니다. App Store 이외에서 설치한 응용 프로그램은 별도의 응용 프로그램을 통하여 삭제하거나, 삭제 방법을 검색하면 완전히 삭제할 수 있습니다. 응용 프로그램 설치부터 삭제만 해도 벌써 어렵지 않나요? 이것이 Mac의 사용성입니다. Mac을 사용하면서 느낄 불편함은 또 있습니다. 문서 작업하며 사용하는 응용 프로그램 중 가장 많이 사용되는 응용 프로그램은 Microsoft Office 제품군입니다. 검색해 보면, Microsoft Office 제품군을 Mac에서 사용할 때 계속 충돌이 일어나 사용이 어렵다는 이야기를 쉽게 찾아볼 수 있습니다. 게임 Apple Silicon이 탑재된 Mac 컴퓨터에서 대한민국 게이머들이 즐겨하는 게임 대부분을 플레이할 수 없다고 봐도 무방합니다. PC방 게임전문 리서치 서비스 게임트릭스의 2024년 12월 21일 기준 게임 순위입니다. 순위에 있는 게임 중, Apple Silicon이 탑재된 Mac 컴퓨터를 위해 빌드된 게임은 메이플스토리와 메이플스토리 월드 단 두 가지뿐이며, 이마저도 현재 오픈베타 서비스 중입니다. 리그 오브 레전드나 스타크래프트도 포함되는 게 아니냐고 물으시는 분들도 계실겁니다. 이 두 게임은 Intel 프로세서가 탑재된 Mac 컴퓨터 전용으로 빌드된 게임입니다. Apple Silicon이 탑재된 Mac 컴퓨터에서 실행할 수 있는 이유는 Rosetta 2 덕분입니다. Rosetta 2는 Intel 프로세서가 탑재된 Mac 컴퓨터 전용으로 빌드된 앱을 Apple Silicon이 탑재된 Mac 컴퓨터에서 실행할 수 있도록 돕는 번역 도구입니다. 기본적으로 Mac에 설치되어 있는 도구가 아니며, 사용자가 Intel 프로세서가 탑재된 Mac 컴퓨터 전용으로 빌드된 앱을 처음 실행하려고 할 때, Mac이 인터넷에 연결된 상태라면 Rosetta 2 설치 과정을 진행합니다. 이 이후에는 Rosetta 2가 자동으로 작동합니다. 아무리 Rosetta 2가 Intel 프로세서가 탑재된 Mac 컴퓨터 전용으로 빌드된 앱 실행을 돕는다고 해도 Intel 프로세서가 탑재된 Mac 컴퓨터에서 실행하는 것처럼 동작하지 않을 수도 있습니다. 한국어를 다른 언어로 번역할 때, 번역기를 사용한다고 해서 항상 매끄럽고 정확한 번역이 이루어지지 않는 것과 비슷합니다. 마무리 제가 매년 있는 WWE를 쉽게 넘어갈 수 있도록 제가 MacBook을 추천하지 않는 이유에 대해 모두 설명했습니다. 저도 여기까지 읽을 분들은 거의 없다는 것을 잘 알고 있습니다. 만약 여기까지 읽으셨다면 정말로 MacBook을 구매하셔도 좋습니다. 하지만, MacBook을 사용하면서 겪으실 질문과 불편함에 대한 책임은 저에게 1도 존재하지 않습니다. 그러니 여기까지 읽었어도 다시 한번 MacBook 제품군 구매를 고려해 보세요. 여러분이 MacBook을 구매했을 때 정말 효율적인 사용이 가능할지, 같은 비용으로 효율적인 대안이 존재하지 않는지 제발 다시 한번 생각하세요.

AirTag vs 갤럭시 스마트태그2 - 스마트 트래커 뭐 사지?

잡담

AirTag vs 갤럭시 스마트태그2 - 스마트 트래커 뭐 사지?

모두 나온 지 조금 된 제품들이지만 시장에서 가장 인기 있는 스마트 트래커는 아무래도 이 두 제품 같습니다. 저는 트래커 달아 놓는 것을 매우 좋아합니다. 갤럭시 스마트태그의 1세대 제품도 사서 사용하고 있었지만, 스마트태그2를 최근에 써보면서 이제야 뭔가 AirTag와 경쟁할 수 있겠다는 생각이 들어 비교 글을 한번 작성해 보려 합니다. 디자인 AirTag는 동그랗고 마치 바둑돌을 떠올리게 하는 디자인입니다. 저는 공식 홈페이지에서 구입하지 않아 무료 각인 서비스를 신청하지 못해서 더욱 그래 보일 수도 있고요. 애플 로고가 각인된 스테인리스 스틸 배터리 커버는 정말 말도 안되게 흠집이 잘나서 놀랐습니다. 차라리 이럴 거면 무광으로 만들어 주는 것이 나았을 거 같다는 생각입니다. 갤럭시 스마트태그2는 갤럭시 스마트태그, 갤럭시 스마트태그+에서 비판을 받았던 디자인을 버리고 작고 귀여운 형태가 되었습니다. AirTag처럼 어떤 사물이 연상되지도 않고 꽤 마음에 듭니다. 다만 상단에 있는 큰 구멍은 어딘가에 달아두기 위해 존재하는 것 같은데, 갤럭시 스마트태그의 소재가 쭉 경도가 낮은 플라스틱이어서 무언가에 달아두게 된다면 갤럭시 스마트태그2에 흠집이 많이 나는 부분은 매우 아쉽습니다. 이것은 갤럭시 스마트태그, 갤럭시 스마트태그+에서도 동일한 단점이 존재했는데, 저 부분을 사용하지 않고도 어딘가 매달아 놓을 수 있는 정품 액세서리가 있으니 그냥 넘어가도록 하겠습니다. 디자인은 개인적인 취향이지만 어떠한 액세서리도 착용하지 않은 AirTag가 갤럭시 스마트태그2보다 저에게는 더 나아보입니다. 하지만 AirTag에 정품 가죽 키링을 장착하니 제 개인적인 취향으로는 갤럭시 스마트태그2가 저에게 더 나아보입니다. AirTag는 갤럭시 스마트태그들과 다르게 별도의 액세서리가 있어야만 무언가에 달아서 활용할 수 있습니다. 어딘가에 달아두지 않고 넣어둘 생각이여도 무조건 액세서리가 있어야만 합니다. 그 이유는 이 뒤에서 계속 하도록 하겠습니다. 배터리 두 제품 모두 CR2032 배터리를 사용합니다. 교체가 가능하며 AirTag는 1년 이상 지속된다고 하고 갤럭시 스마트태그2는 약 500일간 사용이 가능하고 절전 모드를 통해 700일까지 사용할 수 있다고 합니다. 다만 배터리 수명 같은 경우에도 갤럭시 스마트태그를 써오면서 300일 간다고 했던 배터리가 버튼 기능을 하루에 한 번 이상 사용해 오다 보니 300일을 못 가고 230일 정도에서 배터리 교체를 해줬던 것을 생각하면 갤럭시 스마트태그2는 공식적으로 밝힌 배터리 수명보다는 좀 덜할 것이라고 예상합니다. 반면에 AirTag는 한국에서 나의 찾기 네트워크를 사용할 수 없고, 갤럭시 스마트태그2와 다르게 버튼 기능도 없으니, 공식적으로 밝힌 수명보다 한국에서는 조금 더 사용할 수 있을 것 같다고 예상합니다. 하지만, 갤럭시 스마트태그2는 AirTag에 비해 배터리 수명이 길기 때문에 아무리 버튼을 사용해도, 한국에서 나의 찾기 네트워크를 사용하지 못해 예상 수명보다 더 오래 지속된다고 해도 갤럭시 스마트태그2의 배터리 수명이 더 오래 갈 것이라고 예상합니다. AirTag도 후속작에서는 배터리 수명이 더 늘어났으면 더 좋겠다는 생각이 있습니다. 절전 모드를 사용하면 이러한 스마트 트래커를 사용하는 이유가 아예 없는 것과 마찬가지라고 생각하지만, 아예 선택권을 주지 않는 AirTag보다는 절전 모드라는 선택권을 주는 갤럭시 스마트태그2 쪽이 저는 더 마음에 들었습니다. 배터리를 다 사용하면 교체를 해주어야 하는데 배터리 교체 방식은 별도의 도구 없이 교체가 가능한 AirTag 쪽이 마음에 들었습니다. 대신 배터리 교체 난이도는 갤럭시 스마트태그2 쪽이 더 나았습니다. 갤럭시 스마트태그2는 유심 분리핀이 필요하지만 유심 분리핀을 찔러주면 한번에 나오는데 AirTag는 안그래도 이 미끄러운 스테인리스를 손으로 힘을 적당히 줘서 돌려줘야하기 때문에 개인적으로는 교체가 꽤 힘들었습니다. 게다가 배터리 교체 할 때 조심하지 않으면 AirTag에 보기 싫은 엄청난 흠집이 날 것 같아서 매우 불안합니다. 소리 AirTag와 갤럭시 스마트태그2 모두 소리를 통하여서 찾을 수 있습니다. 하지만 처음 AirTag를 개봉하고 바로 소리를 울렸을 때, 저는 매우 실망했습니다. 갤럭시 스마트태그2와 굳이 바로 옆에서 비교하지 않아도 소리가 작다는 느낌을 받았기 때문에 크게 실망했던 상태여서 바로 소리 측정을 해봤습니다. 진짜 AirTag의 소리가 갤럭시 스마트태그2에 비해 작았습니다. 갤럭시 스마트태그, 갤럭시 스마트태그+는 방수방진 등급이 공식적으로 스펙에 기재가 되어있지 않았었고 갤럭시 스마트태그2는 방수방진 등급이 추가되고 크기가 작아졌는데 갤럭시 스마트태그와 소리 크기의 차이가 없다는 부분에 대해 매우 만족했던 부분이었는데 AirTag는 갤럭시 스마트태그2와 방수방진 등급도 같은데 소리가 작은 부분이 매우 실망스러웠습니다. AirTag가 갤럭시 스마트태그2가 내는 소리에 비해서 고음이기 때문에 이게 설계 시 의도인 줄 알았지만, 소리로 찾기에는 갤럭시 스마트태그2가 유리했습니다. 액세서리를 착용하기 전에는 그랬습니다. AirTag 정품 가죽 키링을 착용하고 소리를 울려보니까 뭔가 소리가 더 커진 것 같은 느낌에 다시 측정을 해보니까 진짜 소리가 더 커졌고, AirTag가 내는 소리가 고음이라 그런지 더 찾기 쉬웠습니다. AirTag는 무언가를 찾는 때 제품이고, 애플은 AirTag를 소리로 찾는 기능을 제공하는데, 찾을 때 사용되는 소리의 크기가 물건을 찾을 때 영향이 충분히 있을 수 있는 부분인데 대체 왜 이런 차이가 나도록 설계했는지 이해할 수 없습니다. 액세서리 착용으로 성능이 달라진다면 애초에 기본 제공을 해줬어야한다고 생각하는데 에어태그 출고가와 현재 정가에 가까운 가격에 별도로 정품 액세서리를 판매한다는 게 정말로 이해할 수 없습니다. 애초에 정품 액세서리는 AirTag보다 더 비싸게 판매했으면서 몇몇 액세서리는 이제 구할 수도 없습니다. 게다가 더 이상 AirTag 가죽 키링 제품은 판매하지도 않고 AirTag 파인우븐 키링을 판매하는데 현재 AirTag 정가보다 비싸게 판매한다니 정말 이해할 수 없습니다. 물론 서드파티 액세서리도 있지만, 개인적으로 서드파티 액세서리들은 마음에 드는 제품들도 없었고 저는 좋은 기회에 AirTag 가죽 키링을 저렴한 가격에 구입해서 사용하고 있습니다. 액세서리를 사용하고 나서야 알게 된 점이지만 서드파티 액세서리를 사용한다고 해도 똑같은 효과를 줄 수 있는지 확신할 수 없기 때문에 정말 이해가 안 됩니다. 갤럭시 스마트태그2는 소리로 찾을 때 재생될 소리를 정할 수 있는데, 개인적으로 모든 소리가 AirTag에 비해 듣기 싫은 소리였습니다. 또한 AirTag는 고음을 내는 데에도 상당히 예쁘다고 느껴지는 소리를 내지만 갤럭시 스마트태그2는 어떻게 하나 같이 듣기 싫은 소리를 내는지 정말 이해할 수 없습니다. 차라리 사용자가 직접 만들어 사용하는 선택지를 줬으면 좋겠지만, 아마 제품 성능의 한계로 이건 안 될 것 같아 아쉽습니다. 위치 찾기 위치는 두 가지 방법을 통해서 찾을 수 있습니다. 하나는 주변 기기가 지나가면서 연결 되면 지도에 대략적인 위치를 알려주는 것이고 하나는 UWB를 통하여 정확한 위치를 찾는 방법입니다. 지도에 대략적인 위치를 알려주는 방법은 현재 AirTag는 지원되지 않습니다. 심지어 사용자가 AirTag를 소지하고 있다고 해도 아예 지도에 표시되지 않습니다. 또한 AirTag와 멀어졌을 때 사용자에게 알림을 주는 기능도 한국에서는 지원되지 않습니다. 갤럭시 스마트태그2는 사용자가 소지하고 있을 때뿐만 아니라, 주변 갤럭시 기기를 찾는 것을 도와주는 설정을 킨 갤럭시가 지나갔을 때 지도에 대략적인 위치를 알 수 있도록 해줍니다. 또한 AirTag는 Apple 기기가 있어야만 위치가 확인이 가능하지만, 갤럭시 스마트태그는 smartthingsfind.samsung.com을 통해서 기기가 삼성 계정에 등록만되어 있다면 가능합니다. find.icloud.com에 AirTag만 표시가 안되는 부분은 정말 의문입니다. Apple 내부 정책으로 인해 한국에서는 지도를 통한 위치를 어떤 Apple 제품이라도 확인할 수 없습니다. 아무리 생각해도 이해가 안 되는데, 이 문제를 Apple이 해결해 주었으면 좋겠습니다. UWB를 통한 정확한 위치를 찾을때에는 소리도 같이 울릴 수 있습니다. AirTag와 갤럭시 스마트태그2를 같은 위치에 숨겼습니다. 숨긴 위치까지 벽 두 개를 지나야하는데 갤럭시 스마트태그2는 소리를 울릴 수 있는 반면에 AirTag는 소리를 울릴 수 없었습니다. 숨긴 트래커들에 가까이 다가가면서 갤럭시 스마트태그2는 여전히 소리도 울릴 수 있고 신호 감도도 뜨는데, AirTag는 아무것도 뜨지 않다가 갑자기 소리 울리기가 활성화됐습니다만 하지만 여전히 어디쯤 있는지는 알 수 없었습니다. 사진은 가까워진 상태로 찍었지만 4m 정도 남았을 때, 갑자기 AirTag가 어디 있는지 정확한 방향이 뜨기 시작했고 갤럭시 스마트태그는 거리 정도만 표시됐고 여전히 정확한 방향은 알 수 없었습니다. 폰을 하나씩만 들고 가서 테스트해보고 케이스도 벗겨보고 두 개 다 들고 다니면서 위치도 바꿔보고 했지만, 결과는 같았습니다. 제가 사용하는 환경에서는 UWB를 이용해 찾는 경험은 AirTag가 사용하기 좋았고, 블루투스 신호 감도를 보고 소리를 울리는 경험은 갤럭시 스마트태그2가 사용하기 좋았습니다. 가격 현재 공식 홈페이지에서 판매 중인 정가로 비교해보겠습니다. AirTag가 갤럭시 스마트태그2에 비해 훨씬 비쌉니다. AirTag를 오픈마켓에서는 더 싸게 구입할 수 있지만, 갤럭시 스마트태그2는 갤럭시 스마트폰의 사은품으로 주기도 했고 미개봉 신품을 매우 싼 값에 발견할 수 있는 반면에 AirTag가 중고가 자체도 갤럭시 스마트태그2 미개봉 신품에 비해 더 비쌉니다. 여기에 아까 말했던 제대로 쓰기 위한 액세서리들까지 구매한다면 비교할 수 없을 정도로 AirTag가 훨씬 비쌉니다. 마무리 최종 결론은 저는 두 개 다 사용하기로 했습니다. 각각의 장단점이 존재하고 하나만 사용해서는 뭔가 부족한 느낌이라서 같이 사용하며 각각의 부족함을 채우는 용도로 사용하면 딱이더라고요. 만약 둘 중 하나만을 구매하실 생각이라면 저는 현재 사용하시는 메인 스마트폰이 갤럭시가 아니더라도 중고 갤럭시를 하나 구매하셔서 갤럭시 스마트태그2 사용하시는 것을 추천해 드립니다. 국내에서 사용하기에 갤럭시 스마트태그2가 가장 낫고 사용해 보니 대충 어디있는지 빨리 찾을 수 있는 것은 갤럭시 스마트태그2 였습니다. 배터리 교체가 좀 불편해서 그렇지 동봉된 있는 유심 교체핀만 잘 가지고 있다면 크게 문제 없을 것 같고요. AirTag는 해외 출장이 잦으신 분들이나 해외여행을 자주 나가시는 분들이 쓰시면 좋은데, UWB 정밀 추적이 안 되는 국가가 꽤 있는 것으로 알고 있으니 참고하시면 좋을 것 같습니다.

화학 챌린지 앱 출시

잡담

화학 챌린지 앱 출시

화학 챌린지가 출시 되었습니다. Flutter를 통해서 제작되었고 App Store와 Google Play 스토어에서 모두 이용 가능해요. 만들어진 이유 이 앱은 처음부터 화학 I 시간 때 생기부를 위한 발표 자료로 사용하려고 간단한 원소 기호를 맞추는 앱으로 기획했었습니다. 하지만 학기 말이다 보니까 게을러지고 놀러 다녀서 점점 미뤄지게 됐는데, 또 제대로 만들려고 하다 보니까 욕심이 생겨서 막 테마 만들어서 집어넣고 중복되는 코드를 정리하려고 코드 구조를 몇십 번이나 헤집어 놓고 해서 1~2주 정도면했을 걸 74 Commit씩이나 하고 거의 한 달 반 동안 개발을 했어요. 사실 저 기간 동안 Commit 안한 날은 놀긴 했는데, 어쨌든 제 욕심을 꽉꽉 담아 처음으로 네이티브 앱이라는 걸 제대로 만들어봤습니다. 구조 많은 시간을 들인 것과 별개로 구조는 별거 없습니다. challenge_page.dart라는 파일은 pages 폴더에 있는 dart 파일들에서 title, challengeData, questionItem, answerItem들을 선언 받습니다. 그 후 data 폴더에 선언 되어 있는 list들에서 questionItem와 answerItem을 표시 후 사용자가 화면 하단에 표시되는 Button 4개 중 1개를 선택했을 때 selectAnswer 메서드를 호출해 정답인지 아닌지 확인 후 정답이면 점수를 업데이트합니다. 그 후 nextChallenge를 호출해 다음 문제로 넘어갑니다. 사용된 Item의 개수와, data 폴더에 저장되어 있는 list의 개수가 같다면 결과창을 보여줘 문제를 맞힌 개수와 틀린 개수를 사용자에게 표시합니다. 멍청한 실수 이 앱을 배포 한지 얼마 되지 않았는데, 벌써 업데이트가 네 번 있었습니다. 다신 이런 실수를 하지 않기 위해 이 문제 또한 기록해 두려 합니다. 첫 번째 실수입니다. 뭔가 이상한 부분이 보이시나요? 이 Flutter 프로젝트에서는 Flutter의 API 중 하나인 ThemeExtension을 사용해 만들어졌습니다. 지금 static ThemeData get dark이라고 작성되어 있는 줄을 자세히 보면 color는 dark에서 받아오지만, ThemeData.light()를 기반으로 copyWith 메서드를 사용해서 라이트 모드의 속성을 적용시키고 있었습니다. 이걸 모두 style 속성으로 지정 해놨으니 이상한 부분을 감지하지 못한 것입니다. 다 만들고 다른 프로젝트에 저 코드를 사용하다가 이상한 점을 발견하고 즉시 수정했습니다. 두 번째 실수입니다. 배포 후 저는 인스타그램 스토리에 이 프로젝트의 다운로드 링크를 올렸는데요. 여러 친구들이 다운로드하고 사용해 보고 피드백을 남겨주었는데 그중 한 친구가 마지막 난이도가 어려움으로 표기되어 있는 두 챌린지에서만 결괏값을 보여주지 않는다고 하길래 확인해 보았습니다. 확인해 보니 진짜였습니다. 급하게 다시 노트북을 켜서 디버깅을 해보니 사용된 item의 개수와 list에 기재되어 있는 item의 개수가 끝났음에도 불구하고 1개 차이로 넘어가지 않았고, 같은 list를 사용하고 있는 두 챌린지에서만 문제가 발생했습니다. list를 복사해 ChatGPT에게 질문해보니, 아래와 같은 답변을 남겨주어서 재빠르게 수정 후 다시 배포하였습니다. 마무리 사실 이렇게까지 오래 할 것이 아니었는데, 제 게으름과 이상한 성격 때문에 이렇게까지 오래 걸린 것에 대해서는 조금 아쉽지만 결과물 자체는 제 능력 안에서 최선을 다했고, App Store와 Google Play Store에 당당히 등록되어 있다는 사실마저 만족스럽습니다. 모두 저와 같은 실수는 하지 않고 문제없는 2024년 되시길 바랍니다.

23년 회고 - 하나, 둘,

잡담

23년 회고 - 하나, 둘,

많은 곳을 갔고 많은 일을 했고 많은 것을 본 2023년이 벌써 몇 시간 남지 않았습니다. Google I/O Extended 2023 Seoul에서 들었던 것처럼 프로젝트가 끝날 때나 분기에 한 번씩 쓸까 하다 고민하다가 성인이 되기 전이나 취업하기 전 어쨌든 시간이 널널하기 전까지는 이렇게 내가 1년 동안 뭘 했나 정리하고 기록하는 용도로 적어보려고 합니다. 노트북 패널 해 먹기 그냥 대충 웹 개발용으로 사용하던 ASUS 비보북이 있었습니다. 침대에 열어둔 채로 올려두고 데스크톱을 켜고 작업하다가 창문 열려고 침대에 올라갈 때 노트북을 보지 못하고 밟았는데 패널이 완전히 맛탱이가 갔습니다. 이 노트북은 잔고장이 너무 많아서 정보다는 스트레스를 받던 참이었는데 이참에 새로 사자하고 그냥 방치했습니다. 뭐 결국엔 새로 샀어요. 이 당시에 그리 충격적이었다거나 망했다 이런 생각이 든 건 아닌데, 기억에 남는 일 중 하나여서 넣어봤습니다. 미완성 프로젝트 사실 이번 3월쯤 React로 만들고 싶은 게 있어 만들고 있었습니다. 크롬의 시작 화면처럼 검색 할 수 있고 바로 가고 싶은 사이트를 고정해 놓는 그런 것을 만들고 싶다는 생각이 들어서 만들려고 마음먹었어요. 만들 때는 멋진 분의 도움을 꽤나 많이 받았어요. 그때의 저는 대충 머리에 구상해 두고 만들기 시작했습니다. 하지만 실력 이슈로 하다가 막히는 부분이 있었고, 그로 인해 멋진 분의 많은 도움을 받았어요. 아니 사실 그분이 다 하셨다고 해도 할 말 없어요. 하다가 제 능력의 부족을 느끼고 중간에 그만두었지만 그분이 작성하신 코드를 보고 많이 배웠고 제 능력이 부족하다는 것을 깨달았기 때문에 더 공부해서 다음에는 좋은 결과를 내려고 노력했습니다. 가끔 그 repository에 들어가 보기도 하고 실제로 이 블로그를 만든 것처럼 좋은 결과를 내기도 했어요. 민증 만들기 이번 해는 제가 민증을 만들 수 있게 된 나이가 된 해입니다. 민증은 생일이 있는 달의 첫 평일부터 신청이 가능합니다. 예를 들어 생일이 3월 10일이라면 4월의 첫 번째 주의 첫 번째 평일부터 신청이 가능합니다. 저는 당연히 가장 빠르게 신청하러 갔습니다. 학교와 집의 거리가 조금 있는 편이라 학교 근처 행정복지센터에서 할지 집 근처 행정복지센터에서 할지 고민했었는데 집 가는 길에 행정복지센터가 있기 때문에 학교 근처에서 했습니다. 가니까 여러 서류를 작성하고 학생증을 확인하고 지문을 찍었습니다. 이런 게 신기하지 않을 때도 됐는데 여전히 재밌고 신기합니다. 이거로 인식이 잘 안되는 친구들은 직접 잉크로 찍었다던데 저는 일단 그러지 않았고 만들고 거의 2주 좀 넘어서 받아볼 수 있었습니다. Jekyll로 블로그 만들기 React로 프로젝트를 진행하다가 쓰디쓴 능력 부족을 만나고 무언가를 다시 만들고 싶었습니다. 그래서 이번엔 블로그를 만들어 봐야겠다는 생각이 들었고 찾아보다 Jekyll로 만들기로 합니다. HTML 태그 도배는 무엇보다 자신 있는 작업이거든요. 완벽하진 않지만 대충 돌아가는 멋진 블로그를 3주 만에 만들어 내긴 합니다. 어쨌든 결과물이 제 성에 차지 않아 다 갈아엎었으니 그 이야기는 뒤에서 계속하겠습니다. iPad 구매 저는 원래 갤럭시 탭 S8+을 사용하고 있었습니다. 하지만 필기 중 팜 리젝션이 풀려서 화면이 알아서 막 움직인다든지 기본적인 작업만 한다고 해도 뜨거워진다든가 하는 일이 많은 이후로 꽤나 많은 불편함을 느꼈는데요. 우연한 기회로 처분하고 iPad Pro 12.9"와 다른 악세서리를 구매했고 아직까지 잘 사용 중이긴 합니다. 이것도 쓰다 보면 좀 뜨거워지는 부분이 있긴 한데 최소 필기 중 팜 리젝션이 풀려서 화면이 다른 곳으로 도망간다든가 하는 현상은 없기에 아직은 만족하면서 사용 중입니다. Next.JS로 블로그 전환 Jekyll로 블로그를 만들긴 했지만, CSS도 제대로 못 해서 반응형이 이상하거나 HTML로 대충 감으면 되는 거라 진짜 대충 감았더니 파일을 열어보기가 싫더라고요. 그래서 진짜 제대로 만들 생각을 했지만 좀 편하게 만들고 싶어 검색하니 Next-Contentlayer라는 모듈을 사용해서 만든 후기가 많이 나오더라고요. 아까 말했던 미완성 프로젝트의 코드들을 많이 참고하고 셀 수도 없이 레포를 들어갔다 나오며 많은 참고를 했습니다. 결과는 지금 보시는 것처럼 약간의 문제를 제외하면 아주 잘되고 있습니다. 다음에 시간이 날 때에는 DB와 에디터를 구축할 생각을 하고 있습니다. 아직도 다크모드를 사용할 때 FOUC 이슈가 있는 등 사소한 문제가 있는데, DB와 에디터 구축하기 전에 고처야 할 거 같긴 합니다. 친구들과의 여행 제가 했던 가장 미친 짓으로 말할 수 있을 거 같아요. 저를 포함한 중학교 친구 세 명과 만나기로 정하고 뭐 할까 정하기로 하였는데 바다를 보러 가자는 이야기가 나왔고 그 새벽에 그날 아침 KTX를 예매해 부모님께 말씀 안 드리고 묵호로 친구들과 바다를 보러 갔습니다. 사실 묵호 가기로 한 거 아닌데 KTX 타고 있는데 갑자기 계획을 바꿔서 묵호에서 내려서 수산시장에서 바가지도 당했습니다. 그러고 바다가 보이는 멋진 카페에 들어갔는데, 뷰가 꽤 멋졌습니다. 그리고 그렇게 보고 싶어 하던 바닷가에도 내려가서 놀았는데, 한 번 더 하라고 하면 할 수 있을 거 같기도 한데 돈을 엄청나게 쓰긴 해서 나중에 성인 되면 한 번 더 해볼 수 있을 때 해보겠습니다. Google I/O Extended 2023 Seoul 저의 첫 번째 컨퍼런스였습니다. 배운 것도 많았고 재미도 챙긴 상당히 인상 깊었던 컨퍼런스입니다. 너무 좋았어서 한 번 더 갈 수만 있다면 더 가고 싶었던 그런 컨퍼런스였고 가서 많은 굿즈와 상품들을 받아와서 티켓값이 아깝지 않았던 기억이 있네요. 이 내용은 블로그에 포스팅했습니다. Flutter 도전기 Next.JS로 블로그를 완성 시킨 저는 이것을 무언가 확장시키고 싶었습니다. 그러다가 Flutter를 알게 되었고 블로그를 앱으로 만들고 싶었습니다. 10일 만에 모든 개발을 끝내고 Google Play Store에만 일단은 등록을 해놨습니다. 지금 꺼내보니 꽤나 엉망이네요. 이것도 시간 날 때 한번 갈아 엎어야겠습니다. 이것을 끝내고 학교에서 포트폴리오로 사용할 프로젝트를 Flutter를 이용해서 만들어 봤는데 선생님도 상당히 신기해 하시는 경험을 할 수 있었습니다. Unreal Fest 2023 Seoul 이건 누가 같이 가자고 해서 따라갔습니다. 빨리 오면 키링 준다고 해서 행사 시작 한참 전부터 갔습니다. 그래서 8번째 순서로 제가 도착했고 키링 받았고 컨퍼런스 내용도 나쁘지 않았습니다. 대신 여기에는 개발자분들도 많이 오셨지만 영상 관련 직종 종사자 분들도 많이 오셔서 제가 이해하기에는 살짝 어려운 부분의 내용도 있었지만 대부분은 어느정도 이해 가능 한 수준이였습니다. 이 내용 또한 블로그에 포스팅 해놨습니다. 새 노트북 구매 노트북의 패널이 부셔지고 한참 지나서 노트북의 필요성을 다시 느껴 구매했습니다. Flutter를 좀 다루다 보니까 iOS Simulator가 꼭 있어야 겠다는 느낌이 들어서 이번 노트북은 MacBook Pro 16(2023년) 실버 색상의 모델로 구입했습니다. 아직까지 잘 쓰고 있고 화면 하단에 균일도가 떨어지는게 보여서 오늘 Apple 여의도에 갔다 왔는데, 수리 부품이 들어오면 무상 수리를 받기로 하고 지금 집에 왔습니다. 마무리 글을 쓰기 시작 했을 때에는 2023년이 꽤 많이 남아 있었는데, 다 쓰고 나니 정말 얼마 남지 않았네요. 이번 해는 돌아볼 수록 작년 해가 그립지 않은 매우 행복한 해였습니다. 많은 사람을 만나고 많은 곳을 가고 '작년이 나았지'라는 생각을 작년에는 하루도 빠짐 없이 했는데 이번 해에는 한번도 그런적이 없네요. 이번 해처럼 아니 이번 해보다 더 다음 해가 더 행복해 이번 해가 생각나지 않도록 행복하게 살아보겠습니다. 다음 해에는 저와 같은 나이의 많은 친구들이 집중을 해야 할 것이 있기에, 이번 해처럼 많은 곳을 돌아다닐 수는 없을것 같지만, 다음 해에 열심히 해 그 다음 해에 이번 해처럼 열심히 돌아다니고 열심히 블로그에 포스팅 해보겠습니다. 제 추억팔이를 여기까지 읽어주신 모든 분에게 감사하고 새해에는 모두 코드가 항상 컴파일되고 버그 없는 한 해가 되셨으면 좋겠습니다.