기술 블로그 모음

국내 IT 기업들의 기술 블로그 글을 한 곳에서 모아보세요

전체 프론트엔드 백엔드 데브옵스 AI 아키텍처 DB 네트워크 보안 기타
올리브영 온라인몰의 전시, 그리고 백엔드 여정
올리브영
올리브영 온라인몰의 전시, 그리고 백엔드 여정

안녕하세요. 올리브영 스토어전시 스쿼드에서 백엔드 개발을 하고 있는 복스뮤직 입니다. 올리브영 전시에도 여러 스쿼드가 존재하지만, 스토어전시는 주로 메인, 홈, 오특 등 GNB(Global Navigation Bar…

신규 재고 시스템 구축을 위한 개발 여정
올리브영
신규 재고 시스템 구축을 위한 개발 여정

BULK 처리 Write에 집중해서 개선해보기
마켓컬리
BULK 처리 Write에 집중해서 개선해보기

애플리케이션, DB 모두 행복한 BULK 처리

쿠폰 발급 RabbitMQ도입기
올리브영
쿠폰 발급 RabbitMQ도입기

안녕하세요. 쿠폰 스쿼드 포덕입니다. 지난 시간엔 어푸님께서 Sync 쿠폰 발급에서 Async로 전환하며 Redis Worker에 대해 포스팅 해주셨습니다. 이번 시간엔 지난 Redis Worker에서 Rabbit MQ…

Redis Pub/Sub을 활용한 쿠폰 발급 비동기 처리
올리브영
Redis Pub/Sub을 활용한 쿠폰 발급 비동기 처리

안녕하세요.️ 쿠폰스쿼드 백엔드 개발자 어푸입니다! 쿠폰 스쿼드에서는 올리브영을 방문하시는 많은 고객님이 안정적으로 쿠폰 서비스를 받으실 수 있도록 개선 작업을 진행하고 있습니다. 지난번 레이 님이 올리브영 쿠폰 발급 개선 이야기를 통해 Redis…

제목은 Spring Session 도입기로 하겠습니다. 근데 이제 Redis를 곁들인
줌 인터넷
제목은 Spring Session 도입기로 하겠습니다. 근데 이제 Redis를 곁들인

안녕하세요. 줌인터넷 핀테크개발팀 김민수입니다. 사내에서는 문제를 개선하고 지속 가능한 서비스를 만들기 위한 많은 노력을 하고 있습니다. 회원 서비스의 세션 저장소를 교체하면서 Spring Session을 도입한 경험을 공유합니다. 이런 분들이 읽으면 더 도움이 됩니다. 분산 환경에서 세션 동기화 문제를 해결하고자 하는 분 Spring Session을...

[여기보기] 적에게 내 WAS의 디렉터리와 파일을 알리지 말라, WAS 디렉터리 인덱싱 및 상위 디렉터리 접근 제한
넷마블
[여기보기] 적에게 내 WAS의 디렉터리와 파일을 알리지 말라, WAS 디렉터리 인덱싱 및 상위 디렉터리 접근 제한

공개 배포해야 하는 파일이 많은 서비스가 아니라면 WAS의 디렉터리 구조는 노출하지 않아야 합니다. 이번에는 WAS에서 디렉터리 인덱싱 취약점을 노출하지 않는 방법과 노출해야 하더라도 상위 디렉터리에 이동 제한을 설정해 접근할 수 없게 만드는 방법을 살펴보겠습니다. The post [여기보기] 적에게 내 WAS의 디렉터리와 파일을 알리지 말라, WAS...

풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson
마켓컬리
풀필먼트 입고 서비스팀에서 분산락을 사용하는 방법 - Spring Redisson

어노테이션 기반으로 분산락을 사용하는 방법에 대해 소개합니다.

[장애회고] ORM(JPA) 사용 시 예상치 못한 쿼리로 인한 HikariCP 이슈
사람인
[장애회고] ORM(JPA) 사용 시 예상치 못한 쿼리로 인한 HikariCP 이슈

안녕하세요. IT연구소 서비스개발팀 빌링파트 최재우입니다. 2022년 12월 7일 사람인의 결제 및 상품을 담당하는 Order API 서버의 CPU, Memory과부하가 지속되는 이슈가 발생했었습니다. 해당 이슈를 통해 발생한 에러들과 원인이 무엇인지 분석한 것에 대해 공유해 드리고자 합니다. 원인이 무엇이었나 저희 Order API는 Spring B...

무형상품 서비스에 캐시 적용하기
올리브영
무형상품 서비스에 캐시 적용하기

📖 Table of Contents 포스팅의 목차입니다. 캐시는 무엇인가요? LOCAL 캐시와 GLOBAL 캐시 ElastiCache 무엇인가요?? 캐시 적용하기! 안녕하세요. 올디브에서 Back-End…

Spring Cloud Stream 재시도 구현하기
사람인
Spring Cloud Stream 재시도 구현하기

안녕하세요. 사람인 HR IT 연구소 IT 전략팀 이창섭입니다. 저희 팀에서는 사람인 내부의 DB Trigger를 제거하고 이를 비동기 분산처리로 변환하는 작업을 진행했습니다. 그 중 Kafka를 통하여 메세지 처리 과정 중에 일부 문제가 있었던 부분을 Spring Cloud Stream을 이용하여 재시도 로직을 구현했습니다. 그 기술적인 구현 과정을...

게임 서버 개발에 스칼라 사용하기
데브시스터즈
게임 서버 개발에 스칼라 사용하기

Scala가 게임 서버 개발에 왜 좋을까요? 그 이유를 알아봅니다.

Scala for Game Server Development
데브시스터즈
Scala for Game Server Development

Why Scala is a great match for developing game servers.

내가 만든 API를 널리 알리기 - Spring REST Docs 가이드편
마켓컬리
내가 만든 API를 널리 알리기 - Spring REST Docs 가이드편

'추석맞이 선물하기 재개발'에 차출되어 API 문서화를 위해 도입한 Spring REST Docs 를 소개합니다.

Firebase와 Cloud Firestore로 실시간 메신저 서비스 이전 Part 4
번개장터
Firebase와 Cloud Firestore로 실시간 메신저 서비스 이전 Part 4

신규 메신저 서비스 배포두 메신저 서비스의 연동 및 데이터 마이그레이션을 마친 뒤, 대망의 신규 메신저 서비스의 배포가 시작됐습니다.이번 포스트에서는 사용자들에게 신규 메신저 서비스를 배포하고 기존 메신저 서비스를 비활성화 및 종료하는 과정을 정리해보겠습니다.점진적 서비스 배포 및 모니터링처음부터 전체 사용자를 대상으로 신규 메신저 서비스를 배포할 경...

Firebase와 Cloud Firestore로 실시간 메신저 서비스 이전 Part 3
번개장터
Firebase와 Cloud Firestore로 실시간 메신저 서비스 이전 Part 3

메신저 서비스 연동 및 데이터 마이그레이션신규 메신저 서비스의 개발이 완료됐지만, 당시 구버전 앱뿐만 아니라 여러 서비스와 컴포넌트에서 기존 메신저 서비스를 사용하고 있었기 때문에 기존 메신저 서비스와 신규 메신저 서비스를 동시에 지원하면서 점진적으로 신규 메신저 서비스를 적용하는 기간이 필요했습니다.이때 두 메신저 서비스에서 사용자들에게 서로 동일한...

Firebase와 Cloud Firestore로 실시간 메신저 서비스 이전 Part 2
번개장터
Firebase와 Cloud Firestore로 실시간 메신저 서비스 이전 Part 2

신규 메신저 서비스 개발현재의 개발 인력으로도 관리할 수 있는 새로운 메신저 서비스를 구현하기 위해서는 기존 메신저 서비스에서 개발 및 관리 비용이 많이 들어가는 부분들의 개선이 필요했는데,그 중 가장 많은 비용을 차지하는 실시간 통신 로직을 개선하기 위해 여러 서비스와 솔루션들을 찾던 중 Firebase의 Realtime Database와 Cloud...

Firebase와 Cloud Firestore로 실시간 메신저 서비스 이전 Part 1
번개장터
Firebase와 Cloud Firestore로 실시간 메신저 서비스 이전 Part 1

메신저 서비스 이전 배경안녕하세요. 저는 번개장터에서 상점 간 거래 프로세스와 관련된 서비스를 개발 및 관리하는 Trade Lab에서 백엔드 소프트웨어 엔지니어로 근무 중인 김동현입니다.앞으로 총 4개의 포스트를 통해 번개장터에서 Firebase와 Cloud Firestore로 새로운 메신저 서비스를 구현하고 기존에 구현된 메신저 서비스와 교체하는 과...

바삭한 신입들의 동시성 이야기 - Kotlin 편
데브시스터즈
바삭한 신입들의 동시성 이야기 - Kotlin 편

마이쿠키런 신입 안드로이드 개발자의 Kotlin Coroutine 탐방기

데브시스터즈 서버 직군은 왜 코딩 면접을 볼까?
데브시스터즈
데브시스터즈 서버 직군은 왜 코딩 면접을 볼까?

데브시스터즈 서버 직군에서 코딩 면접을 보는 이유와 방향성에 대해서 말씀드리고 싶습니다.

BentoML 을 활용하여 딥러닝 모델 API 서빙하기
줌 인터넷
BentoML 을 활용하여 딥러닝 모델 API 서빙하기

안녕하세요. 부설연구소 & 빅데이터팀 Data Intelligence 파트의 류혜정입니다. 최근 줌포털 투자탭에 적용하기 위해 개발한 ‘투자줌 뉴스 카테고리 분류 모델’을 BentoML 로 패키징하여 서빙한 경험에 대해 공유하고자 합니다. 😇 0. 모델 배포와 서빙을 더 효율적으로 BentoML 의 공식 깃허브에서는 BentoML 을 아래와 같...

NestJS Custom Caching Decorator 만들기
줌 인터넷
NestJS Custom Caching Decorator 만들기

본 포스트는 NestJS에 호환 되는 Caching Decorator 를 만들기 위한 삽질 과정을 담고 있습니다. 안녕하세요! 약 한 달 만에 기술블로그에 투고를 합니다. 조금 더 자주 해야 할텐데.. 글쓰기는 항상 어렵네요 😭 줌인터넷 프론트엔드 파트는 프론트 서버에서 NestJS를 사용합니다. 정확히는 NestJS를 이용하여 Backend Core...

Spring boot - 설정파일로 AspectJ PointCut 지정하기
티몬
Spring boot - 설정파일로 AspectJ PointCut 지정하기

AspectJ 라고 하면 Advice, Pointcut, Weaving 등 다양한 개념이 등장하지만 이 글의 주제는 포인트컷을 설정파일로 빼는것이므로 AOP 에 대한 내용은 아래 링크를 참고 부탁드립니다. Aspect Oriented Programming with Spring Spring AOP와 AspectJ 비교하기 Spring 에서 Aop는 Be...

스프링 클라우드(Spring Cloud)를 활용한 클라우드 네이티브 애플리케이션 개발
삼성 SDS
스프링 클라우드(Spring Cloud)를 활용한 클라우드 네이티브 애플리케이션 개발

스프링 프레임워크&lparSpring Framework&rpar는 오늘날 Java 기반 웹 애플리케이션 개발의 표준으로 인식되고 있습니다. 스프링 프레임워크를 기반으로 한 다수의 상용 프레임워크가 출시되었고, 스프링과 함께 많은 발전을 이뤄냈습니다. 이같은 상황에서 스프링 프로젝트는 더욱 향상된 개발 환경을 제공하기 위해 스프링 부트&a...

사전예약 서버 프로파일링으로 서버 병목찾아 개선하기
데브시스터즈
사전예약 서버 프로파일링으로 서버 병목찾아 개선하기

artillery, linux perf로 node.js 서버 성능을 테스팅하여 flamegraph를 뽑아내고 서버의 병목구간을 찾아 개선한 경험을 소개합니다.

PHP Development Roadmap In 2020 At Kurly
마켓컬리
PHP Development Roadmap In 2020 At Kurly

2020 컬리 PHP 개발자 로드맵

마켓컬리에서의 PHP 이야기
마켓컬리
마켓컬리에서의 PHP 이야기

마켓컬리에서의 PHP 이야기

프로덕션 환경에서 사용하는 golang과 gRPC
뱅크샐러드
프로덕션 환경에서 사용하는 golang과 gRPC

안녕하세요, 뱅크샐러드 엔지니어링 파운데이션의 정겨울입니다. 뱅크샐러드는 마이크로 서비스 환경에서 다양한 언어와 프로토콜을 활용해 서비스를 운영하고 있습니다. 하나의 서비스는 요청을 처리하기 위해 다른 서비스의 API…

티몬 라이브 플랫폼 제작기
티몬
티몬 라이브 플랫폼 제작기

티몬 라이브 플랫폼 제작기 신사업개발랩 김영은 여러분, 스마트폰으로 동영상 많이 보시나요? 출퇴근길에 오며 가며 보면 많은 사람들이 유튜브로 콘텐츠를 보거나 생중계 스포츠, 좋아하는 TV 프로그램을 봅니다. 티몬 앱을 들어와보시면 이미지 대신 동영상으로 설명을 대신하는 상품들도 많아졌죠. 그렇다면 라이브 동영상을 보며 상품을 사는 건 어떨까요? 이미 ...

Couchbase Spring data repository 적용기(3)
티몬
Couchbase Spring data repository 적용기(3)

Spring data는 custom object-mapping 추상화를 지원하고 이를 통해 개발자가 다양한 데이터 저장소에 직접 access layer를 구현할 필요가 없도록 도와줍니다. 이러한 장점을 활용해 보기 위한 Repository 적용기를 소개합니다. 이번 마지막 3부에서는 Repository 커스텀 기능 추가를 이용해 Couchbase의 증...