전체 글 117

내 인생 짧은 봄이 가고

짧은 봄이 가고한달간의 꿈같던 휴가가 끝났다. 임직원들과 임원들의 원만한 합의 끝에 회사로 복귀할 수 있었다. 처음에 예상치 못한 휴업을 맞닥뜨렸을 때는 사실 억울함이 컸던것 같다. 오랜 취준 생활 끝에 드디어 일을 할 수 있게 되었는데 그걸 1년도 채 되지 않아서 제동이 걸린게 억울했다. 한달동안 또 한번 취준때 처럼 카페 가서 공부하고, 집안일 열심히 하고 하면서 허탈했던거 같기도 하다.근데 다시 회사에 출근하고 나서야 내가 헛되이 보낸 한달이 진짜 기회였을수 있겠다는 생각이 들었다. 우습게도 정말 그 당시에는 빨리 이 시간이 끝나기를 기다렸는데 당장의 막막하고 불안한 현실만 봤기 때문이다. 미래에 올 희망보단 현재 눈앞에 닥친 불안이 더 크게 다가오기 마련이니까. 만약 다시 한달전으로 돌아간다면 일..

한달 회고 2026.08.08

다들 나이 먹었다고 실감할 때가 언제인가요?

사이드 프로젝트다시 한번 내가 만드 지옥을 경험하고자 사이드 프로젝트를 시작했다. 언제나 그렇듯 인간은 망각의 동물이라고.. 회사를 다니면서 사이드 프로젝트를 하는 그 모진 경험을 겪고도 또 한번 도전을 하게 되었다. 사실 시작은 이번년도 부터 했는데 아직까지 최소한의 MVP 기능을 포함한 서비스 조차 만들지 못했다. 나도 그렇지만 다들 직장인이라서 점점 일정이 밀리고 있다.. 원래 3월 출시 목표였는데 3월은 커녕 이대로는 상반기까지 못할것 같다. ㅋㅋㅋ 다행인건 사람들이 의욕도 있고 이 서비스를 론칭하고자 하는 의지가 강하게 있는것 같아서 사실 일정이 밀린다고 불안하지는 않다. 저번 사이드 프로젝트는 진짜 답장도 없고, 특히 앱단은 언제나 마지막이라서 나만 발등에 불붙은것처럼 종종 대면서 작업을 해..

한달 회고 2026.04.04

해피해킹으로 언해피해킹하기

모노레포 모노 레포는 하나의 레포에서 여러가지 서비스를 통합하여 관리하는 개발 방식이다. 공통 코드 재사용이 용이하고 의존성 관리가 단순해진다는 장점이 있는 반면, 잘못 사용하면 오히려 관리가 더 어려울수가 있다. (직접 해본 결과 엔간하면 하지 마세요;;)이번달에는 여러 레포를 하나의 레포에 모아서 모노 레포 방식으로 관리를 해보았다. 역시나 애를 많이 먹었는데 아무리 같은 비지니스 로직을 갖고 있는 서비스라고 할지라도 같은 위치에 다른 컴포넌트를 사용하는 경우도 있고, 같은 api 여도 다른 엔드포인트를 갖거나 요청을 다르게 하는 경우가 대부분이었기 때문이다. 그래서 앱 쪽에서는 공통적인건 core 로 빼고 추상화하여 각각 레포에서 override 하는 방식을 사용했는데 사실 이게 맞는 방식인지는 모..

한달 회고 2026.03.07

내 고향이 바닷가였다면

스트림 데이터 가져오기 이번달은 기존 생체 정보 습득 서비스 리뉴얼 작업을 맡았다. 기존의 서비스는 모바일 기기의 가속도 값이나 앱 사용량 등의 상태 데이터를 가져오고 있었는데 추가로 워치 데이터와 연동하여 생체 정보를 가져오도록 리뉴얼하는게 이번달 미션이었다. (추가로 주간 회의에 발표까지 해야 해서 주말 내내 일을 해야만 했다..) 바뀐점이 여러가지 있었는데 가장 크게 시간을 들인 부분은 데이터 송수신 방식이었다.기존 서비스와는 달리 하나의 장치가 추가되었고, 해당 장치의 데이터를 새로 수집해야 했다. 다만 워치에 별도의 앱을 설치하지 않는 구조였기 때문에, 워치의 데이터를 직접 가져올 수는 없었다. 대신 워치에서 사용자의 기기로 전송된 데이터를 앱에서 불러오는 방식으로 구현해야했다. 따라서 데이터..

한달 회고 2026.02.08

[Flutter] 시뮬레이터에서 네트워크 차단 테스트

회사 프로젝트에서 이슈가 발생했다. 이미 런칭된 앱이 해외에서 정상적으로 실행되지 않는다는 이슈였다.가장 먼저 든 생각은 “혹시 Google이나 Firebase 관련 도메인이 해외 네트워크에서 차단된 건 아닐까?” 하는 생각이 들었다. 이 가설을 검증하기 위해, 시뮬레이터에서 동일한 상황을 재현해보기로 했는데 간단하게 끝나지가 않았다. 처음에는 가장 간단한 방법으로 맥의 hosts 파일을 수정해 도메인을 차단해보려고 했다. 웹에서는 이 방법으로 특정 도메인 접근을 쉽게 막을 수 있기 때문이다. 하지만 모바일 앱은 웹과 달리, 로컬 환경에서 직접 도메인을 호출하지 않는다. Android 에뮬레이터는 호스트 컴퓨터와 분리된 가상 네트워크를 사용한다. 이 때문에 에뮬레이터 내부에서 127.0.0.1은 에뮬레이..

