[주차의 민족] 주차장 마커 밀집 문제를 LOD와 뷰포트 최적화로 해결한 과정
·
프로젝트/주차의 민족
들어가며우리 서비스에 진입하면 제일 먼저 보이는 홈페이지는 첫 번째 이미지와 같았다. 클러스터링도 적용되어있지 않았고, 그냥 모든 주차장을 전부 마커로 표시했다. 이 글에서 첫 화면에서 두 번째 화면으로 개선한 과정을 이야기해보고자 한다. 첫 화면은 환공포증에 걸릴것만 같은 모습이다.우리 팀은 프로젝트를 막 시작할 때 주차장 도메인 서비스중 가장 큰 서비스인 '모두의 주차장' 을 타겟으로 잡았다.모두의 주차장의 홈페이지 모습은 다음과 같다. 정보들이 한 눈에 들어오지도 않을 뿐더러, 너무 난잡하다.우리가 해결하고자한 여러 불편함들중에 신경써서 해결해야할 부분으로 홈페이지에서의 마커 UI·UX를 꼽았다. 문제 해결 과정화면에 주차장 정보들을 보여주긴 해야하는데, 모두의 주차장은 펫말형식으로 전부 표시해버리..
[회고] 배려라는 포장지 속 인정욕구
·
회고
나는 대화를 할 때 경청을 상당히 중요하게 생각한다.어릴 때 어느 어른께서(선생님이셨는지 부모님이셨는지는 기억이 안 난다) 남이 말할 때는 고개를 끄덕이며 경청하는 태도를 보여야 한다고 하셨다.그 말이 나에게는 상당히 크게 와닿았고, 어릴 때부터 누군가와 대화를 할 때면 때로는 좀 과하게 고개를 끄덕이며 듣곤 했다.일종의 “나는 당신의 이야기를 경청하고 있어요.“라는 비언어적 표현인 셈이다.그러면서 동시에 더블링을 자주 섞는다.상대방이 말을 하면 “나는 당신의 말을 잘 듣고 있어요.“라는 것을 더욱 강조하면서 상대방이 말을 하는 것에 더 재미를 느끼도록 말이다.예를 들어 상대방이 “저는 어제 OO 영화를 보고 왔는데 재밌더라고요.“라고 하면 나지막이 “아 주인공이 OO인 영화요? 그거 재밌다고 하더라고요..
프론트엔드 성능 개선(CSR) 맛보기
·
프론트엔드
들어가며나에게 있어 '성능 개선' 은 고수들만 할 수 있는 어려운 작업이다.성능 개선에 관해서 1도 몰랐던 나의 입장에서 학습하며 적용한 내용들을 정리해보고자 한다. 본격적인 얘기를 하기 전에, 성능 지표에 관한 키워드 정리부터 해보자. LCP Largest Contentful Paint의 약자로, 화면 안에서 가장 큰 콘텐츠가 표시되기까지 걸린 시간을 말한다.CSR에서는 첫 html 파일이나 첫 이미지 파일 등이 해당 될 수 있겠다. Layout Shift페이지가 로딩되거나 동작하는 중에 텍스트, 이미지, 버튼 등의 위치가 예상치 못하게 움직이는 현상을 말한다.예를 들어 버튼을 누르려는 순간 위에 이미지가 나타나면서 버튼이 아래로 밀리는 현상이 바로 Layout Shift이다. CLSCumulative..
[주차의 민족] 응답 데이터 타입 가드를 위한 zod도입
·
프로젝트/주차의 민족
들어가며기술 요구사항 충족을 위해 API 응답 데이터 타입 가드를 진행했는데, 반영하자마자 타입 가드의 중요성을 바로 느끼는 경험을 하게 되었다.무슨 경험을 했는지는 글의 마지막에서 소개하겠다. API 응답데이터 타입 가드를 하려다가 이런 생각이 들었다.이미 서버 응답 타입을 interface로 전부 정의해두고 있는데, 이걸 그대로 이용해서 실제 응답도 검증할 수 있지 않을까?예를 들어 이런 타입이 있었다.export interface Destination { destinationId: string; name: string; address: string; roadAddress: string | null; latitude: number; longitude: number; provider: 'N..
[컨퍼런스] 처음 가본 개발자 컨퍼런스 - 그리디콘
·
대외활동
2026년 9월 17일, 세종대학교에서 열린 그리디콘에 다녀왔다.개발자 컨퍼런스에 직접 가보는 건 처음이었다.컨퍼런스 영상이나 다른 사람들의 후기는 종종 봤지만, 직접 참여하는건 처음이라 꽤 기대됐다.특히 우테코 프론트엔드 코치인 준도 연사로 참여한다는 이야기를 듣고 더 기대됐다.매일 우테코에서 보던 코치를 밖에서 연사로 만나는 것도 조금 신기할 것 같았다.무료로 참여하는 컨퍼런스였는데 생각보다 준비도 잘 되어 있었다.무선 충전 마우스패드도 받았고, 저녁으로 햄버거와 콜라도 제공해주셨다.사실 이때부터 이미 꽤 만족했다. 첫 번째 발표는 우테코 7기 출신이자 현재 우아한형제들에서 백엔드 개발자로 일하고 계신 민서현님의 발표였다.주제는 ‘내가 가진 것에서 시작하는 취업 준비’였다.제목만 들었을 때는 자소서..
[주차의 민족] 지도 이동으로 목적지 재설정하기
·
프로젝트/주차의 민족
들어가며주차의 민족에서는 사용자가 목적지를 검색한 뒤 해당 목적지 주변의 주차장을 추천받을 수 있다. 기존에는 검색 결과에서 선택한 장소가 그대로 최종 목적지가 되었다.하지만 사용자가 항상 정확한 장소명을 알고 검색하는 것은 아니다. 지도에서 목적지 주변을 살펴보다가 검색 결과와 조금 떨어진 건물이나 특정 위치를 목적지로 설정하고 싶을 수도 있다.이를 위해 목적지 확인 화면에 중앙 고정 핀을 표시하고, 사용자가 지도를 움직여 목적지를 다시 설정할 수 있는 기능을 구현했다. 지도 이동이 끝나면 중앙 좌표를 백엔드에 전달하고, 역지오코딩 결과로 받은 장소명을 새로운 목적지로 사용한다.전체 동작 흐름은 다음과 같다.검색 결과에서 목적지 선택→ 선택한 목적지 좌표로 지도 이동→ 화면 중앙에 고정 핀 표시→ 사용..