📖 개발 공부
-
The SAGA Pattern📖 개발 공부 2024. 9. 29. 17:26
토스 SLASH24 컨퍼런스에 가서 보상 트랜잭션으로 분산 환경에서도 안전하게 환전하기 라는 세션을 듣고, SAGA 패턴을 처음 접했다.연사자분이 정말 흥미롭고 이해하기 쉽게 설명을 잘해주셔서 어떤 개념인지 확 알게 되었고, 보상 트랜잭션 실행 중에 실패하는 케이스들을 어떻게 핸들링하는지 등등 정말 유익하게 들었다!! 이 세션을 이후로 SAGA 패턴에 대해 더 자세히 공부하기 위해 글을 읽고 정리해보려고 한다~! Microservices Patterns: The Saga PatternMicroservices Pattern Series — Part 04: Some insights into ACID Transactions, 2PC Pattern and finally the Saga Pattern in de..
-
Toss | 서버 증설 없이 처리하는 대규모 트래픽📖 개발 공부 2024. 7. 27. 18:11
토스 테크블로그를 읽고 쓰는 글입니다. 서버 증설 없이 처리하는 대규모 트래픽늘어나는 트래픽을 잘 처리하기 위해 서버 개발자는 어떤 고민을 해야 할까요? “라이브 쇼핑 보기” 서비스에 대규모 트래픽이 들어오면서 겪은 문제와 해결책을 공유드려요.toss.tech 급격하게 성장하는 서비스가 겪는 문제라이브 쇼핑 보기 서비스는 피크 시간대 동시 접속자 수는 분당 수십만 명, 포인트 지급 요청 API 요청은 초당 수십만 건이 오는 서비스로 성장했다.급격히 늘어난 트래픽은 성장하는 서비스 서버에 치명적일 수 있다. 서버가 트래픽을 유연하게 처리하지 못하면 유저에게 안 좋은 경험을 제공하고, 최악의 상황에서는 이탈할 수도 있기 때문이다. 트래픽이 급격히 늘어나면 쓰레드가 밀리는 것부터 시작해서 데이터베이스와 캐..
-
system-design-101. CAP 이론 (CAP theorem)📖 개발 공부 2024. 7. 14. 01:40
CAP theorem CAP theorem에 따르면 분산 시스템은 일관성, 가용성, 파티션 허용성이라는 세 가지 원하는 속성 중 두 가지만 제공할 수 있다.Consistency: consistency means all clients see the same data at the same time no matter which node they connect to.데이터를 저장하는 장비가 1대 든 100대든 모든 장비에서 동일한 데이터가 저장되어 있어야 한다는 것이다. ACID 원리에서 의미하는 것과 같다. 모든 노드가 같은 시간에 같은 데이터를 보게 된다. 즉, 읽기 작업이 항상 가장 최신의 쓰기 작업을 반영하며, 이는 모든 노드에 일관적으로 적용된다.Availability: availability mea..
-
system-design-101. How to improve API performance?📖 개발 공부 2024. 6. 22. 11:50
API 성능을 향상시키기 위한 5가지 전략! PaginationThis is a common optimization when the size of the result is large. The results are streaming back to the client to improve the service responsiveness.결과 사이즈가 클 때 일반적인 최적화 방법. 서비스 응답성을 높이기 위해 결과를 클라이언트에 스트리밍 방식으로 전달.Asynchronous LoggingSynchronous logging deals with the disk for every call and can slow down the system. Asynchronous logging sends logs to a lock-..
-
system-design-101. REST API vs. GraphQL📖 개발 공부 2024. 6. 9. 20:01
REST API vs. GraphQL RESTUses standard HTTP methods like GET, POST, PUT, DELETE for CRUD operations.CRUD 작업에 GET, POST, PUT, DELETE와 같은 표준 HTTP 메서드를 사용.Works well when you need simple, uniform interfaces between separate services/applications.별도의 서비스/애플리케이션 간에 간단하고 통일된 인터페이스가 필요할 때 잘 작동함.Caching strategies are straightforward to implement.구현이 간단한 캐싱 전략.The downside is it may require multiple rou..
-
Netflix | BFF에서 GraphQL Federation으로 전환기📖 개발 공부 2024. 4. 14. 01:25
ByteByteGo 에서 재밌게, 또 유익하게 본 아티클의 내용을 정리하려고 한다! Evolution of Java Usage at Netflix Evolution of Java Usage at NetflixStop releasing bugs with fully automated end-to-end test coverage (Sponsored) Bugs sneak out when less than 80% of user flows are tested before shipping. But how do you get that kind of coverage? You either spend years scaling in-house QA — or you get thblog.bytebytego.com 넷플릭스는 ..
-
유데미(Udemy) - Java 멀티스레딩, 병행성 및 성능 최적화 강의 후기📖 개발 공부 2024. 3. 31. 20:11
해당 후기는 유데미로부터 강의 쿠폰을 제공받아 작성되었습니다. 글또 활동 중, 좋은 기회로 유데미에서 강의를 들을 수 있게 되어 Java 멀티스레딩, 병행성 및 성능 최적화 강의를 들었다. 실무를 하면서 멀티스레드를 적용해본 경험은 있지만 적용으로 인한 부수효과를 제대로 파악하지 못한 채 쓰고 있는 것 같아 한번 딥하게 알아보고 싶었다. 강의 선택을 위해 구경하던 중, 해당 강의의 목차가 딱 나의 궁금증을 해소시켜줄 수 있을 것 같아 신청했다. 강의에서 배울 내용은 다음과 같다. Java에서 잘 설계된 올바른 멀티스레드 애플리케이션을 자신 있게 구축하는 방법 현대 소프트웨어 아키텍처 및 스레드를 이용한 난이도가 낮은 수준의 프로그래밍에 대한 전문가 수준의 실무 지식 클라이언트에게 사랑 받는, 성능과 반응..
-
Spring AOP를 Kotlin으로 개선해보기! (feat. 카카오페이 테크블로그)📖 개발 공부/kotlin 2024. 3. 17. 12:56
이번 글에서는 Spring AOP의 아쉬운 점과 함께 Kotlin의 Trailing Lambda 문법을 통해 개선하는 방법을 알아보려고 한다!카카오페이 테크블로그의 "Kotlin으로 Spring AOP 극복하기!" 글을 보고 해결한 내용이다. AOP 간단 설명AOP는 관점 지향 프로그래밍(Aspected Oriented Programming)으로 로깅, 트랜잭션과 같은 공통으로 실행되어야하는 부분을 비즈니스 로직에서 떼어내어 모듈화하여 재사용하는 것을 의미한다.AOP를 사용하여 비즈니스 로직을 작성하는 데에 집중할 수 있게 해준다. 이때 트랜잭션 로직과 같이 삽입되는 로직을 Advice, 그리고 로직이 삽입될 함수를 JoinPoint라고 정의한다. Spring AOP 아쉬운 점 살펴보기나는 Spri..