2022/10 4

Connection timeout VS Read timeout

개요 현재 운영하고 있는 게임서버에서 다른 서버의 API을 호출하는 일이 잦은데, 새로운 게임 오픈 이후, 유저 수가 많아져 자연스럽게 API 호출하는 일이 더 많아졌다. 새 게임 오픈 전에는 간헐적으로 timeout Exception이 발생하여 크게 신경 안쓰고 있었는데, 오픈 이후 급격하게 timeout Exception이 증가하였다. 다른 서버 담당자 분께 해당 Exception에 대해 문의드렸는데, connection timeout인지, Read timeout인지를 물어보셨는데, 이 2개의 차이를 정확히 몰라 찾아보고 말씀드렸고, 이를 정리하였다. Timeout 이란? 프로그램이 특정한 시간 내에 성공적으로 수행되지 않아서 진행이 자동적으로 중단되는 것 응답을 무한정 wait 하면 전체 프로그램에..

면접을 위한 CS 전공지식 노트 - 1.1.4 옵저버 패턴

옵져버 패턴 옵저버 패턴(observer pattern)은 주체가 어떤 객체(subject)의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴이다. 대표적인 사례 트위터 유튜브 특정 정보를 여러 뷰에서 동시에 얻기 위해 주제자(Subject)에 구독자(Observer)를 등록(Register) 하여 정보를 받는(갱신, Notify) 것을 옵저버 패턴(Observer pattern)이라 한다. 물론 등록을 했으니 해지(Remove)도 가능하다. 코드로 보는 옵져버 패턴 그럼 이제 본격적으로 코드를 확인해 보겠습니다. 여기서 보여드릴 예시는 Subject class에서 값을 변경하면 등록된 모든 Observer들에게 갱신하는 간단..

프로시저와 여러 의견들

프로시저란(Stored procedure)? 저장 프로시저는 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. DB에 대한 일련의 작업을 정리한 절차를 RDBMS에 저장한 것으로, 영구저장모듈이라고도 불린다. 장점 하나의 요청으로 여러 SQL 문을 실행할 수 있는데, 이런 경우 네트워크 부하를 줄일 수 있다. 만약 JAVA 환경에서 10번의 쿼리를 실행한다고 가정한다면, JDBC를 통해 DB에 10번 request 해야한다. 하지만 프로시저를 이용한다면 DB에서 10번의 SQL 실행문을 구현하고 1번만 호출하면 된다. 개발 업무를 구분하여 더 효율적으로 프로젝트를 운용할 수 있다. 애플리케이션만 개발하는 조직과 DB만을 관리하는 조직이 따로 있다면, 애플리케이션 개발자는 JAVA와 같은..

@RequestBody vs @ModelAttribute 차이점

@RequestBody @ModelAttribute 차이점 개요 Spring boot 개발환경에서 Controller 부분 코드를 작성할 때, 아무생각 없이 Method가 GET 이면 @ModelAttribute을 사용하고, POST면 @RequestBody를 사용하였다. 그러다 어느순간 왜? 라는 의문점이 들었고, 두 어노테이션의 정확한 차이를 정리해보기로 한다. @ModelAttribute Spring docs Annotation that binds a method parameter or method return value to a named model attribute, exposed to a web view. Supported for controller classes with @RequestMap..

728x90