안녕하세요. Seller & SD Engineering 팀의 박명훈입니다. 오늘은 자바의 기본적인 Date와 Time API에 대해서 간략하게 정리합니다. Date와 Time API에 대해서 많이 사용을 하고 있으나 이에 대해 좀 더 상세하고 어떤 경우에 어떤 값을 쓰는지에 대한 고찰이 부족하다고 생각하여, 이에 대해 정리합니다. 기존 Java의 날짜 API의 문제. Java 8 이전에 사용하던 Date 관련 클래스는 Date, Calendar, SimpleDateFormat 등이 있었으나, 많은 문제가 있어 자바 8 버전 이후부터는 새로운 날짜 관련 API를 제공합니다. 기존 클래스들의 문제는 다음과 같습니다. 1. 부적절한 클래스와 메서드 이름을 가집니다. Date 클래스의 경우, TimeStamp ..
안녕하세요. SmilePay Engineering 팀 문한국입니다. 이번 글에서는 스마일페이의 보안성 강화를 위하여 로그인 비밀번호 암호화를 도입한 사례를 공유하려고 합니다. 선정 배경 스마일페이는 고객의 결제와 관련된 업무를 하다보니 보안을 상당히 중요시 합니다. 그래서 로그인 비밀번호의 경우도 HTTPS 통신을 통한 SSL 보안과 더불어 RSA 암호화를 통해 로그인 비밀번호를 암호화 후 통신하고 있습니다. HTTPS 의 경우 네트워크 구간에서는 비밀번호의 암호화가 이루어지나, 네트워크 전송 전 구간에서의 보안은 취약하였습니다. 아래 그림은 로그인 비밀번호 암호화를 도입하기 전 브라우저 개발자 도구 네트워크 탭을 캡쳐한 것입니다. 로그인 버튼을 눌렀을 때 개발자 도구 네트워크 탭에 찍힌 것과 같이 비밀..
소개 안녕하세요:) 지마켓에서 데이터로 여러 가지 흥미로운 개발을 하고 있는 한한주입니다. 이번에 소개해 드릴 내용은 탐색적 데이터 분석 흔히 EDA(Exploratory Data Analysis)라고 불리는 분석기법에 대한 내용입니다. 처음 정제되지 않은 대용량 데이터를 마주하면 정신이 혼미해 지기 쉽습니다^^; 이럴 때 데이터 형태를 정의하고 탐색적 분석을 통해 시각화하면 좀 더 친근하게 데이터 분석을 시작할 수 있습니다. 그럼 Start! EDA란? 위키백과에 따르면 EDA는 미국의 저명한 통계학자가 창안한 자료 분석 방법론입니다. 기존의 통계학이 정보의 추출에서 가설 검정 등에 치우쳐 자료가 가지고 있는 본연의 의미를 찾는데 어려움이 있어, 이를 보완하고자 주어진 자료만 가지고도 충분한 정보를 찾..
지마켓 대기열 시스템 파헤치기 안녕하세요 VIP & Vertical 팀 김윤제입니다. VIP 파트에서 상품 상세 페이지 및 리뷰 업무를 맡고 있습니다. 이번 블로깅에서는 Auction, Gmarket에서 사용하고 있는 대기열 시스템인 Redcarpet에 대해 소개하려 합니다. Redcarpet Redcarpet은 Auction, Gmarket의 대기열 시스템으로 일시적으로 많은 트래픽이 발생하는 서비스에 과도한 트래픽의 유입을 방지해 주고 시스템을 보호합니다. 대기열 시스템 Redcarpet의 이름은 대형 홀 등의 줄을 서서 기다리는 곳에 깔린 레드카펫에서 유래되었습니다. Redcarpet의 도입이유 Big Smile Day, Big Sale 등의 이벤트 또는 인기 있는 상품에 대해 트래픽이 몰리는 순간..
안녕하세요 Post-tx & Accounting팀 권우석입니다. 최근 온보딩 프로젝트를 함께했던 Shopping Service API팀의 김도훈님의 제안으로 회원가입/로그인 API를 간단하게 구현하는 토이 프로젝트를 진행하고 있는데요. 이번 글에서는 토이 프로젝트를 진행하며 고민했던 아래 주제에 대해 다뤄보려고 합니다. 1. 인증/인가를 어떻게 구현할 것인가? 2. 인증/인가 로직을 어디에 구현할 것인가? 인증과 인가란? 인증이란 사용자의 신원을 검증하는 프로세스를 뜻합니다. 가장 간단한 예시로는 ID와 PW를 통해 로그인하는 행위를 인증이라 할 수 있죠. 인가는 인증 이후의 프로세스입니다. 인증된 사용자가 어떠한 자원에 접근할 수 있는지를 확인하는 절차가 바로 인가이죠. 로그인을 예시로 들었듯이 거의 ..
MSA 환경에서의 장애 양상 우리는 장애를 피할 수 없습니다. 아무리 실력이 좋은 소프트웨어 개발자라 할지라도 완전무결한 시스템을 만들 수 없습니다. 물론 우리도 여러 방법으로 장애에 대응하고 있었습니다. 서버를 클러스터링하여 일부 서버에 문제가 발생하더라도 클라이언트는 정상 동작중인 다른 서버를 이용할 수 있습니다. 인프라를 분산 구축하는 것도 이러한 전통적인 장애 대응방식 중 하나입니다. 우리는 서버 클러스터링, 인프라 분산 구축과 같은 기존의 장애 대응 방식은 시스템의 완전한 실패를 대비하여 설계되었다는 것에 주목해야 합니다. 하드웨어 장비에 문제가 생겨 서버에 전원 공급이 안되거나 자연재해로 인해 데이터 센터의 데이터가 유실된 경우라면 이런 기존의 장애 대응 방식으로 우리는 큰 도움을 받을 수 있..
적은 리소스 적당한 효과 개발자는 종종 레거시 시스템이나 코드를 마주할 때가 있습니다. "레거시" 는 양면적이어서 잘 돌아가고 있는 시스템이면서도 앞으로의 요구사항 변경에 수용력이 부족해 보이는 시스템이기도 합니다. 이러한 레거시와의 공존은 필연적이면서도 효과적인 공존을 위한 부단한 아이디어들을 필요로 하기도 합니다. 보통 레거시 시스템을 대할 때면 이런 문장을 머리에 두고 생각합니다. "적은 리소스만 들여서 적당한 효과를 얻을 방법이 없을까?" 항상 이런 접근만이 답이 되진 않지만 레거시 시스템은 우리에게 친절하지만은 않습니다. 조금 까탈스러운 제약이나 조건들을 가지고 있죠. 조금 지난 미션이지만 재미있게 해결했던 사례를 한번 소개하고자 합니다. 레거시 시스템 소개 우리 팀의 주요 역할은 주문 시스템의..
안녕하세요 Data Platform Engineer 조광진입니다. 2019년에 지마켓 Data Platform 팀에 합류하여 데이터 플랫폼에 관련된 다양한 업무를 진행하고 있습니다. 저희 팀에서 하는 업무에 대해 간단하게 설명드리면 글 전반적인 내용에 도움이 될 것 같아 먼저 소개하도록 하겠습니다. Hadoop 기반의 빅데이터 플랫폼인 Data Lake 활용을 통해 전사에서 활용되는 데이터의 수집, 적재, 분석에 대해 직 간접적으로 도움을 드리고 있으며, 비정형 데이터를 다양하게 활용하기 위한 Redis, Elastic Search, MongoDB 데이터 플랫폼도 운영하고 있습니다. Data Platform 팀이 사용하는 기술 스택은 아래와 같습니다. 팀 목표는 사용자들에게 안정적이고 편리한 데이터 플랫..