파이썬 GIL 비동기 (async/await, gevent)
1. 파이썬의 GIL 환경에서 동작하는 비동기 Locust를 이용하여 부하테스트를 진행하다가가 문득 파이썬의 애플리케이션 네트워크 I/O가 어떻게 동작하는지 궁금하여 파이썬 환경에서 비동기가 어떻게 동작하는지 찾아보게 되었습니다. 먼저 공식 코루틴 방식인 async/await + asyncio를 살펴보고 Locust에서 사용하는 gevent에 ...
1. 파이썬의 GIL 환경에서 동작하는 비동기 Locust를 이용하여 부하테스트를 진행하다가가 문득 파이썬의 애플리케이션 네트워크 I/O가 어떻게 동작하는지 궁금하여 파이썬 환경에서 비동기가 어떻게 동작하는지 찾아보게 되었습니다. 먼저 공식 코루틴 방식인 async/await + asyncio를 살펴보고 Locust에서 사용하는 gevent에 ...
처음 버킷을 사용할 때 급하게 구현을 진행하느라 각 설정 옵션에 대한 이해 없이 버킷을 사용하고 있었습니다. 매번 버킷을 생성할 때마다 제가 생성하는 옵션에 대한 이해없이 생성해서 보안적으로도 이해도가 낮고 또 매번 블로그를 참고하여 생성해서 확신을 갖고 사용할 수 없었습니다. 왜 매번 이렇게 버킷 설정 옵션에 대해서 찾아보게 되고 또 각 옵...
Spring data JPA의 save() 메서드가 실패할 때 우리는 어떻게 할까? 저장을 해야하는데 필수 조건이 맞지 않아 실패한다면 우리는 던저진 에러를 잡아 처리한다. 만약, save() 메서드가 실패했을 경우 임시 데이터로 다시 저장하는 로직을 개발한다면 어떻게 처리하면 될까? 이에 대해 학습해보았다. 1. 테스트 코드로 순수하...
Spring data JPA를 사용하면 ORM이 쿼리를 작성해 주기 때문에 편리하게 Java 코드만 작성하면 된다. 하지만, 데이터베이스 테이블과 자바 객체 사이에서 연관관계 매핑을 진행하여 조회할 때 우리가 흔히 사용하는 FetchType.Lazy 옵션은 조회시 N+1개의 쿼리로 진행하는 것을 확인할 수 있다. 이처럼 우리가 원하던 결과가 ...
부하테스트를 진행하기위해 Jmeter 샘플러를 사용하는 방법을 적용해보는 과정 중에 부족했던 Stomp 프로토콜 개념을 확인할 수 있었습니다. Jmeter로 Spring Stomp를 테스트할 때 고려해야 하는 한가지 요소와 Jmeter로 Spring Stomp로 만든 api를 테스트하는 방법을 정리한 내용입니다. 1. 테스트 환경 ...
처음 스프링을 공부할 때 의존 관계 주입이 정말 헷갈렸다. 그 이유는 의존성이라는 개념이 잡혀있지 않았고 의존 관계 주입이라는 용어를 암기식으로 공부했었다. 하지만 의존 관계 주입은 객체 지향 설계 원칙에 정말 중요했다. 따라서 이번 글에서 김영한 강사님의 강의를 들으며 깨달은 의존 관계 주입에 대해서 복습하는 글을 남겨보려고 한다. ...
Spring으로 WebSocket 위에서 동작하는 STOMP를 다루어보며 STOMP 프로토콜에 대해 자세하게 공부하게 되었는데, Spring docs를 따라가며 프론트 구현 없이 Spring으로 짠 STOMP 프로토콜 통신 코드를 테스트하는 것까지 너무 재밌게 공부해서 글로 남겨보려고 합니다. 제가 공부할 때 참고한 자료는 Spring docs로...
카카오페이 Api 문서 안녕하세요. 먼저 제 글을 보시기 전에 Api 문서를 보고 직접 해석해 가며 구현해 보면 좋을 것 같아서 앞단에 첨부 했습니다. 뒤에서 나올 스프링 부트에서 보낼 Request와 Response는 모두 이 Api 문서를 참고하여 작성하였습니다! 1. 카카오페이 API 먼저 공식 Api 문서에 이런 문구가...
[컴퓨터 네트워킹 하향식 접근 8판]을 이용하여 네트워크를 공부하며 책에 있는 예시가 부족하여서 조금 시간을 들여 생각했던 부분을 정리해 놓고 싶어서 쓰게되었습니다. Go-Back-N 프로토콜의 FSM(유한 상태 머신)을 이용하여 공부하였고 책의 내용과 제가 결론 지은 내용을 합쳐서 정리한 내용입니다. 0. GBN 이란? 먼저 Go...
OS를 저는 처음 배울 때 매우 추상적이었던 것 같아요.💭 OS가 수행하는 기능이 다양하기도 하고 너무 많은 개념이 그 내부에 속해 있어서 처음에 매우 어렵게 배웠던 것 같습니다. 이번 글에서는 운영체제가 도대체 어떤 일을 수행하는지에 대해서 알아보고 운영체제의 간략한 개요를 살펴보겠습니다! 🐣 1. Operating System (OS...