logo
logo
이커머스
중고나라
기술 스택 신뢰도:
최근 업데이트: 2023. 09. 18
서울특별시 서초구 서초대로 301
기술 스택
언어
프론트엔드
모바일
테스팅툴
백엔드
데이터베이스
데이터
데브옵스
협업툴
techstack-logo
Javascript
techstack-logo
Typescript
techstack-logo
Python
techstack-logo
ReactJS
techstack-logo
NextJS
techstack-logo
Recoil
techstack-logo
ReactorKit
techstack-logo
Flutter
techstack-logo
Retrofit
techstack-logo
Google Firebase
techstack-logo
Lottie
techstack-logo
Fastlane
techstack-logo
Dart
techstack-logo
Java
techstack-logo
Swift
techstack-logo
Kotlin
techstack-logo
Go
techstack-logo
AWS Kinesis
더 보기
기술 블로그 글
분석 친화적인 데이터레이크로 진화하기
그런데, Iceberg와 DuckDB를 사용한..안녕하세요. 중고나라 머신러닝팀 데이터엔지니어 황솔희입니다.낯설고 넓은 사무실에서 메모장을 찾아야할 때, 여러분들은 어떻게 소통하시는 것이 더 편하신가요?질문: 메모장은 어디에 있나요?답변1: 메모장은 라운지 왼쪽에서부터 3번째에 있는 서랍의 2번째 칸의 1번째 파티션에 있어요.답변2: 메모장은 라운지 서랍 중에 사무용품 라벨링이 붙어있는 곳에 있어요.대부분이 전자처럼 위치를 정확히 서술하는 것보다 후자와 같이 간결하게 얘기하는 것이 더 편하실 거에요.또 누군가 답변을 해주지 않는다면 서랍을 하나씩 열어가면서 메모장이 있는지 없는지 확인해야할 거에요.데이터도 이와 비슷한데요 😀데이터를 “답변1”과 같이 물리적으로 설명하는 것보다 “답변2”처럼 논리적으로 얘기하면 데이터를 분석하거나 커뮤니케이션 할 때 훨씬 간결하게 사용하실 수 있어요. 또, 서랍에 무엇이 들어있는지를 탐색하는 것과 비슷하게 필요한 데이터도 쉽게 파악할 수 있는데요,오늘은 중고나라에서 데이터 사용자를 위해 이런 점을 고민하고 아키텍쳐를 개선했던 경험을 공유드리고자합니다.핵심 키워드Apache IcebergDuckDB중고나라의 데이터 아키텍쳐 — Before중고나라에서는 AWS S3에 bronze tier의 raw 데이터를 저장하고 이후 일정 시간 배치를 통해 전처리 및 bulk하는 작업을 거쳐 다른 경로에 저장하고 있어요. 이럴 경우 아래와 같은 문제점이 있었어요.문제점파일 데이터를 분석하기 위해 Python의 Pandas 라이브러리를 사용하고 있으며, Pandas에 익숙하지 않은 경우에는 러닝커브로 인해 분석이 힘들었어요.인트로에서 서랍에 비유했던 것처럼 정확한 S3 파일 경로를 통해 AWS SDK를 사용하여 데이터를 가져와야해서 S3의 정확한 경로를 모르거나 개발자가 아닌 경우는 사용하기 어려웠어요.AWS Athena로 파일 데이터를 SQL을 통해 조회할 수 있지만 파일 스캔 당 요금이 과금되며 로컬 머신에서 실행되지 않을만큼 많은 양의 데이터가 아닌 경우 오버스펙이 될 수 있어요.위와 같은 점에서 고민을 하며, 이를 Apache Iceberg와 DuckDB를 통해 풀어가려고 했는데요,이 두가지를 조금 더 자세히 설명 드릴게요.🙂Apache IcebergApache Iceberg는 대용량 분석을 위한 high-performance format 으로 아래와 같은 특징이 있어요.데이터 스키마 관리ACID데이터 버저닝 및 파티셔닝SQL 을 사용한 데이터 관리데이터 저장 프로퍼티 관리Iceberg Data CatalogIceberg를 사용하기 위해서는 데이터의 메타 데이터를 저장할 카탈로그가 필요해요.메타 데이터는 용어처럼 “데이터를 설명하는 데이터”로 Iceberg의 경우 메타 데이터로 다음 정보를 가지고 있어요.데이터가 어디에 저장되어있는지?데이터의 스키마는 어떠한지? 어떤 데이터인지?데이터의 압축은 어떻게 되어있는지?히스토리는 어떻게 변했는지?MySQL, PostgreSQL과 같은 데이터베이스나 Hive를 카탈로그로도 사용
python
spark
Karpenter 도입 무엇이든 물어보살
Table of contents1. Karpenter 도입 배경 ∘ Why Karpenter?2. Karpenter 도입 과정 ∘ AWS Fargate 도입 ∘ Pod를 On-Demand와 Spot에 나눠서 스케줄링 하기 (capacity spread) ∘ 깡통 파드(empty pod)로 기본적으로 생성 할 Worker Node 구성 ∘ disruption 정책 (노드 삭제 정책) ∘ 비업무 시간 노드 생성/삭제 스케줄링 ∘ Karpenter 지표 모니터링 ∘ Karpenter 로그 모니터링3. Karpenter를 도입하면서 겪은 이슈들 ∘ Drift — Karpenter의 새로운 Distruption 방법 (v0.33.1 기준) ∘ IMDSv2 ∘ Inferentia 타입의 인스턴스4. Karpenter 도입 후기안녕하세요. 중고나라 DevOps 엔지니어 조상현, 김지헌입니다.확장성과 안정성에 대한 고민을 해결하기 위해 새롭게 도입 했던 AWS Karpenter 에 대해 공유를 해보려 합니다.Karpenter 도입 배경중고나라는 회사의 성장과 함께 기능이 지속적으로 추가되면서 리소스 사용량이 증가하고 있는 상황에 직면하게 되었습니다하지만 기존의 인프라는 느린 Provisioning 속도로 인한 문제를 피하기 위해 CA를 채택하지 않고 더 많은 리소스를 사용하여 안정성을 우선시키고자 했습니다.이러한 결정은 안정성 측면에서는 유리하지만, Worker Node의 확장성이 제한되고 많은 비용이 발생한다는 단점이 있었는데요….Why Karpenter?그럼 기존 CA(Cluster Autoscaler)도 사용을 안했는데 왜 Karpenter를 사용했을까요?이를 알기 위해는 CA와 Karpenter의 워크플로를 알아야합니다CA의 워크플로는 아래와 같습니다.HPA를 통해 Pod가 생성 되고 리소스 상황에 따라 Pod는 적절한 Worker Node에 스케줄링 되지 못하고 Pending 상태에 빠집니다.CA 는 Pending Pod 의 상태를 관찰하다가 Worker Node에 할당을 실패하면 Node Group ASG의 API를 보내 Worker Node 개수를 증가하도록 설정합니다.이를통해 ASG는 새로운 Worker Node를 추가합니다.Worker Node가 생성되면 kube-scheduler가 Pod를 새 Worker Node에 할당합니다.즉 CA와 ASG 사이에는 통신을 해야하고 이에 따라 Provisioning 속도 또한 느려지는 상황이 발생하며 확장성 또한 문제를 유발할 수 있습니다.이렇듯 느린 Provisioning 속도로 인해 CA를 사용하지 않고 있었는데요.이에 반해 Karpenter는 빠른 Provisioning 속도를 제공하고 있습니다Karpenter의 워크플로는 아래와 같습니다.HPA를 통해 Pod가 생성 되고 리소스 상황에 따라 Pod는 적절한 Worker Node에 스케줄링 되지 못하고 Pending 상태에 빠집니다.Karpenter는 Pending Pod 의 상태를 관찰하다가 Worker Node에 할당을 실패하면 EC2 a
karpenter
kubernetes
nodejs
terraform
중고나라 인턴에서 정식입사까지!
중고나라 회사는 어떤 곳인가요?안녕하세요! 정식으로 중고나라에서 함께하게 된 따끈따끈한 신입 마케터, 김나연이에요. 지난 9월부터 약 3개월 간 인턴을 하고 지난 12월에 전환되어 중고나라와 함께하게 되었습니다. 사실상 입사 7일 차네요! 😚ㅤ💻 어떤 팀에 합류했나요?저는 서비스마케팅 팀에서 콘텐츠 마케터 직무를 담당하게 되었습니다. 중고나라에서 진행하는 다양한 이벤트의 기획과 운영, 그리고 중고나라를 더욱 빛낼 다양한 콘텐츠들을 기획하고 발행하는 일을 주로 하고 있어요. 매출에 기여하는 것도 중요하지만 “중고나라”라는 브랜드 이미지를 긍정적으로 만들어나가는 일에 더욱 집중하고 있답니다.ㅤ오늘은 신규입사자의 시선에서 바라본 중고나라의 모습을 공유해 보려고 합니다. 중고나라가 궁금하고 또, 함께하고 싶은 생각이 있으신 분들은 궁금해하실 것 같아요. 그럼 시작해 보겠습니다!ㅤ중고나라 신입 사원 온보딩🎉 중고나라에서의 첫날!입사하고 첫날에는 피플팀에서 준비해 주신 오리엔테이션을 듣고 중고나라 회사에 대해 궁금했던 점들과 회사 생활에 대한 다양한 점들을 질문하는 시간을 가졌습니다. 또 다 같이 스낵 코너, 회의실, 전화부스, 휴식 공간 등을 둘러보았어요. 스낵 코너에는 다양한 간식들이 구비되어 있는데, 먹고 싶은 간식이 있다면 요청해도 된다고 해요. 일하면 달달한 간식들이 당길 때가 많은데 중고나라에서는 원 없이 먹을 수 있겠더라고요!ㅤ📗 중고나라 가이드북에 다~있어요!첫날에는 노트북을 세팅하고 적응하는 시간을 가졌어요. 궁금한 게 정말 많았는데, “중고나라 가이드북”에 다 있었답니다. 회사 소개부터 입사자 필독사항, 업무 툴 이용 방법까지 친절하게 나와있어서 하나하나 읽어보며 업무 환경을 빠르게 세팅할 수 있었어요.그러면 여기서 인상 깊었던 복지 몇 가지를 소개해드리고 싶네요!ㅤ매달 중고거래 지원금을 지급해요.중고나라는 직원들이 중고거래를 원활하게 할 수 있도록 장려하는 정책을 시행하고 있는데요, 바로 매달 중고거래 지원금 지급! 저는 다음 달에 닌텐도 스위치를…..!중고거래를 하고 나서 어떤 점이 좋았는지, 아쉬웠는지, 개선할 점은 어떤 부분이 있는지 아이디어도 함께 적어 중고나라의 성장에 도움도 줄 수 있답니다.자유로운 도서 구매 신청과 교육 신청읽고 싶은 책이 있나요? 듣고 싶은 교육 강의가 있나요?직원들의 성장을 도와주는 도서와 교육 구매 프로그램이 있습니다. 저는 벌써 도서 3개나 신청했답니다. 신청한 도서는 다 읽고 책꽂이에 꽂아 두기 때문에 다른 분들이 신청한 도서도 읽을 수 있어요. 교육도 마찬가지랍니다!ㅤ🥪 샌드위치 드세요!제가 속한 조직에서 월 1회, 금요일 아침에 열리는 “샌드위치 데이” !오, 맛있겠다!라는 생각으로 풀박* 회의실로 갔습니다. 이미 많은 분들이 와계셨는데 처음에는 어리둥절하면서 샌드위치를 하나 집어 자리에 앉았습니다.*풀박이란? 중고나라에는 총 6개의 회의실이 있답니다. 그 이름이 정말 귀여운데요!중고나라의 구성원이라면 추구해야 하는 핵심 가치, J way를 담은 [ 도전 / 고객 관점 / 전문성 / 성장
[ ICT 인턴십 ] 웹개발팀에서의 4개월
💡 준비2023년 상반기는 파트장으로 가득 차있었다면, 하반기는 4–2라는 막학기만 남은 상황이었다.누군가에게 개발의 재미와 실력을 쌓게 해주는 사람으로 달려 왔기에, 이번에는 배움의 위치에서 성장해 나갈 수 있는 시간을 보내고 싶었다.그렇게 여러 기업들에 부딪혀보며 살아가는 중.세종대학교 학사 공지에서 ICT 학점 연계 프로젝트 인턴십을 발견하게 되었다.총 3군데에 지원이 가능했고, 프론트엔드 직무에 관심이 있었기 때문에 직무 적합도를 우선으로 살펴보았다.이후에는 내가 관심있는 도메인의 영역인지, 해당 기업을 가게 된다면 어떤 기여를 할 수 있을지 고민하며 기업 서류를 작성하였다.그렇게 코테를 무사히 진행하고 나서, 기업 면접에는 중고나라로부터 연락이 왔다.긴장되는 마음으로 그동안 공부했었던 CS 지식들을 복기하고, 경험에 대한 예상 질문도 추려보며 면접날을 기다렸다.약 1시간 정도의 다대다 면접을 진행하였고, 처음에는 많이 긴장했지만대화를 자연스럽게 나눌 수 있는 분위기에서 진행 되었기에 후반부로 갈수록 면접을 즐길 수 있었다.그 결과..!중고나라 웹개발팀에 최종합류하게 되었다!!🌼 입사2023년 9월 1일. 금요일. 이 날은 아직도 잊을 수 없다.어떤 일들이 펼쳐질지, 어떤 사회를 맞이하게 될지. 많은 생각이 지나쳐갔던 것 같다.입사 첫 날, 다같이 모인 7명의 인턴들피플팀으로부터 중고나라의 문화를 소개받고, 조직도를 파악하며 웹개발팀의 매니저로 자리잡기 위한 첫 발걸음을 내딛었다.이후에는 자리로 이동하여 , 웹개발팀의 스택과 폴더 구조 / 초기 셋팅을 진행하면서 중고나라 웹 사이트가 어떻게 구성되어있는지 분석하는 시간을 가졌다.Next.js와 Webview를 오고가며 통신하는 중고나라 웹사이트의 새로움을 발견하면서 약 2주간의 기술 학습을 가졌다.사실, SOPT를 하면서 여러 상황에서의 소통을 많이 한 경험이 있어서 잘할 수 있을 것이라는 막연한 생각이 들었다.하지만, 사회 초년생이라는 부분을 간과했던 것이다.회사는 사이드 프로젝트와는 달리, 체계적인 틀안에서 개발을 진행하는 것은 여러 단계를 거쳐야 했던 것이다.따라서 개발을 진행하는 것에 앞서, 정확한 프로세스에 대한 이해를 위해 반드시 질문은 필요했다.누구에게 물어봐야 하는 것인지부터 터득해야 했었고, 어떤 것을 어떤 방식으로 제시해야 하는지를 할 줄 아는 개발자.즉, 단순히 기능 구현만 할 줄아는 개발자가 아닌 소프트 스킬적인 부분을 갖춘 개발자가 필요한 사회라는 것을 깨닫게 되었다.이를 위한 준비의 시간으로 첫 한달을 지나왔다.💛 유즈데이적응의 시기에서 잠시나마 행복할 수 있었던 건 유즈데이였다.매월 첫째 주, 셋째 주 수요일에 진행되는 유즈데이를 통해 소중한 인연을 얻기도 했다. 나에겐 너무 감사한 시간이었다.카페에서 모여서 코딩스콘 베이킹 모임크리스마스 카페 투어 ㅎㅎ카페에서 독서 모임다양한 모임들을 통해 인사이트도 얻고, 여러가지 이야기들을 나눌 수 있어 감사했다.🖥️ 중고나라 웹 거래 기능 오픈기존 중고나라 웹은 SEO 수단과 검색 랜딩 페이지의 역할 정도로만 활용
Copyright © 2024. Codenary All Rights Reserved.