전체 글
EQL 오프라인 매장에서 Runnect 앱을 보다
EQL 오프라인 매장에서 Runnect 앱을 보다
2025.05.18배경제 첫 사이드 프로젝트이자 릴리즈 앱인 Runnect는 23년 5월에 런칭해서 2년이 지난 아직까지 서버가 열려있습니다. 이제는 팀원들 대다수가 직장인이 된만큼 추가 피쳐 개발은 하지 않고 있었는데요. 최근에 EQL 마케팅팀에서 근무하시는 분이 연락을 주셨습니다. 제가 만든 서비스를 누군가가 필요로 하는 것만큼 앱 개발자로서 보람 있는 일은 없는 것 같습니다. 학생 때 만든 앱이라 부족한 부분이 많지만 기능 점검을 해보니 문제는 없을 것 같아 답변을 드렸고 마침 근처에 올 일이 있어서 매장을 방문했습니다! 오프라인 QR로 앱 랜딩 좋은 제안 주셔서 재밌는 경험을 했습니다. 단순히 코스 이미지만 보여줘도 괜찮았을 텐데 관계자분의 열정에 자극을 받았습니다. 심지어 컨택 채널이 대부분 닫혀 있어서 연락..
Glide 공식 문서 읽기 스터디 - 3 (13pg~18pg)
Glide 공식 문서 읽기 스터디 - 3 (13pg~18pg)
2025.05.18TransitionOptionsTransitionOptions는 이미지 로드 완료 시 적용되는 애니메이션을 설정하는 데 사용됩니다. 예를 들어, withCrossFade()를 사용하면 이미지가 부드럽게 전환됩니다.Q. withCrossFade()에서 "교차 페이드"란 무엇인가요?"교차 페이드"는 이전 이미지가 서서히 사라지면서 새로운 이미지가 동시에 서서히 나타나는 애니메이션 효과를 의미합니다. 이러한 효과는 이미지 전환을 부드럽게 만들어 사용자 경험을 향상시킵니다. RequestBuilderRequestBuilder는 Glide에서 이미지 로드 요청을 구성하는 핵심 클래스입니다. asBitmap(), asDrawable(), asGif() 등을 사용하여 로드할 리소스의 타입을 지정할 수 있습니다.Q. ..
Glide 공식 문서 읽기 스터디 - 2 (7pg~12pg)
Glide 공식 문서 읽기 스터디 - 2 (7pg~12pg)
2025.05.04생성된 APIGlide가 @GlideModule로부터 자동으로 만들어낸 클래스 (ex. GlideApp)GlideApp.with(fragment).load(myUrl).placeholder(R.drawable.placeholder).fitCenter().into(imageView); q. Glide로 쓰는 거랑 GlideApp으로 쓰는 거랑 사용하는 입장에서 어떤 효용의 차이가 있는 건지? Glide모든 설정을 명시적으로 지정해야 함커스텀 옵션 적용 시 .apply(...)를 반복 사용해야 해서 코드가 장황해질 수 있음 GlideApp자주 쓰는 옵션을 메서드처럼 재사용 가능타입에 따른 커스텀 메서드도 가능 (ex. .asMyImage()) GlideExtensionGlideExtension 어노테이션이..
소금빵 만들기 (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..