공부/flutter 2026.02.01

라이프 안의 라이프 밸런스

생존 끝 본게임 시작 두 달간의 수습이 끝났고, 동료 평가를 받는 과정을 거쳐 무사히 수습을 통과했다. 생각보다 평가 기준과 점수가 좀 빡빡했는데 여유롭게 수습이 통과 되었지만.. 뭔가 두달 동안 내가 맡은 일이 없어서 평가를 좀 후하게 준게 아닌가 하는 생각이 들었다. 특히 앱 개발자에게 가장 중요한 수행도 부분에 대한 평가는 흠 내가 맡은 앱이 없는데...? 평가에 너무 연연하지 않으려고 해도, 다음 평가에서 점수가 ‘떡락’할 수도 있다는 걱정이 자꾸 고개를 든다. 기한 내에 버그 없이 앱 배포까지 완벽하게 하는 개발자가 되고 싶은데 여러 시행착오가 필요하지 않을까... 많이 보이는 부족한 부분 개발자로 일한지 두달째. 확실히 현업에서 일을 해보니까 부족한 부분들이 체감이 된다. 아는만큼 보인다고 ..

한달 회고 2026.01.10

헤맨 만큼 내 땅이다.

취업1) 9월 안으로 사이드 프로젝트 완성2) 코테 책 완독3) collecter 리팩토링책 40권 읽기 1) 자기 전에 책 읽는 습관이번 회고는 1년 회고로, 2025년을 돌아보고자 한다. 위에는 지난 12월에 세우고 6월에 한 차례 수정했던 올해의 목표들이다. 사이드 프로젝트와 취업이라는 두 가지 목표만 달성했지만, 사실 이 두 가지가 나에게는 가장 중요했던 목표였다. 그래서 이것만 해냈다고 하더라도, 2025년을 완전히 허무하게 보내지는 않았다는 생각이 든다.이번 회고에서는 조금 다른 방식으로 1년을 정리해보려 한다. 무엇을 이루었는지보다, 1년 동안 내가 놓을 수 있었던 것들, 어쩌면 포기했던 것들, 그리고 끝내 놓지 못하고 붙잡고 있었던 것들을 중심으로 돌아보고자 한다. 내가 놓았던 것들 쓸데..

한달 회고 2025.12.13

염세적 낭만의 추구

10월 초부터 또 하나의 개인 프로젝트를 끝내고 포트폴리오 작업을 완료 한 뒤에 본격적으로 채용 지원을 하기 시작했다. 확실히 1년 전 보다는 공고가 많았지만 다른 포지션보다 턱없이 부족한 앱 개발 공고에 적잖이 충격을 받았다. 경력도 없는 신입 포지션은 생각보다 더 없었고 swift쪽은 아예 0에 수렴할 정도였다. 일단은 닥치는 대로 지원을 해봤지만 시간이 갈수록 연락이 오는곳이 없었고 연락이 와도 면접에서 탈락하는 일이 잦아지자 점점 초조해지면서 개발자라는 직업을 다시 생각을 해볼정도로 암울했다. 사실 금전적,멘탈적으로는 그다지 힘들지는 않았다. 다만, 내가 노력한 시간들이 실질적인 결과로 나타나지 않았을때 좌절감이 드는게 가장 힘들었다. 나름 열심히 한다고 했는데 의미 있는 결과가 없으니 그냥 쉬었..

한달 회고 2025.11.03

[Flutter] Const construtor

1. 개념const는 위젯을 한 번만 메모리에 올려두고 재사용하도록 만들어, 불필요한 객체 생성과 빌드 호출, 그리고 GC(가비지 컬렉션) 부담을 줄여주는 기술이다. Dart 언어에서는 이러한 객체를 컴파일 타임 상수(Constant Object) 라고 부른다. 2. 원리const Text('Hello'); 이렇게 선언된 위젯은 앱이 실행되기 전에, 컴파일 시점에 미리 생성된다. 즉, 런타임마다 새로 만들어지는 것이 아니라 한 번만 만들어져 계속 재사용되는 객체라는 뜻이다. 따라서 const 인스턴스는 컴파일 타임에 이미 결정되므로, 불필요한 객체 생성이 없고 가비지 컬렉션(GC) 대상이 되지 않는다. 즉 동일한 const 인스턴스를 재사용하기 때문에 빌드 속도가 향상되고 메모리 또한 절약되므로 렌더..

공부/flutter 2025.10.18

[Flutter] 렌더링 엔진

렌더링렌더링은 컴퓨터 프로그램을 활용하여 2D 또는 3D 모델에서 최종 이미지를 생성하는 프로세스이다. 이 과정에서 최종 이미지를 얻을 때까지 텍스처, 조명 및 카메라 각도를 포함한 모든 작은 세부 정보가 원시 모델에 제공된다. CPU렌더링장점호환성: 거의 모든 시스템에서 사용할 수 있으며, 다양한 렌더러와 호환된다.메모리 용량: 일반적으로 GPU보다 더 많은 RAM을 사용할 수 있어, 매우 복잡한 장면을 렌더링할 수 있다.정밀도: CPU 렌더링은 높은 정밀도와 복잡한 계산을 처리하는 데 강력하다.단점속도: 일반적으로 GPU 렌더링보다 느리다.확장성: 속도를 높이기 위해 추가 CPU를 설치하는 것은 제한적이다. GPU렌더링장점속도: 병렬 처리가 뛰어나므로, 일반적으로 CPU 렌더링보다 훨씬 빠르다.실..

공부/flutter 2025.10.17