안녕하세요 지마켓 Mobile Application Team 강수진입니다.오늘은 iOS에서 특정 이벤트에 대한 URL 요청이 정상적으로 이루어졌는지 확인하는 방법에 대해 알아보겠습니다.들어가기 전에모든 서비스에서 광고는 중요합니다. 왜냐하면 수익과 직결되기 때문이죠 💵💵지마켓도 곳곳에 다양한 유형의 광고가 포함되어 있는데요! 일례로 사용자가 광고 상품을 클릭하면, 해당 이벤트가 광고 처리 시스템으로 전송되어 광고가 집계되고, 이에 따라 비용이 청구될 수 있습니다.요구 사항광고 트래킹은 수익과 직결되기 때문에 문제가 생기면 최우선 순위로 대응해야 하는 이슈 중 하나입니다.그런데 코드 수정을 하다가 기존의 트래킹 코드가 동작을 안 하는 상황이 발생한다면요..?? 심지어 이런 데이터 트래킹의 이슈는 일반적..
안녕하세요. Mobile Application 팀 전계원입니다.어느 날 Android 개발 중 jcenter 에 있는 경고 문구를 확인하였습니다.이에 궁금증을 가지고 jcenter 와 관련하여 찾아본 이런저런 내용들에 대해 공유드리고자 합니다. 0. 프롤로그 - jcenter() 코드에 그어진 한 개의 줄 Android Studio 의 다크테마 속에서 jcenter() 코드가 노랗게 반짝이고 있었습니다.마우스를 올려보니 "jcenter maven repository 는 update 를 제공하지 않는다" 라고 쓰여있었습니다. jcenter 에 대체 무슨 일이 있었던 것일까요?1. Gradle 저장소에서 사라진 jcenter 의 흔적https://docs.gradle.org/current/userguide/..
안녕하세요. Mobile Application 팀 전계원입니다. G마켓 앱에는 Firebase Analytics 가 연결되어 있어서, 앱 크래시 이슈가 발생하면 Firebase Analytics 를 통해 확인해 볼 수 있습니다.그리고 Firebase 를 통해 보고된 버그를 분석하고 수정하는 과정에서 "Java 에서 String 으로 switch 를 사용하는 것이 if-then-else 로 작성할 때 보다 성능적으로 더욱 이점을 띤다"는 사실을 알게 되었습니다. 단순하게 보았을 땐 switch 와 if-then-else 가 동일한 로직일 것 같은데 어떻게 성능적으로 더 이점을 띄는지 궁금해졌습니다. 본 글을 통해 바이트코드를 직접 읽어보며 switch 가 더욱 효과적인 이유를 알아가보고, kotlin 의 ..
들어가기 전에안녕하세요 Mobile Application Team iOS 개발자 강수진입니다. 오늘은 - Xcode 15로 빌드한 iOS 17에서 웹 뷰의 User Agent 가 원하는 값으로 설정되지 않는 이슈와 - 원인으로 추정되는 커밋 내역이 iOS 17부터 반영된 게 맞냐!를 추적해 가는 여정을 떠나 보도록 하겠습니다..ㅋㅎ 그럼 같이 가보져!!문제의 시작..Xcode 15.0 이 9월 18 일 (Beta 8과 RC 1을 거쳐) 릴리즈 되었습니다 👏🏻👏🏻👏🏻그러면 우리 서비스도 문제가 없나 한번 돌려봐야겠죠? Xcode 15로 iOS 17 빌드 가보자고~~~!네? ㅠ 역시 우리의 금쪽이 엑스코드에서 한 번에 잘 될 리가 없죠? 앱에서는 자체적인 native header ..
안녕하세요. Mobile Application 팀 전계원입니다. QA 과정에서 발견된 이슈를 분석하던 중 원인이 OS 에 있어서 발생한 이슈였던 경험이 있었습니다. 원인이 OS 자체에 있다는 점이 신기했던 면도 있었지만, 해당 버그가 OS 10 이하를 지원하는 앱이라면 누구나 겪을 수도 있다는 사실이 인상 깊었습니다. 그래서 많은 분들께 공유드리고자 버그의 원인을 분석하고 해결방안을 찾아갔던 그 당시의 이야기를 작성하였습니다. 0. 프롤로그 - 버그 발견 G마켓에는 QA 부서가 별도로 존재합니다. 그리고 어느 날 QA 담당자분을 통해 재연영상과 함께 이슈를 할당받았습니다. 무엇이 문제인지 알 것 같나요?? 천천히 영상의 상황을 살펴보겠습니다. 옥션에서 새로운 페이지로 이동하였습니다. 그리고 정상적인 상황..
Android DiffUtil 이해하기안녕하세요 Mobile Application 팀 전계원입니다.DiffUtil 은 androidx 패키지에 포함되어 두 리스트 간의 차이를 계산하고, 새로운 리스트로 변경하기 위한 작업목록을 반영하는 것에 도움을 주는 유틸리티 클래스입니다. 현재 G마켓에는 상당히 많은 영역에서 리스트를 업데이트하기 위해 DiffUtil 을 사용하고 있습니다.G마켓에 입사하기 전에는 DiffUtil 에 대해 들어보기만 했지만, 입사 후 G마켓에 적용된 코드를 이해하기 위해 개인적으로 공부를 했었습니다. 이번 글을 통해서 DiffUtil 에 대해 공부한 내용을 공유드리고자 합니다.1. Before DiffUtil - notify 패밀리샘플 코드와 함께 RecyclerView.Adapter..
안녕하세요. G마켓에서의 첫 돌이 지난 Mobile Application 팀 전계원입니다.작년 여름, 지마켓 내부코드 리팩토링 과정에서 버그를 만났었습니다.버그의 원인을 이해하기 위해 분석하고 공부했던 내용들을 이번 글을 통해 공유해보고자 합니다.0. 프롤로그 - 버그 발견G마켓 Mobile Application 팀에서는 원활한 유지보수와 Android 시장의 개발 트렌드를 따라가기 위해 리팩토링 작업을 매우 권장하고 있습니다.당시 신규 입사자였던 저도 G마켓의 코드에 빠르게 적용하기 위해 코드를 분석하며 간단한 화면 리팩토링 프로젝트를 진행했었습니다.그리고 개발한 내용을 홀로 테스트하던 중 이상한 경험을 마주하게 됩니다. 위 화면에서 이상한 점을 느끼셨나요?123현재 검색어 리스트가 나열되어 있는 상태..
안녕하세요 Mobile Application Team 에서 iOS 개발을 하고 있는 강수진입니다.이번 글에서는 지마켓 iOS 프로젝트에서 사용하고 있는 프레임워크들의 관계와, Framework 에서 다른 Framework 를 사용할 때 Mach-O type 에 따른 주의 사항을 알아보겠습니다.상황Gmarket 에서 사용하고 있는 framework 는 다양하지만, 문제에 집중하기 위해 UI 와 Util 이라는 두 가지 framework 를 사용한다고 상황을 간략화해보겠습니다.이때 Util.framework 는 유틸성 코드를 담고 있어서 UI.framework 에서도 사용합니다. 따라서 아래와 같이 사용 관계를 표현할 수 있습니다.위 상황을 관리하기 위해 프레임워크들의 관계를 어떻게 설정할 수 있을까요?하나..