분류 전체보기
소금빵 만들기 (GL-42)
소금빵 만들기 (GL-42)
2025.05.01배경 요즘 유튜브 알고리즘에 요리 영상이 많이 뜨는 바람에 충동적으로 오븐을 샀습니다. 빵을 만들면 지인들에게 선물로 줄 생각이라 미니 오븐 말고 조금 더 큰 걸로 구입했습니다! 스팀 오븐이 좋다길래 사고 싶었으나,, 언제 그만 둘지도 모르는데 너무 비싸서 타협을 했습니당. 어떤 빵을 만들 것인가원래는 호두파이를 만들고 싶어서 오븐을 산 건데 회사 동료 분들이 소금빵 얘기를 많이 해서 이것부터 만들기로 했습니다!홈 베이킹은 처음이다보니 도구랑 재료가 없어서 많이 주문을 했는데 비용이 꽤 많이 나왔어요. (오븐 타협하길 잘 했다) 효율과 생산성을 많이 따지는 편이라 "이 정도면 그냥 사먹는 게 낫지 않나?"라는 생각이 잠깐 들었지만 갬성을 지키기 위해 무시하고 계속 진행했습니다. 반죽 시작과 동시에 계..
Glide 공식 문서 읽기 스터디 - 1 (~7pg)
Glide 공식 문서 읽기 스터디 - 1 (~7pg)
2025.04.28Glide란? Glide는 Android용 오픈소스 이미지 로딩 라이브러리로, 다음과 같은 특징이 있다.비디오 스틸, 이미지, 애니메이션 GIF 등 다양한 미디어를 로드하고 디스플레이 가능기본적으로 커스텀된 HttpUrlConnection 사용하지만, OkHttp와의 연동도 지원이미지 리스트 스크롤이 부드럽게 작동하도록 최적화되어 있음Glide의 이미지 처리 최적화 전략 1. 이미지 디코딩이미지 디코딩이란?이미지 파일(JPEG, PNG 등)을 앱에서 사용할 수 있는 형태인 Bitmap 객체로 변환하는 과정을 말합니다.디코딩 속도는 앱의 반응성과 직결되기 때문에 매우 중요합니다. 2. 자동 다운 샘플링자동 다운 샘플링이란?Glide는 원본 이미지가 너무 클 경우, 화면에 필요한 해상도에 맞춰 이미지를 자동..
data class 디컴파일
data class 디컴파일
2025.04.27배경최근에 팀원분이 버그를 해결해서 pr을 올려주셨다.기존 코드는 equals 메서드를 직접 오버라이드 해서 일부 필드만 비교하는 형태였는데 모든 필드를 비교하도록 수정해주셨다. 정상 동작은 확인했으나 "data class에서 자동으로 오버라이드해주는 equals로는 해결 안 되나?"라는 생각이 들었다.자동 제공을 해주는 것만 알았지 구체적으로 어떻게 동작하는지까진 확인을 해본 적이 없었다. 결론그래서 직접 디컴파일을 해봤는데 data class는 모든 필드에 대해 동등성을 비교하는 방식으로 동작하고 있었다.이 점을 리뷰로 남겼고, 역할이 겹치므로 수정해주셨던 코드를 삭제하는 방향으로 개선을 해냈다. 추가로 hashCode에 대한 오버라이드 코드도 삭제도 같이 해주셨는데, 검색을 해보니 그 이유는 h..
디자인 시스템에 회의적이었다가 필요성을 느끼게 된 계기
디자인 시스템에 회의적이었다가 필요성을 느끼게 된 계기
2025.03.07디자인 시스템의 필요성을 못 느꼈는데 최근 들어 많이 느끼고 있어 정리를 해본다. 디자인 시스템에 회의적이었던 나전 회사에선 웹뷰 비중이 커서 앱 단에서 적용할 디자인 시스템이랄 게 없었다. 앱바나 바텀시트 등을 컴포넌트화 해서 쓰는 정도였다. 디프만에서 했던 사이드 프로젝트에선 디자인 팀원들이 엄청 작은 단위까지 디자인 시스템을 만들어줬는데 다 만들기엔 시간이 너무 오래 걸릴 것 같아서 자주 쓰일 것 같은 몇개만 컴포넌트화 해서 썼었다 이렇게 처음 해보고는 "좋긴 한데 만드는 시간을 고려하면 배보다 배꼽이 더 큰 거 아닌가?"라는 생각이 들었다. 그래서 디자인 시스템에 회의적이었고 지금 회사에 들어오고 나서도 "정말 효용이 있는 것이 맞는가? 전체적으로 보면 오히려 생산성이 떨어진 결과가 나올 수 있지..
6년만에 여행, 일본을 다녀오다
6년만에 여행, 일본을 다녀오다
2025.03.07예전엔 여행을 다녀오면 당일 느꼈던 감정을 까먹지 않으려 바로 기록을 남기곤 했는데 정신이 너무 없었나봐요. 이제야 글을 씁니다. 첫날도톤보리 출발 한 시간 전쯤 도착하면 되겠지 싶었는데 간발의 차이로 공항 버스를 놓쳤습니다. 비행기를 못 탈 수도 있겠단 생각에 급하게 택시를 탔고 6만원을 냈습니다 ㅎㅎ. 탑승 수속 마감까지 10분 정도 남은 시점에 포켓 와이파이 대여랑 환전까지 하느라 엄청 뛰어다녔어요. 우여곡절 끝에 일본에 도착했는데 곧 멸망할 것처럼 하늘이 어둑했습니다. 난바로 이동하는 법도 몰라서 한참을 헤매다 결국 도착했고, 지도로 보니 옆에 물길이 있길래 따라가보니 그 유명한 도톤보리였습니다. 거리에서 멜로디언으로 인생의 회전목마를 연주하시던 분이 계셨는데 바로 앞에서 한 남녀가 서로 손 잡고..
첫 ANR을 만들었다.
첫 ANR을 만들었다.
2025.02.23배경작년에 어느 한 회사의 면접에서 "ANR을 모니터링 및 대응하는 본인만의 노하우가 있나요?"라는 질문을 받았었다. 그동안 개발하면서 한 번도 ANR을 만들어본 적이 없는데 얼마전에 처음으로 만들어봤다. 파베 crashlytics에 집계가 됐고 마지막으로 찍힌 이벤트와 로그를 보면서 추적했다. ANR이라는 것 자체가 메인 스레드 블락을 암시하기 때문에 어떤 게 문제가 됐을지 추려보는 건 어렵지 않았다. 대응"사용자의 디바이스 성능이 너무 떨어지는 건 아닐까?" 싶었는데 거의 최신 기종이라 이건 아닌 것 같았고 시간복잡도가 큰 로직이 메인 스레드에서 돌고 있어서 발생한 것으로 파악했다. 해시맵을 사용해서 로직의 시간복잡도를 n^2 -> n으로 개선했고 Dispatcher.Default에서 돌려주는 것으..