안녕하세요. Seller & SD Engineering 팀의 개발자 김민우입니다. 저는 주로 백엔드 개발을 담당하고 있지만, 최근에 프론트엔드 개발, 특히 React로 캘린더 컴포넌트 만들기에 도전했습니다. 이 글에서는 백엔드 개발자의 시각에서 본 프론트엔드 개발의 독특한 점들과 더불어 Props Drilling 문제를 해결한 경험을 공유하고자 합니다. 프론트엔드 개발에 대한 저의 경험은 전문적인 관점이 아닐 수 있지만, 이 분야에 대한 새로운 시각을 제공하려 합니다. 배경 : 저희 팀은 새로 오픈 할 ESM 개편안 중 '통계' 작업을 맡았습니다. 본래는 통계 페이지들의 특성상 상단에는 단순 조건 필터링, 하단에는 해당 조건에 따른 결과(그래프, 테이블 등)로 단순하게 구성하기 때문에 프론트에 대한 리소..
IT라는 것은 우리가 속해서 항상 일을 하고 있는 영역이긴 하다. 하지만 삶도 비슷하지만 정신없이 살다 보면 현재 어디에 있는지 잊어버리기 쉽다. IT에 대해서 어떤 것이라는 의견을 내기는 너무 넓고 많은 전문가들이 있는 영역이라 조금 조심스럽긴 하지만 개인적인 경험을 기반으로 한번 이야기를 풀어보려 한다. 1.1 자동화의 추구 사람은 아마도 본능적이라고 생각될 만큼 효율적인 면을 추구하는 편인 것 같다. 본인이 직접 참여하지 않아도 축적된 지식적 패턴을 이용해 자동으로 돌아가는 기술적, 경제적인 무언가를 만드는 것을 계속적으로 추구해 왔다고 본다. 해당 부분이 초기에는 물리적인 요소와 대상을 기반으로 시도가 되었다고 보고, 현재는 사람의 행동과 정신적인 부분 양 쪽을 목표로 나아가고 있다고 본다. 물리..
Vue.js(이하 Vue)는 간편하게 웹 애플리케이션을 만들 수 있는 프론트엔드 프레임워크입니다. Vue를 사용하는 사람들 사이에선 인기가 높은 프레임워크이지만, 아무래도 React에 비해 인지도 및 사용자 수에서 많이 뒤떨어지는 것이 사실입니다. D3.js(이하 D3)는 'Data-Driven Document'의 약어로써(DDD -> D3), 웹 브라우저상에 여러 데이터 시각화 기능을 제공하는 자바스크립트 라이브러리입니다. 데이터 시각화 라이브러리는 다른 여러 가지가 있지만, 높은 자유도를 바탕으로 여러 신기한 차트를 표현할 수 있는 라이브러리는 D3 외에는 없습니다. 다만, 비교적 저수준의 기능을 다루기에 러닝 커브가 있는 편이고 적극적으로 사용하는 사용자가 많다고 하기는 힘든 실정입니다. 이렇게 비..
안녕하세요 VI Engineering 팀 김윤제입니다. 저는 현재 Gmarket Mobile Web Vip(View Item Page = 상품 상세)를 담당하고 있는 Backend Engineer 입니다. 올해 6월 Gmarket Mobile Web Vip Backend 쪽의 성능을 최대 9배, 평균 5배를 개선하였습니다. 개선 직후 BXE 실 & 팀장님께 발표를 하고 회사 블로그에 글을 작성해야지 하면서 미루다가 지금은 어느덧 12월이 되었네요. 작업을 시작했을 때만 생각해도 막막했었는데 성공적으로 끝내니 그 기분은 이루 말할 수 없습니다. 자세한 이야기는 아래에서 상세히 다루도록 하겠습니다. View Item Page 성능개선 설명에 앞서 제가 맡고 있는 Vip (View Item Page) 파트에 ..
안녕하세요, Shopping Service API팀 강희정입니다. 이번 글에서는 Kotlin에서 리스트를 추출하는 메서드에 대해 다뤄보고자 합니다. 비교적 가벼운 내용이긴 하겠지만, 비슷하면서 다른 기능을 하는 메서드들을 정리해야 할 필요가 있다고 생각되어 글을 작성하게 되었습니다. Kotlin을 사용하는 사람들은 대부분 프로그래밍을 처음 접해보는 사람들이 아니라 다른 언어, 특히 Java를 주 언어로 사용하던 사람들일 텐데요, Java 개발자라면 리스트의 부분 리스트를 구해야 할 때 자연스레 subList 메서드를 사용해야겠다! 라는 생각이 드리라 예상됩니다. 실제로 subList는 Kotlin에서 지원하는 메서드기에, Kotlin에 익숙하지 않은 Java 경력의 개발자들은 한 치의 의심도 없이 sub..
안녕하세요. 지마켓 Seller & SD Engineering팀 김민우입니다. 며칠 전 어머니께서 대뜸 저에게 미니 전시회를 열 거라고 하시며 팜플렛을 만들었는데, 혹시 모바일로 만들어서 전달하는 게 가능한지 물어보시더군요. '아니, 저 백엔드 개발자라서 이런거 몰라요' 라는 생각이 머릿속을 스쳤지만, 필자는 어쩌다 보니 이런 기술적인 요청에도 반응하는 효자가 되었습니다. 그렇게 주말을 초대장 만드는데 보내게 되었고, 그 경험을 공유하고자 합니다. 요점부터 말씀드리자면, 방법은 html을 만들고 이를 Github Pages를 활용하여 정적페이지를 무료로 호스팅하는 것입니다. (즉, 프론트 서버만 해당됩니다. 백엔드 서버의 무료 배포 및 호스팅은 Github에서 제공하지 않습니다.) 1. Github Pa..
사용자 식별은 비즈니스의 중요한 역할을 담당합니다. 사용자를 식별함으로써 개인 맞춤형 화면 및 광고를 제공할 수 있고, 부정거래나 어뷰징 유저를 탐지할 수도 있습니다. 다만, 사용자 식별은 우리 생각만큼 쉽지 않습니다. 로그인을 하지 않고 서비스를 이용하는 경우 사용자의 로그인 정보를 확보할 수 없습니다. 사용자가 쿠키를 지웠거나 시크릿 모드로 접속한다면 쿠키의 도움을 받을 수도 없습니다. 전통적으로 사용자 식별은 쿠키에 의존하였고, 아직도 쿠키를 이용하는 경우가 많습니다. 하지만 점점 높아지는 개인정보 보호에 대한 요구와 이에 따르는 쿠키 정책 변경으로 인해 쿠키 외의 대안을 생각해 볼 필요가 있습니다. "쿠키리스 시대의 도래...", 미디어오늘, 2023.08.19 기사 링크 "개인정보보호 소송에 시..
안녕하세요. Mobile Application 팀 전계원입니다. G마켓 앱에는 Firebase Analytics 가 연결되어 있어서, 앱 크래시 이슈가 발생하면 Firebase Analytics 를 통해 확인해 볼 수 있습니다. 그리고 Firebase 를 통해 보고된 버그를 분석하고 수정하는 과정에서 "Java 에서 String 으로 switch 를 사용하는 것이 if-then-else 로 작성할 때 보다 성능적으로 더욱 이점을 띤다"는 사실을 알게 되었습니다. 단순하게 보았을 땐 switch 와 if-then-else 가 동일한 로직일 것 같은데 어떻게 성능적으로 더 이점을 띄는지 궁금해졌습니다. 본 글을 통해 바이트코드를 직접 읽어보며 switch 가 더욱 효과적인 이유를 알아가보고, kotlin 의..