일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- BFS
- 파이썬
- python
- 스프링
- 백준 알고리즘
- 데이터베이스
- 알고리즘
- 코딩교육봉사
- 코딩봉사
- 백준알고리즘
- SQL
- 프로그래머스
- SW봉사
- kotlin
- 공부일지
- 백준
- java
- 회고
- 소프티어
- 정보처리산업기사
- 자바
- softeer
- programmers
- Spring
- 문제풀이
- C++
- CJ UNIT
- MYSQL
- 1과목
- 코틀린
- Today
- Total
목록Application (106)
JIE0025

이 글에서 도출된 결론은 제가 마주한 개발 상황에서 겪은 과정에 따른 것이며 개발 상황에 따라 달라질 수 있습니다. ✅ 선행 개념 당연히 보이어무어의 동작원리를 알고 와야한다. 보이어무어는 2가지 작동방식이 존재하고, 아래 2개의 링크를 첨부한다. 추가적으로 KMP와 함께 성능을 비교했고, 어떤점이 다른지 명확히 이해하고 싶다면 KMP알고리즘도 확인하자 1️⃣ Boyer Moore - 나쁜 문자 이동 방식 https://jie0025.tistory.com/537 [문자열 매칭] 보이어무어(Boyer-Moore) - Bad Character Heuristic ✅ 개요 어제 문자열 매칭 알고리즘 중 KMP에 대해 알아보았다. [알고리즘] 문자열 매칭 KMP (동작방식,수도코드) ✅ 개요 문자열 매칭 알고..

황정식 - 스프링으로 시작하는 리액티브 프로그래밍 Spring WebFlux를 이용한 Non-Blocking 애플리케이션 구현 책을 통해 공부하면서 개인적으로 정리한 내용입니다. ✅ 개요 이전에 프로젝트를 구현하기 위해 Webflux의 간단한 개요 정도만 이해를 했었는데 이번에는 리액티브 프로그래밍에 (Reactor)에 대해 조금 더 세세하게 개념을 이해해보자. ✅ 리액티브 프로그래밍의 구조 선언형 프로그래밍 방식을 사용한다. 명령형은 순차적으로 위에서 아래로 실행이 되는데, 선언형은 최종연산이 수행되는 메서드를 호출하지 않으면, 메서드 체인들이 실행되지 않는다. >> 이런작업을 하라는 람다 표현식만 넘기고, 최종 연산에서 동작을 수행함 Java 8부터 지원되는 Stream API의 예 int sum..

황정식 - 스프링으로 시작하는 리액티브 프로그래밍 Spring WebFlux를 이용한 Non-Blocking 애플리케이션 구현 책을 통해 공부하면서 개인적으로 정리한 내용입니다. ✅ 개요 웹플럭스(WebFlux)는 리액티브 프로그래밍을 기반으로 비동기/논블로킹을 구현할 수 있게 함으로써 대규모 트래픽이 발생할 수 있는 애플리케이션에서 성능 향상을 돕는다. 우리는 WebFlux를 공부하기 위해 가장 기초적인 개념을 공부해야한다. 리액티브란 무엇인지, 리액티브 스트림의 구성요소들에 대해 알아보자! ✅ Reactive 영어 자체를 해석하면 반응을 하는, 반응을 보이는 이란 의미이다. ✍️ Reactive System 리액티브 시스템 클라이언트의 요청에 반응을 잘 하는 시스템을 의미하게 된다. Non-Block..

✅ 개요일반적으로 우리는 서비스단의 단위 테스트를 작성할때, repository를 mock(가짜객체)으로 만들고, DB로의 흐름을 끊어버리는 단위테스트를 작성했었다. 최근에 외부 API를 사용하기위해 webClient를 사용했는데 이때 서비스 단에서 WebClient를 주입 받아, mock객체를 repository가 아닌 다른 대상에 처음 적용해 보게 되어 이 글을 적게 되었다. 데이터베이스에서 어떤 값을 가져와 일반적인 자체만을 검증했었다면 이번 기회로 더 다양한것을 검증해보게 된 계기가 될 것 같다. ✅ WebClient 자체를 mock객체로 만들어서, 모킹해도 된다. 이 방식에는 문제점이 있다. 아래 예제 코드를 보면 webClientMock.get()에 대한 처리부터, requestHeadersU..
✅ 개요 특정 언어의 특징적인 문법이 있다면 lateinit var를 사용하면, 런타임시 변수의 값이 결정된다. 1. application.yml에 지정된 값을 가져와 사용할 때 2. 테스트코드에서, @BeforeAll을 이용한 lateinit var

