본문 바로가기

전체 글361

[Redis 8편] 싱글스레드를 사용하는 Redis 는 왜 빠른가? 목차는 redis 목차 에 있습니다. source 는 Github 에 있습니다. [Redis 8편] 싱글스레드를 사용하는 Redis 는 왜 빠른가? In memory 데이터베이스 redis 는 in memomry 데이터베이스를 사용합니다. 메모리 엑세스는 랜덤 disk I/O 보다 빠릅니다. 코드 측면에서 봐도 in-memory 데이터베이스는 간단한 코드로 데이터에 접근이 가능한 반면 disk 에 접근하기 위해선 여러 코드를 작성해야 합니다 I/O Multiplexing I/O Multiplexing & 싱글 스레드 조합을 사용해 동시 요청에 대해서 성능을 보장할 수 있습니다. 옛날에는 select, poll 다중 IO 처리 방법이 있었습니다. Select 에 대해서 간단히 알아보면 fd_set (파일 .. 2022. 9. 9.
[Java 7편] stream list to map<String, Dto> source 는 Github 에 있습니다. 목차는 Java series 에 있습니다. [Java 7편] stream list to map Stream List to Map list 를 Map 변환하는 예제를 정리했습니다. Source 2022. 8. 31.
[Redis 7편] Redis 로컬 띄우기 (docker, docker-compose) 목차는 redis 목차 에 있습니다. source 는 Github 에 있습니다. [Redis 7편] Redis 로컬 띄우기 (docker, docker-compose) 내용 정리 배경 Redis 를 로컬 환경에서 띄워서 테스트 해야하는 상황이 발생할 수 있습니다. Redis 를 로컬 환경에서 띄우는 방법중에 Embedded Redis Server 를 이용해서 동작시키는 방법이 있습니다. 그러나 Embedded Redis Server 가 M1 Mac 에서는 동작이 안되어서 어느 환경에서나 Embedded Redis Server 가 동작하지 않습니다. 그렇기에 docker, docker-compose 조합을 생각해봤고 정리했습니다. Docker, Docker-compose 란? Docker Docker는 소.. 2022. 8. 31.
[network 3편] 네트워크 동기 vs 비동기, 블로킹 vs 논블로킹 정리 목차는 network 목차 에 있습니다. [network 3편] 네트워크 동기 vs 비동기, 블로킹 vs 논블로킹 정리 동기 vs 비동기 동기 : 서비스 처리가 완료된 이후에 처리 결과를 알 수 있는 방식을 동기식 호출 이라고 합니다. 비동기 : 실제 서비스 처리는 스레드를 만들어 별도로 처리하게 하고, 응답을 줍니다. 클라이언트는 응답을 기다릴 필요 없이 다른 작업을 수행할 수 있고, 작업을 다 끝마친 후, 요청한 서비스가 끝났는지 확인할 수 있습니다. 네트워크 블로킹 vs 논블로킹 소켓의 동작 방식에 따라 블로킹, 논블로킹 모드로 나뉩니다. 블로킹 요청한 작업이 성공하거나 에러가 발생하기 전까지는 응답을 돌려주지 않습니다. ServerSocket server = new ServerSocket(800).. 2022. 8. 29.
[network 2편] 쿠키, session, jwt 정리 목차는 network 목차 에 있습니다. [network 2편] 쿠키, session, jwt 정리 HTTP 프로토콜에서 상태를 저장하는 방법 HTTP 는 stateless protocol 입니다. 즉, 상태가 없는 프로토콜입니다. 서비스를 이용할 때, 상태가 필요한 순간이 있습니다. (장바구니, 로그인 등) 쿠키 웹브라우저에 cookies 라는 데이터를 저장하여 HTTP 상태를 저장하는 방식입니다. 흐름은 다음가 같습니다. client --> Server 로 접속 서버에서 cookies 세팅 Set-Cookie: key=value Set-cookie 란 header 에서 쿠키를 저장하는 공간입니다. 서버에서 응답을 받아 웹브라우저에 저장 client --> server 로 요청 시, header 에 쿠.. 2022. 8. 29.
[spring 12편] spring boot 통합 test 실행 중 mybatis mapper not found 문제 정리 source 는 Github 에 있습니다. 목차는 spring series 목차 에 있습니다. [spring 12편] spring boot 통합 test 실행 중 mybatis mapper not found 문제 정리 에러 로그 spring boot 통합 test 환경 에서 mybatis 를 사용하는 도중 아래와 같은 에러가 발생했습니다. 로그 No qualifying bean of type &#39;TestMapper&#39; available 원인 및 해결방안 Bean 을 못찾는 문제였으며, 다음과 같이 해결했습니다. 아래와 같이 TestConfig 라는 테스트 환경 전용을 담당하는 클래스를 만들어줘서 MapperScan 을 통해 해결했습니다. 2022. 8. 29.