docker-compose를 이용하여 다수의 spring boot 프로젝트 연결하기 (Part 2)
docker-compose를 이용하여 다수의 spring boot 프로젝트 연결하기 Part 1 : docker-compose를 이용하여 로컬 개발환경 구성하기 Part 2 : docker-compose를 이용하여 다수의 spring boot 프로젝트 연결하기 개요 Part1에서 소개한 예제에서는 하나의 git repo로 구성된 java 멀티 프로젝트를 docker-compose를 이용하여 구성했습니다. 이번 Part2에서는 다른 git repo의 어플리케이션을 이용하여 Part1에서 생성했던 backend 서버 어플리케이션과 함께 동작하도록 구성해보겠습니다. 편의상 Part 2의 프로젝트는 frontend로 예제를 작성하였습니다. 개발 블로그에서 소개하는 코드들은 gmarket-techblog-fron..
BackendDevOpsFrontendTools
전체 읽기 →Spring 기반 OAuth 2.1 Authorization Server 개발 찍먹해보기
사실상의 인가 표준(de facto)인 OAuth 2.1의 Authorization Server의 구현체를 제공하는 Spring Authorization Server 연동 방법을 공유드립니다.
BackendSecurityTools
전체 읽기 →AWS Lambda Image Resize 도입기
안녕하세요. 올리브영에서 Back-end…
BackendInfraTools
전체 읽기 →헤이조이스 웨비나를 소개합니다
2주 만에 개발된 웨비나 시스템이 지금까지도 잘 사용되고 있다는 이야기 💬
BackendTools
전체 읽기 →풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson
어노테이션 기반으로 분산락을 사용하는 방법에 대해 소개합니다.
BackendTools
전체 읽기 →달리는 인증 서비스의 NoSQL을 바꾸자. - 실전편
안녕하세요. Seller & SD Engineering 팀 박명훈입니다. 지난번의 전략편에 이어 이번에는 실제 서비스 전략에 대해서 이야기하려고 합니다. 실제 서비스를 배포하며 사용했던 전략, 그리고 그 과정에 대해서 이번 글에 서술합니다. 달리는 인증 서비스의 NoSQL을 바꾸자. - 전략편 달리는 인증 서비스의 NoSQL을 바꾸자. - 실전편 배포 전략과 설계 지난 전략편에서 이야기했듯이 서비스에 이슈가 없이 배포하기 위해서 여러 스텝으로 작업을 분리했습니다. 이를 도식화시키면 다음과 같습니다. 1차 배포 1차적으로는 도식에서의 1 ~ 3번까지의 작업입니다. 배포 서버 판매자 페이지 관리자 페이지 배포 사항 Couchbase의 데이터를 MongoDB, MSSQL로 마이그레이션 합니다. 기존에 Couc..
BackendDatabaseDevOps
전체 읽기 →달리는 인증 서비스의 NoSQL을 바꾸자. - 전략편
안녕하세요. Seller & SD Engineering 팀 박명훈입니다. 최근 개발자로서 직접 기안한 프로젝트를 완료했습니다. 팀에서는 Couchbase를 통해 인증 서비스의 데이터를 제공하고 있었는데, 낮은 사용성 이슈와 비즈니스 정책, 서비스 관리의 여러 이유로 인해 불편함이 많았고, 이로 인해 기획자들이 업무를 진행할 때 성능 이슈로 인해 거의 사용이 불가능할 정도로 문제가 많았습니다. 대표적인 예시로 검색을 하면 5분씩 걸렸습니다. Couchbase는 MongoDB와 같이 Key-Document 구조를 가진 NoSQL 입니다. 이번 기회에 개선을 진행하며 기존의 문제를 해결하고, 성능적으로나 서비스적으로 아쉬웠던 부분을 개선했습니다. 그 과정과 결과에 대해서는 내용이 많아 크게 전략편과 실전 편으..
BackendDatabaseDevOps
전체 읽기 →Testcontainers로 통합테스트 만들기
안녕하세요. Shopping Service Backend팀 안재열입니다.저희 팀에서는 여러 팀에서 세심하게 생성하고 관리한 상품과 관련된 데이터를 고객에게 적절하게 가공하여 상품 목록 정보를 제공하는 API를 개발하는 업무를 담당하고 있습니다. 이 과정에서 다양한 모듈을 결합하여 데이터를 가공하는 작업들을 수행하게 됩니다. 그러한 작업 중 통합 테스트를 진행하게 되는데요, 이번 글에서는 TestContainers를 활용한 통합 테스트 작성 방법에 대해 알아보겠습니다.통합테스트는 무엇인가요?통합 테스트(Integration Test)란, 서로 다른 부분들이 원활하게 작동하는지 확인하기 위해 여러 모듈을 같이 테스트하는 과정입니다. 여기서 모듈은 웹서버, WAS, DBMS, 메시지 브로커, 파일서버 등이 포..
BackendDatabaseTesting
전체 읽기 →복잡한 문제는 나눠서 단순화: 카카오페이 위키 마이그레이션 되돌아보기
카카오페이 위키 마이그레이션 시작부터 완료까지 좌충우돌 과정 및 회고를 공유합니다.
BackendDevOpsTools
전체 읽기 →BigDecimal A to Z: 정확한 계산을 위한 숫자 처리 클래스
안녕하세요. Club & Discount Engineering 팀에서 지마켓 할인/쿠폰 개발 업무를 맡고 있는 윤영택입니다. 저희 팀은 할인/쿠폰/수수료 등 돈과 관련된 도메인을 다루다 보니 코드를 작성할 때 BigDecimal 타입을 굉장히 많이 쓰고 있습니다. 본 포스팅을 통해 BigDecimal을 사용해야 하는 이유와 개념, 그리고 사용법을 간단하게 소개해보고자 합니다. 1. 서론 float와 double의 문제점 여러분은 혹시 소수(decimal)를 다룰 때 다음과 같은 경험이 있으신가요? 아래 코드를 보면 특정 조건에 맞춰 함수가 실행되는 것을 기대했는데, 실제론 실행되지 않습니다. 결괏값을 출력해보면 기대와 다른 값이 나오는 것을 확인할 수 있습니다. double a = 0.1; double ..
BackendTestingTools
전체 읽기 →데브시스터즈
2023-04-19 · 약 3년 전
쿠키런: 킹덤 길드 업데이트 이후 서비스 이슈 되돌아보기
쿠키런: 킹덤에 길드 기능이 추가된 이후 발생했던 서비스 이슈에 대해 되돌아봅니다.
BackendDevOpsSecurity
전체 읽기 →쿠팡 로켓배송: 공간 색인 기반의 새로운 배송 영역 관리 시스템
ArchitectureBackendTools
전체 읽기 →Coupang Rocket Delivery’s spatial index-based delivery management system
BackendInfraTools
전체 읽기 →Vimtutor를 이용해 Vim 명령어를 배워보자
알아두면 유용하지만 자주 까먹게 되는 Vim 명령어를 배워봅시다.
BackendTools
전체 읽기 →docker-compose를 이용하여 로컬 개발환경 구성하기(Part1)
docker-compose를 이용하여 로컬 개발환경 구성하기 Part 1 : docker-compose를 이용하여 로컬 개발환경 구성하기 Part 2 : docker-compose를 이용하여 spring boot 프로젝트 연결하기(예정) 배경 최근 Gmarket Member Engineering 팀에서 Quilt - 로그인 개선 프로젝트를 진행하였습니다. 기존 닷넷 기반의 레거시 어플리케이션을 Java + Container 기반으로 전환하는 것을 시작으로, 수년간 쌓여온 기술 부채를 해결하고 보다 나은 회원 인증 체계를 개발하기 위한 첫 발을 내디뎠습니다. 이를 위하여 저희 팀에서는 지속 가능 하고 확장 가능한 개발환경 구성을 고민하였고, docker를 로컬 개발환경 구성에 이용했습니다. 그동안 Java..
BackendDevOpsInfra
전체 읽기 →Dataflow로 컬리의 준실시간 수요 예측모델 파이프라인 구축하기 - 1편
Dataflow 서비스 잘 이해하기
AI/MLBackendInfra
전체 읽기 →지난 9개월간의 딜리버리프로덕트팀의 경험과 변화에 대한 이야기: 애자일
팀 소프트웨어 개발 (애자일에 기반한 팀 플레이) 여정을 애자일 코치와 함께 한 우리는 어떤 일들을 겪었고, 무엇을 얻었을까?
BackendCultureTools
전체 읽기 →초보 개발자를 위한 Redis Cluster Migration 가이드라인
들어가기 전에안녕하세요, Shopping Service API팀 강희정입니다.작년 여름쯤 입사하여 낯선 환경과 도메인에 적응하고, 새롭게 접한 기술들을 익혀 가느라 정신없는 나날을 보냈습니다. 업무가 어느 정도 적응되었나 싶을 겨울쯤, 저에게 굉장히 낯선 업무가 주어졌습니다.Master/Slave 구조의 Redis에서 Cluster 구조의 Redis로 migration 되니, 관련 코드 작업을 진행해 주세요.업무를 받자마자 저는, 이런 생각을 했던 것 같습니다.큰일 났다. 하나도 모르겠는데 어떡하지?전통적인 SQL 방식의 RDBMS만 사용해 본 제게 Redis는 굉장히 낯선 존재였습니다. Redis도 모르겠는데 Cluster 구조로 migration하라는 코드를 작성하라니, 어디서부터 어떻게 시작해야 할..
BackendDatabaseTools
전체 읽기 →카카오페이
2023-03-23 · 3년 이상 전
변수명..변수명이 떠오르지 않아! - "너의 변수명은." 챗봇 개발 일지
카카오페이 개발자 페스티벌 - 카페톤 1등 수상작, "변수명 추천 봇"이 만들어진 과정을 소개합니다!
AI/MLBackendTools
전체 읽기 →카카오페이
2023-03-21 · 3년 이상 전
이벤트 드리븐 적재적소에 사용하기
슬랙과 상호작용하기 위해 적용한 이벤트 기반 구조를 소개합니다.
ArchitectureBackendTools
전체 읽기 →