GS리테일 DX 블로그

Digital Transformation으로 고객 생활 가치의 이노베이션을 꿈꾸는 IT 사람들의 이야기

분류 전체보기 48

엔터프라이즈 MSA 이야기 2탄-RateLimit 적용으로 시스템장애 예방하기

안녕하세요. GS리테일 홈쇼핑부문의 주문서비스팀 이민주 매니저(닉네임 Julee)입니다. 저는 GSShop에서 고객과 서비스, 서비스와 서비스를 연결하는 다양한 연계 업무를 담당하고 있으며, 주문서비스의 MSA 전환을 위한 주문구조개선에서는 시스템아키텍트 역할을 하고 있습니다. IT종사자분들에게 흔히 겪을 수 있는 장애가 무엇인지 물어본다면, 과도한 요청으로 인하여 이를 처리하는 과정에서 발생하는 응답지연, 시스템 중단 등의 장애를 떠올리시는 분들이 많으실 겁니다. e-Commerce 환경에서도 동일합니다. 홈쇼핑 방송, 모바일앱, 카카오톡 등 수많은 채널을 통하여 발생하는 고객의 주문은 수많은 행위의 서비스 요청(트래픽)을 발생시키게 됩니다. 트래픽이 늘어난다는 것은 고객의 관심과 매출이 증가하는 것이..

APP 2023.06.20

GS SHOP App의 메모리 확보

GS SHOP 서비스에서 모바일 앱 개발 및 메시지 시스템 운영을 맡고 있습니다. 현재 단말의 성능은 대부분의 앱들이 소비하는 자원을 충분히 감당할 수 있는 성능을 가지고 있지만, 앞으로 VR, AR 등 많은 자원을 소모하는 앱 서비스들이 많아지면, 예전 단말처럼 자원이 부족하게 될 가능성이 높습니다. 이로 인해 GSRetail App들의 서비스 안정성이 떨어질 수 있기 때문에, 예전에 적용했던 GSSHOP App에서의 메모리 확보 방법에 대해 이야기하려고 합니다. iOS (iPhone OS) 기준으로 이야기를 할 것이니 이점 참고 바랍니다. GS SHOP App 분석 제가 이 회사에 처음 입사하여 가장 먼저 개발해서 추가했던 것이 바로 App crash 정보 수집 기능입니다. 운영 중인 App을 개선하..

APP 2023.05.12

안드로이드 포그라운드 서비스를 활용한 메모리부족으로 앱 종료되는 현상 개선

