-
전시 딜 내재화 프로젝트 회고: MongoDB 기반 데이터 구축과 API 개선 과정
안녕하세요, 11번가 전시서비스개발팀의 서장원입니다. 전시 딜 내재화 업무를 맡아 진행했던 과정과 개선 작업이 갖는 의미에 대한 개인적인 회고를 공유해 보고자 합니다. 내용 이해를 돕기위해, 기초적인 질문을 던져봅니다. 출처: https://chimhaha.net/story/111311 ‘딜’ 그리고 ‘내재화’ 라는게 무슨 뜻인가요? 딜은 상품 판매를 위한 판촉행사라고 생각하면 쉽습니다. 예를 들어, 단 10일간! 사과 한 박스에 단돈 3만원! 내재화는 외부 기술/데이터를 가져와서 우리만의 특성에 맞게 조정하고 직접 관리한다는 뜻입니다. 즉, 상품의 판촉행사 정보를 보여주는 영역에 필요한 정보는 우리 전시서비스개발팀에서 직접 구축하고 입맛에...
-
Java CompletableFuture로 비동기 적용하기
안녕하세요. 11번가 클레임개발팀 박지훈입니다. 중앙 집중식 데이터베이스를 영역별로 분리하는 탈중앙화를 대비하여 분리 대상 테이블을 참조하고 있는 쿼리를 분리하고, 이관하는 작업을 진행하고 있습니다. 코드를 이관하는 과정에서 가장 중요한 부분은 as-is, to-be 결과를 비교하는 부분일 텐데요. 기존 결과 비교를 위해 이관 전/후 로직을 실행하는 부분이 순차적으로 실행되다 보니 전체적인 실행시간이 두 배로 증가하는 문제를 마주하였고, 1초 차이로 조회 결과가 달라지는 경우 이관 전 로직 실행이 완료된 이후 이관 후 로직이 실행되면서 정상 케이스임에도 결과 비교가 실패하는 문제를...
-
DB Function To Java 전환으로 기술부채 갚기
안녕하세요 11번가 쿠폰/정산개발팀에서 프로모션 파트 개발을 하고 있는 문상록입니다. 올해에 십수년간 운영되던 프로모션 조회를 위한 오라클 DB Function을 Java API로 전환했습니다. 그 과정과 여러 이슈 해결과정을 공유드리고자 포스트를 작성하게 되었습니다. 참고로 본 포스팅은 소스코드나 설계와 같은 세부사항은 담겨있진 않아서 전체적인 프로세스를 가볍게 읽어본다고 생각하시고 봐주시면 감사하겠습니다 ^^ 일정 규모가 있는 회사라면 개발자가 함부로 건드리기 어려운 영역이 있습니다. 밑에 라이온킹 심바가 가지말라고 하는 ‘레거시 코드’라는 영역입니다. 어디든 발견할 수 있는 레거시들 제가 담당하고 있는 프로모션쪽에도 여러...
-
Java로 만들어진 Kubernetes Operator - 어떻게 테스트할까?
안녕하세요. 11번가 Core Platform 개발팀의 김보배입니다. 앞선 블로그 글(Service Discovery 통합을 위한 Kubernetes Operator 구현 - Eurekube Operator)에서 Eurekube Operator의 아이디어, 설계에 대해 이야기해보았습니다. 이번 글에서는 Eurekube Operator의 개발을 마치고 제대로 동작하는지 확인하기 위해 어떻게 테스트했는지에 대해 이야기해보고자 합니다. 이전 블로그 글을 읽었다는 전제하에 작성한 글로, 만약 아직 읽지 않으셨다면 읽고 오시길 추천드립니다. Integration test with Testcontainers 11번가에서는 안정적인 애플리케이션을 개발하기 위해 테스트 코드를 최대한 작성하고 있습니다. 테스트는 유닛 테스트와 통합 테스트로 나누어 구성하고 있으며,...
-
Java proxy setting guide
안녕하세요. 11번가 Platform Engineering 팀의 서버 개발자 김보배 입니다. 서버 구성에서 보안적인 이유 등으로 Proxy 서버를 중간에 두고 허용된 요청만을 처리하도록 하는 경우가 많습니다. 그런 경우, 애플리케이션 단의 요청에서 Proxy 서버를 거쳐 갈 수 있도록 설정을 따로 해주어야만 합니다. 그래서 이번 글에서는 Java 언어/Spring 환경에서 Proxy 설정을 어떻게 하는지 다뤄보고자 합니다. 특히, Java에서 대표적인 Http client인 URLConnection, Apache HttpClient, RestTemplate, Feign 에서의 설정법을 다뤄보겠습니다. 목차 들어가며 System Property를 통한 Proxy 설정 System Property 란 System...