T
TechInsights
목록으로
FrontEnd•2024. 06. 30.

신규 서비스 "꿀템"을 만들기 위한 여정(네? 다음달까지요?) -1편

지마켓
지마켓 Engineering Team
신규 서비스 "꿀템"을 만들기 위한 여정(네? 다음달까지요?) -1편

핵심요약

원문 보기

이 글은 '꿀템 피드'라는 신규 서비스(G-world)를 기획하고 데이터베이스를 설계하는 과정을 다룹니다. 개발 초기 단계의 네이밍, 확장성을 고려한 테이블 설계, 그리고 사내 시스템과의 연동 고민 등 지속 가능한 개발을 위한 구체적인 설계 과정을 설명합니다.

꿀템 피드 서비스 개발 여정: 지속 가능한 설계를 위한 데이터베이스 구축

신규 서비스 G-world의 탄생 배경

  • '꿀템 피드' 서비스는 임직원 추천 상품인 **챗GBT(Gmarket Best iTem)**를 고객에게 확장하고, 고객 참여형 커뮤니티 기능을 도입하려는 니즈에서 시작되었습니다.
  • 개발자는 신규 서비스 론칭 경험 부족에도 불구하고, 사이트에 새로운 활기를 불어넣을 기회로 인식하며 개발 여정을 시작했습니다.
  • 이 글은 신규 서비스 개발 시 마주하는 막막함을 줄이고 시행착오를 감소시키는 데 중점을 둡니다.

확장성을 고려한 G-world 데이터베이스 설계 및 네이밍

  • 핵심 개념 네이밍: 직관적 이해와 기존 개념과의 혼동 방지를 위해 Attraction (공유 게시판), Ride (게시글/컨텐츠), Passenger (작성 회원) 개념을 정의하고, 프로젝트명을 G-world로 명명했습니다.
  • 테이블 및 컬럼명 규칙: Attraction은 사내 메타 데이터 검색 후 **ATRC**로, Ride는 그대로, Passenger는 항공업계 약어 **PAX**로 축약하여 컬럼명을 설계했습니다.
  • DBMS 및 정규화: 데이터 정합성, 성능, 확장성을 고려하여 Oracle을 DBMS로 선정하고, 데이터 중복 최소화 및 구조 확장 용이성을 위해 테이블을 정규화했습니다.
  • Passenger 테이블 설계: G마켓, 옥션, 관리자 계정의 중복 문제 해결을 위해 user_id, member_identifier, site_type 속성을 활용하여 논리적 관계를 맺고, Passenger 테이블의 PK만으로 유일한 탑승객을 식별하며 개인정보는 저장하지 않도록 설계했습니다.
  • 공통 컬럼 관리: Insert Operator, Update Operator는 시스템 정보를 저장하도록 별도 공통 컬럼을 정의하고, 고객 개인정보를 포함하지 않도록 모든 테이블에 적용했습니다.

초기 기획 검토 및 POC 확정

  • 팀원들과 함께 Attraction의 노출 및 속성, Ride의 다양한 업로드 형태(구매 내역 기반 등), Linkrew 연동 등 서비스 세부 기능을 구상했습니다.
  • Content Quality 관리 방안으로 이용약관 동의, 동일 상품 Ride 묶음, 선 게시 후 모니터링 및 신고 기능 등을 논의하고 개발 필요성을 인지했습니다.
  • 논리적/물리적 ERD를 구성하고, 사내 Meta 데이터 관리 시스템을 통해 Attraction이라는 새로운 주제영역을 신청하여 테이블을 생성했습니다.
  • 현업에서는 성능과 유지보수를 위해 물리적인 외래키(FK)를 정의하지 않고, Meta 시스템을 통해 데이터 정합성을 보장하는 방식을 채택했습니다.
  • 초기 기획 검토 후 빅스마일데이(BSD) POC 적용이 확정되었고, 짧은 개발 기간에도 불구하고 팀원들의 협업으로 데이터베이스 구축이 성공적으로 완료되었습니다.
#FrontEnd#BackEnd#Architecture
지마켓
지마켓

지마켓 Engineering Team

기술 인사이트를 전달하는 공식 채널

You might also like

View all
토스 피플 : 새로운 길을 만들 땐 내 선택을 믿는다

토스 피플 : 새로운 길을 만들 땐 내 선택을 믿는다

"이 버튼 왜 안 눌려요?" 물류 현장의 목소리로 PDA 시스템 완성하기

"이 버튼 왜 안 눌려요?" 물류 현장의 목소리로 PDA 시스템 완성하기