✅ 개요 스프링 기반의 프로젝트에선, 코틀린을 사용해도 기존의 테스트 프레임워크인 JUnit, Assertion, Mockito를 동일하게 사용할 수 있지만.. 그래도 코틀린에 어울리게 코틀린스럽게(?) 테스트코드를 짤 수 있도록 돕는 도구들이 존재한다. (MockK와 Kotest) 이 중 오늘은 MockK를 알아보고 어떻게 단위테스트를 하는지 간단하게 알아보자. ✍️ 기술 비교 MockK외에도 코틀린을 위한 테스팅 프레임워크에는 Kotest라는 것도 있다. Kotest는 코틀린진영에서 가장 많이 사용되는 테스팅 프레임워크이다. 다양한 테스트 레이아웃을 제공하고 Kotlin DSL 스타일의 Assertion도 제공된다. Junit과 호환성이 있어 기존의 Junit과 마이그레이션 하기 용이함. 예제 코드 ..

황정식 - 스프링으로 시작하는 리액티브 프로그래밍 Spring WebFlux를 이용한 Non-Blocking 애플리케이션 구현 책을 통해 공부하면서 개인적으로 정리한 내용입니다. ✅ 개요 스프링 웹플럭스는 스프링5에 추가된 Reactive 스택이다. Reactor는 두가지 타입을 지원한다. Mono : 0개 또는 1개의 데이터만 emit Flux : n개의 데이터를 emit한다 오늘은 N개의 데이터를 emit하는 FLUX를 이용해 스트리밍으로 데이터를 처리하는 것에 대해 알아보자. ✅ Reacive Streaming 데이터처리 Spring Webflux는 SSE를 이용하여 데이터를 스트리밍 할 수 있다. SSE는 Spring 4.2부터 지원되었으며 Spring 5에서부턴, Reactor의 Publishe..

황정식 - 스프링으로 시작하는 리액티브 프로그래밍 Spring WebFlux를 이용한 Non-Blocking 애플리케이션 구현 책을 통해 공부하면서 개인적으로 정리한 내용입니다. 목차 Spring Webflux란? Spring Webflux 탄생 배경 예시를 통해 MVC와 WebFlux를 비교해보자 Spring Webflux Stack 전체 큰 그림 Spring Webflux의 내부 동작 원리 Netty의 역할 ✅ Spring Webflux란? Spring webflux는 리액티브 웹 애플리케이션 구현을 위해 Spring 5.0부터 지원되는 Reactive Web Framework ✅ Spring WebFlux 탄생 배경 ⏺ Spring MVC 서블릿기반의 Blocking I/O방식 요청당 하나의 스레드..
✅ Apache JMeter Apache JMeter는 Apache Software Foundation에서 개발되었다. 오픈소스 로드 테스팅 툴로 다양한 성능 테스팅이 가능하다. * (웹서버, DB, FileSystem 등 서비스/프로토콜에 대한 테스팅) ✅ 왜 JMeter를 사용하는가?다양한 Application/Server/Protocol 유형을 로드하고, 성능 테스트가 가능하다.웹- HTTP/HTTPS (Java, NodeJS, PHP, ASP.NET)SOAP/REST 웹서비스FTPJDBC를 통한 interfaceLDAPTCP자바 객체메일 - SMTP, POP3, IMAP --- (S)모든 Java 호환성Jmeter는 자바 기반의 서비스/ 애플리케이션의 테스팅을 지원한다. CLI 모드 지원L..

✅ webClient 스프링 5부터 도입된 웹 클라이언트 라이브러리 (HTTP 요청을 수행) 비동기/논블로킹 방식으로 외부 API를 호출할 수 있다. 😉 장점 비동기/논블로킹 방식을 지원하여, 높은 처리량과 확장성이 장점이다. 리액티브 프로그래밍을 할 수 있다. 데이터 스트림을 효과적으로 처리할 수 있다. 선언적 방식으로 API 호출을 정의하므로, 가독성이 좋다. 😵 단점 웹플럭스 학습곡선이 존재한다. ✅ 공식문서 & 참고 문서 공식문서에 웹클라이언트의 선언부터 사용방법이 자세하게 나와있다. https://docs.spring.io/spring-framework/docs/current/reference/html/web-reactive.html#webflux-client Redirecting... docs..