spring(12)
-
99클럽 23일차 TIL: Thread (Java, Spring)
#1. 오늘의 학습 키워드자바 스프링에서의 쓰레드에 대해JS → 자바로 넘어오면서, 언어에 차이는 멀티쓰레드 유무라고 알고 있었다.JS싱글 쓰레드자바멀티 쓰레드이에 대해서 디테일하게 알아보자#2. 공부한 내용1. Process- 운영체제(os)에서 할당하는 작업의 단위- 실행 중인 프로그램프로세스는 디스크 → 메모리 → CPU 의 할당을 받는 작업의 단위컴퓨터에서 실행 중인 프로그램으로 봐도 무방하다프로세스 끼리는 별도의 메모리 영역을 갖는다.2. Thread- 프로세스의 실행 최소 단위한 프로세스 내의 여러 쓰레드가 작업을 나누어서 실행을 한다.같은 프로세스 내 쓰레드 끼리는 자원 공유가 가능하다.공유되는 자원은 코드, 데이터, 파일..
2024.04.26 -
99클럽 21일차 TIL: Validation Group
#1. 오늘의 학습 키워드자바 스프링 부트에서 Validation을 특정 Group에 대해서만 걸어주고 싶을 때자바 스프링 부트에서 개발을 진행할 때, 만약 같은 DTO로 여러 API 를 대응했을 때, validation 의 규칙을 다르게 해야하면 어떻게 해야될까전에 Loki 서버로 에러 로그를 전송해주는 LokiUtil 컴포넌트를 개발하였다.해당 메서드로 프론트의 로그도 같이 전송해주려 API 를 개발하였는데,이때 API는 아래의 두 종류가 되고, 두 API는 기본적으로 로그 형식은 같기에, DTO는 하나를 공유하고 있다프론트의 에러 로그 전송 API프론트의 화면 방문 추적 로그 전송 API#2. 공부한 내용@NotBlank해당 어노테이션은 Dto의 속성에 공백..
2024.04.24 -
99클럽 19일차 TIL: WebSocket
#1. 오늘의 학습 키워드 자바 Spring 에서의 WebSocket 에 대해서 저번 post 에서 HTTP 2 방식으로 통신을 하여 양방향 통신을 지원하는 gRPC 에 대해서 알아보았다. 또한 채팅 등 실시간 서비스에 적합한 Spring Webflux 에 대해서 알아보았다. 이 두 가지의 특징을 살펴보면, 익숙한 또 다른 기술이 떠오른다 WebSocket #2. 공부한 내용 WebSocket 웹 소켓 웹 소캣은 서버와 클라이언트 사이의 인터액티브 통신 세션을 설정하여 언제든 양방향 통신 및 데이터 전송을 가능하케 하는 기술이다 보통 채팅, 증권 거래, sns 등 서비스에서 많이 쓰이고 있다. 채팅 서비스를 구현 할 때 기존 rest API 방식을 사용하게 되면, 클라이언트에서 매번 서버로 HTTP 통신..
2024.04.22 -
99클럽 18일차 TIL: gRPC
#1. 오늘의 학습 키워드 자바 Spring Boot에서의 gRPC 에 대해서 MSA 구조에서 service 간 통신에서 REST API 를 쓸 수도 있지만 gRPC 를 쓸 수도 있다. Spring Boot 에서 이미 gRPC 를 지원해주는 라이브러리가 존재하기 때문. 일반적으로 REST API 는 단일 request 단일 response 이기 때문에, 여러 response 반환을 원할 경우, 그만큼의 request 를 보내야 해서 네트워크 통신 비용이 많이 소모된다. 그래서 gRPC 가 성능적인 관점에서 REST API 를 사용하다 좋은 대체제로 대두된다. #2. 공부한 내용 gRPC google, Remote Procedure Calls 구글에서 개발한 원격 프로세저 호출을 위한 시스템. REST 처..
2024.04.21 -
99클럽 17일차 TIL: Spring Webflux: Mono, Flux
#1. 오늘의 학습 키워드 Reactive Streams의 4가지 Interface 및 Spring Webflux 의 반응형 타입 Mono 와 Flux 에 대해서 저번 post 에서 Spring WebFlux 의 개념적인 부분을 다뤘다. 다시 정리를 해보면, Spring Webflux 는 Non-Blocking, 비동기적 i/o 방식을 지원하여 높은 확장성과 성능을 자랑하는 반응형 웹 프레임워크이다. 반응형 프로그래밍, Reactive Streams 과 Reactor에 대한 개념도 다뤘었는데, 그 중 Reactive Streams의 interface 4가지와, 또 그 중 Publisher 에 해당하는 Mono와 Flux에 대해서, 좀 더 디테일하게 알아보자. #2. 공부한 내용 Reactive Strea..
2024.04.20 -
99클럽 16일차 TIL: Spring Webflux
#1. 오늘의 학습 키워드 Spring Webflux 에 대해서 기존에 많이 사용했던 Spring MVC 패턴은 blocking I/O 방식이다. 요청을 하고 응답이 올 때까지 대기. 그런데 몇몇 요건에 따르면 요청을 보내고 다른 일을 할 수 있도록 대기하지 않길 원한다. 예를 들면 시스템 알람과 같은 것. 실시간 어플리케이션 그러면 Non-blocking I/O 방식을 지원해주는 프레임워크는 무엇일까 #2. 공부한 내용 Spring Webflux 반응형 및 비동기적 웹 앱 개발을 지원하는 모듈 비동기 Non-Blocking I/O 방식을 제공 Reactive Streams 의 구현체 중 하나인 Reactor 에 의존하여 비동기 로직을 구성. 비동기적인 이벤트 지향 프로그래밍을 통해 얻을 수 있는 이점 ..
2024.04.19