배경 우리동네GS 앱은 기존 ‘나만의 냉장고’ ‘GS THE FRESH’ ‘우리동네딜리버리’ 3개의 앱(GS25, GS The Fresh, 퀵커머스, 와인25플러스 4개의 비즈니스)을 하나로 통합하였다. 웹뷰기반의 하이브리드앱인 기존 서비스들을 Flutter를 사용하여 완전히 새롭게 개발하였고, 기존의 비즈니스와 기능을 단순 통합하지 않고, 새로운 비즈니스(픽업등)와 기존 앱의 가장 불안정한 랜더링 및 서비스 성능을 높이는 것이 주요 프로젝트의 목표였다. 새로운 기획&디자인을 만족하고 더 나은 성능의 새로운 앱을 만들기 위해, Front- end / Back-end에 다양한 솔루션을 도입했고, Front-end 는 메뉴 진입 속도 개선등을 위한 솔루션 사용으로 메모리 사용량 이슈(특히 구형 Android..

APP 2023.04.17

DB migration 방법론

안녕하세요 클라우드팀 백승엽 매니저입니다. 아시는 분들은 아시겠지만, 홈쇼핑에서 사용하고 있던 IDC의 사용 주기가 만기됨에 따라 해당 IDC의 시스템 이전 방안에 대해 다각도로 검토하였고 현재, 클라우드 환경인 AWS로 IDC 이전을 계획 및 진행중에 있습니다. 이 시기와 더불어 2월에 IDC to AWS DB POC를 진행한 경험과 WEBDB를 aurora postgres로 전환이 진행되고 있는 것을 함께 묶어 DB migration 시 반드시 확인하고 고려해야 할 방법론에 대한 글을 써보고자 합니다. (실은 예전에 써두었는데, 노트북 메인보드 교체하면서 원노트 글이 사라졌다죠.. 하핫... 다시 쓰는 맛이 참 좋네요... ㅜㅜ) 현재 홈쇼핑에서 사용중인 DB는 ORACLE 외에 mysql, auro..

Cloud&Security 2023.04.11

Kafka 도입 스토리 - 홈쇼핑 방송영역 활용 사례

들어가며... 개발자 온라인 커뮤니티 중 하나인 DZone의 2022년 리서치에 의하면 개발자의 마이크로서비스를 운영하는 비율이 93%라고 합니다. 마이크로 서비스에 대한 부정적 의견들도 나오고 있지만 2021년 74%에 비하면 계속적으로 증가하는 추세입니다. 마이크로서비스를 설계한다는 것은 통합환경에서 분산환경으로의 전환을 의미합니다. 이는 어플리케이션간의 상호 의존성(결합도)을 적절하게 관리하는것이 중요합니다. 샘뉴먼의 "마이크로서비스 도입, 이렇게 한다" 는 책에서는 분산환경하에서 중요한 coupling의 종류를 4가지로 들고있습니다. Implementation Coupling, Temporal Coupling, Deployment Coupling, Domain Coupling 입니다. 자세한 설명..

Cloud&Security 2023.02.20

엔터프라이즈 MSA 이야기 1탄 - 주문서비스(Milestone1)

안녕하세요. 주문서비스팀 김헌기입니다. 회사에서는 Darion으로 불리고 있습니다. 이번에는 엔터프라이즈 환경에서의 레거시 서비스 구조개선에 대한 현실적인 이야기를 적어보려고 합니다. MSA에 대해 고민하고 계시거나 관심이 있는 분들께 도움이 되었으면 합니다. 1.주문 구조개선은 왜 필요했는가 ... 먼저 주문 구조개선을 왜 해야 했는지에 대해 기존 레거시 상황에 대한 이해가 필요합니다. 위의 그림을 보면 고객이 주문하면 각 주문인입 채널이 있는데 채널계에서 시작하여 핵심 비니즈니스 로직이 있는 기간계를 거쳐 대외서비스를 연계하는 대외계까지 데이터가 흘러가는 구조를 볼 수 있습니다. 채널계 -> 기간계 -> 대외계 중에 여기서 중점적으로 봐야 하는 부분이 가운데에 있는 기간계인데요. 기간계 시스템의 구조..

Cloud&Security 2023.01.02

오래된 DB와 이별하는 방법

안녕하세요. 분명히 SM으로 입사하였으나, SI 업무만 할당받는 느낌같은 느낌의 클라우드팀 DBA 백승엽 매니저입니다. 지난 번 작성한 "SMTC(주문결제)DB 품으로 날아간 결제모듈" 이후 " 오래된 DB와 이별하는 방법 "이라는 주제로 두번째 글을 써보려고 합니다. Why? 입사 이후, 가장 충격적이었던건 이 한 줄로 대신할 수 있을 것 같습니다. " 2022년에 ORACLE 9i가 웬말이니? " 업무 소개를 해주던 클라우드팀 문광모 매니저에게 처음 한 말이 아직 기억납니다. " 네? 9i DB가 있다뇨... 그게 무슨 말씀이세요? " 라는 물음을 던졌던 기억이 납니다. 9i DB의 업그레이드는 많이 해봤습니다만, 너무도 예전이었죠... 아마 대략 2010년쯤 많이 했고, 늦었어도 2012년이 마지막..

Cloud&Security 2022.12.27

SMTC(주문결제)DB 품으로 날아간 결제모듈 이관 스토리

안녕하세요. 클라우드팀 백승엽 매니저입니다. 얼마전, 주문P팀의 결제모듈을 ODS(방송넷)DB에서 SMTC(주문결제)DB 로 이관하며, 경험한 것에 대해 나누고자 글을 씁니다. 한 기업에 DB를 처음 만들게 되면, 점차 시간이 지나 업무 범위가 넓어지고, 필요한 기능이 점차 추가되고 DB의 크기가 커져가면서, DB 내에 많은 업무와 관련된 종속성이 생기고는 합니다. 물론, 다른 프로젝트나 혹은 기존 업무와 관련된 새로운 DB가 생기면 DB link 혹은 EAI로 연동되고 여러 DB간의 관계 또한 생겨나지만, 흔히 말하는 24X7 365로 운영되는 실시간 주요 업무들은 이미 많이 복잡해진 이후라, 특정 기능을 이관하려 할때 고려해야할 요소가 많아지고 빠른 시간 내 이관이 불가능해지는 경우가 많습니다. 이번..

Cloud&Security 2022.11.09

Nginx 기반의 API Gateway 구현(with Python)

시작하며 IT이노랩의 김광섭입니다. GS리테일에서 업무를 한지 벌써 1년이 지났습니다. 제가 속한 이노랩에서는 여러가지 일을 하고 있으며 최근에는 GSRetail API HUB프로젝트를 통해 1차 결과물을 냈습니다. 이미 다른 회사에서 API Gateway 관련 개발을 진행 했었고 현재도 사용 되고 있지만, 이 프로젝트를 진행하면서 시도한 새로운 경험을 공유하기 위해 이 글을 쓰기 시작했습니다. 기존에 이미 널리 퍼진 기술들이 있기 때문에 새로운 방식이 크게 의미가 없을 수 있습니다. 하지만, 기술이 쉽게 설명되고 쉽게 사용될 수 있으면 그 기술을 이해하고 사용하는 개발자들은 다른 시각을 가지고 문제를 해결 할 수 있기 때문에 개발자들에게는 작게나마 도움이 될 것이라고 생각합니다. nginx 란? ngi..

Cloud&Security 2022.10.07

Design Token으로 GS SHOP App 디자인 시스템 구축 스토리

안녕하세요. 저는 GS SHOP Mobile 개발팀에서 디자인 시스템 구축을 담당하고 있는 이인영입니다. 디자인 시스템에 대해 Product UX 팀의 박이슬 매니저님께서 상세히 작성해 주신 내용들이 있기에 저는 간략하게 디자인 시스템에 대해 설명하고 현재까지 어떤 방식으로 디자인 시스템을 작업하고 있는지, 디자이너와 개발자의 협업과 디자인 토큰이 무엇인지 그리고 디자인 토큰을 정의하여 테마를 적용해 보는 것에 대해 이야기해 보려고 합니다. 작년 9월 말 모바일 개발팀에 합류하게 되면서부터 GS SHOP 디자인 시스템을 구축하기 시작했습니다. 디자인 시스템은 회사 내에서 많은 분들이 관심을 가지고 계시는 분야이기도 하고 전 세계적으로도 계속해서 뜨거운 이슈입니다. Google의 Material Desig..

Design 2022.07.04