전체 글

전체 글

    redis cluster로 구성하여 실행 시켜보기

    redis를 사용하면서 cluste로 구성해봐야하는 일이 있었다. 그래서 찾아보던 중 redis문서에서 방법을 찾았다. https://redis.io/topics/cluster-tutorial Redis cluster tutorial – Redis *Redis cluster tutorial This document is a gentle introduction to Redis Cluster, that does not use complex to understand distributed systems concepts. It provides instructions about how to setup a cluster, test, and operate it, without going into the detai re..

    elasticsearch 7.0 docker 설치 후 변경사항 확인

    엘라스틱서치 7.0이 출시했다. 엘라스틱서치 7.0에는 kibana UI변경과 multi mapping type 제거 등의 이슈가 있다. 우선 달라진점을 확인하기 위해 docker에 설치해보자. 설치 elasticsearch docker run --name elastic7.0 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.0.0 kibana docker run -d --rm --link elastic7.0:elastic-url -e "ELASTICSEARCH_HOSTS=http://elastic-url:9200" -p 5601:5601 --name kibana7...

    마이크로소프트 XBOX ONE S 패드 신형 3세대 블루투스 무선컨트롤러 개봉 및 스팀 연동 후기

    스팀으로 위닝을 즐기고 있는데 키보드로 즐기다보니 흥미가 조금 떨어졌다. 그래서 마침 회사에서 생일 위메프 포인트 5만원이 들어왔길래 패드를 지르려고 알아봤다. 후기를 봤는데 패드 저렴하거 사면 가볍고 무게감도 없고 진동도 너무 그지같다는 평을 봤다. 이왕살거 그럼 좋은거 사자 생각하고 66000원짜리 xbox 패드를 찾았다. 박스는 되고 이뻤다. 봉인라벨씰도 같이 있어서 개봉하지 않은 제품이라는 믿음을 줘서 좋았다. 내용물을 개봉하자마자 패드가 들어있었다. 패드의 느낌은 몬가 묵직하고 좋았다. 제품 자체 퀄리티도 좋았고 무게감도 게임기를 딱 잡고 있는 느낌이 있어서 좋았다. (싸구려 플스방 조이스틱 같아 보이지 않았다.) 구성품은 건전지와 그리고 설명서, 보증서가 들어있었다. 내장 리튬 배터리가 아닌것..

    Intellij에서 spring boot multi module 사용시 jsp 못찾는 이슈 해결방법

    기존에 공부삼아서 개발중이던 wedulpos에 spring batch를 추가해보려고 했다. 그래서 공통으로 mono 프로젝트로 되어있던 wedulpos를 multi module로 수정했다. 그랬더니 이상하게 servlet context에서 jsp를 로드하지 못했다. 그래서 계속해서 ServletException not include... jsp 또는 ServletException not jsp found 오류가 발생했다. 그래서 엄청난 구글링을 2틀동안했다. 집에서 그리고 약속장소에서 기다리면서 노트북으로 그리고 퇴근하고 오늘.. 정말 가지가지한 방법을 다해봤었다. 기본적으로 embed-tomcat의 경우 jasper를 가지고 있지 못해서 별도의 모듈을 추가하고 servlet jspl 추가했고, comp..

    heroku 에서 spring boot jar파일 deploy시 Web process failed to bind to $PORT within 90 seconds of launch 에러 처리

    heroku에 코드를 올리지 않고 바로 jar 파일을 deploy하기 위해서 heroku cli를 이용하여 올리는데 자꾸 Web process failed to bind to $PORT within 90 seconds of launch가 발생했다. 이유를 몰라서 계속 알아보던 중 heroku에서 spring boot를 실행시키기 위해서는 Procfile을 작성하고 port를 지정해줘야 한다. 우선 application.yml 설정 server: port: ${port:8080} Procfile 설정 - Procfile은 확장자 없이 만들어야한다. - 포트는 8080이나 원하는 걸로 지정해 주고 profile까지 작성해주고 나머지 depoly를 위한 내요을 작성한다. web: java -Dspring.se..

    [책프협] 2019 책쓰는 개발자 책노리 방문 후기

    작년에 어떤 출판사에서 블로그 글을 보고 책을 내보는건 어떻냐고 연락이 왔었다. 겁도 나고 내가 부족하다 생각해서 답장을 하지 못했다. ㅜㅜ 조금 후회 된다. 답장이라도 한번 해볼껄. 지금까지 공부한 내용을 남들에게 설명하고 정리하면 책도 내보고 공부도 할 수 있을것 같은데 아쉽다. 나중에 또 오면 연락을 해봐야겠다. 우선 그래서 개발자들이 책을 어떻게 쓰게되고 작성하는지 알아보기 위해 책쓰는 개발자 협회에서 하는 강연에 참석했다. 참석 기념품으로 교보문고에서 제공하는 달력을 받았다. 크게 기능이 있는 달력은 아닌거 같다. 책을 작성한 개발자분들의 대다수는 처음 책을 작성할 때 내가 부족한데 가능할까? 이런 의문을 가지고 겁도 냈다고 했다. 그래도 하고나니 자신감도 붙고 그렇게 어렵지는 않다고했다. 단,..

    iptime 5g 무선 랜카드 A3000U 개봉기

    집에 구조를 변경하면서 유선이 아닌 무선으로 데스크톱을 사용하게 되었다. 조립식으로 구매한 데스크톱에는 랜카드가 없었기 때문에 랜카드를 구매하려 찾아봤다. 그 중 집에 인터넷이 5G가 지원하니 그것까지 커버가 가능한 모델을 찾았다. 가격도 괜찮고 성능 및 후기도 좋은 A3000U를 골랐다. 비슷한 A3000UA도 있는데 크기도 커서 이걸 골랐다. 박스 자체는 작고 아담했다. 봉인라벨씰이 붙어있어서 누가 반품한 물건인지 열어본 물건인지 구별할 수 있어서 좋았다. 구성품은 설명서, 본체, 그리고 연장선이 있다. 연장선은 와이파이를 제공해주는 공유기가 멀리 있을때 신호를 잡기 위해서 사용하면 유용하다고 하는데 나는 그럴 필요가 없으니 패스 본체는 일반 USB 메모리보다 살짝 큰 수준이다. 바로 컴퓨터에 꼽아봤..

    creating bean with name 'webMvcRequestHandlerProvider' defined in URL 에러처리

    Spring 시작 시 creating bean with name 'webMvcRequestHandlerProvider' defined in URL에러가 발생했다. 이유는 spring context관련 설정이 중복되어 발생한 문제였다. @EnableWebMvc를 사용하는곳에서는 @Configuration을 지워주면 문제가 해결되었다.

    git ssh로 받은 프로젝트를 https 방식으로 변경하기.

    회사에서 ssh 방식으로 git을 사용하고 있었으나 정책상 ssh가 막혀서 https로 전환해야 했다. 근데 사실 ssh로만 주로 사용했지 이를 바꿔서 진행해본적이 없어서 난감했다.(기존에 작업중이던거 어떻게 ...) 그래서 알아보던중 같은팀 개발자분이 힌트를 주셔서 그대로 해보니 해결되었다. ㅋㅋ 간단하게 정리해보자. - 프로젝트 내에 .git의 config파일 열어서 수정터미널을 이용하든 편집기를 이용해서 config파일을 열어본다.그럼 밑줄 친 부분과 같이 ssh주소로 되어있는데 이를 repository의 https 주소로 바꿔주고 저장한다. 그리고 다시한번 git 명령어를 시도해보면 다음과 같이 계정 정보를 입력하라고 나오는데 이곳에는 해당 레포지토리가 있는 github이나 gitlab의 계정정보..

    ngrinder Mac os 간단 설치 및 테스트 방법

    api의 성능 테스트를 위해서 네이버에서 만든 ngrinder 설치하고 테스트를 진행해봤다. ngrinder는 controller와 agent로 구성이 되어 있는데 이에 대한 내용은 https://naver.github.io/ngrinder/ 해당 내용을 체크하자. 1. Controller 설치 - 톰캣을 설치하고 아래 주소에서 war를 다운받아서 실행시킨다. https://github.com/naver/ngrinder/releases 단, 3.4.2는 테스트 스크립트 실행 시 unexpected token에러가 발생한다. 그래서 3.4.1을 사용하는걸 추천한다. 설치 완료되면 아래 url로 접근 해서 확인 (초기 계정은 admin/admin) - 뒤에 root path는 편의를 위해서 war 파일을 n..

    [번역] Redis partitioning

    파티셔닝 공부를 위해 아래 페이지의 내용을 번역하며 정리해봤다.https://redis.io/topics/partitioning Redis Partitioning: 여러 레디스 인스턴스로 데이터 분배하기 파티셔닝은 데이터를 여러 레디스 인스턴스로 분할하여 모든 인스턴스가 자기가 소유한 키의 집합들만 소유하도록 하는 프로세스이다. 먼저 파티셔닝 개념에 대해 설명하고 레디스 파티셔닝에 대한 대안을 소개한다. 파티셔닝이 효율적인 이유 레디스에서 파티셔닝을 하기는 다음 두개의 이점이 있다. 1. 하나의 컴퓨터로 메모리의 양이 제한되는 경우에 파티셔닝을 사용하여 더 큰 데이터베이스와 메모리를 가질 수 있다. 2. 여러 개의 코어와 여러 대의 컴퓨터에 연산 능력을 확장하고 네트워크 대역폭을 여러 대의 컴퓨터와 네트..

    synology ds118에서 redis 설치하기 (패키지 센터가 아닌 직접 설치)

    synology에서 docker나 redis 등을 패키지 센터에서 설치하여 사용할 수 있다. 하지만 이상하게 저렴하게 나온 NAS, 그 중에서 x86 cpu를 사용하는 경우에는 패키지 센터에서 직접 redis를 설치할 수가 없다 ㅜㅜ 그래서 방법을 찾았다. 그 방법을 까먹지 않기 위해서 정리해보자. 1. DSM에서 SSH 허용이 부분은 아주 간단하게 DSM > 설정 > 네트워크에서 SSH 허용하여 접속을 킬 수 있다. 보안상 포트는 22가 아닌 다른 번호로 바꾸고 방화벽을 설정하는 것을 추천한다. 자세한건 검색하면 엄청 나오고 간단하다. 2. redis 다운로드redis 설치하여 운용하기 위해서 공식홈페이지에서 다운로드한다. 그리고 SFTP나 FTP 또는 단순하게 DSM에 드래그 해서 파일을 NAS에 옮..

    가정용 synology nas ds118 개봉기!!

    집에서 개인적으로 사용할 nas를 구입했다. 간단하게 파일 저장하고 공유하고 docker를 사용해서 mysql, redis등을 사용하기 위해서 구입했다. 위메프에서 ds118 20만원에 구입하고 wd 1tb nas용 하드를 구입했다. 구입은 맥을 사면서 적립되었던 포인트를 사용해서 실질적으로 구매비용은 10만원정도 들었다. 사실 하드를 nas용으로 사야하나 싶었으나 인터넷에 알아보니 nas에 일반 하드를 설치하면 고장날 확률이 많다고 한다. 대표적으로 nas에 경우 24시간 켜져있고 진동이 하드에 전달되기 때문에 고장난 확률이 높아진다고 한다. 그래서 nas 하드를 위메프에서 7만원에 구매했다. 박스는 안전하게 포장되어 왔다.생각보다 가볍다. 비싼 제품인데 봉인 씰이 없는건 아쉽다. 내부를 뜯어보면 어댑..

    node.js에서 multer 사용하여 이미지 업로드 및 텍스트 파일 다루기

    Multer는 파일 업로드를 위해서 사용되는 multipart/form-data를 다루기 위한 node.js 미들웨어이다. busyboy를 기반으로 하고 있다. 자세한 내용은 https://github.com/expressjs/multer/blob/master/doc/README-ko.md 이곳에서 참고하면 된다. 그럼 간단하게 multipart/form-data로 올린 이미지 파일과 텍스트파일을 request post로 받아서 처리하는 코드를 만들어보자. 우선 multer를 설치한다. npm i multer 그리고 이미지 파일을 특정 경로에 저장해놓고 사용할 수 있지만 나는 메모리 스토리지를 사용해서 조작하는 방식으로 진행해보겠다. multer 라이브러리를 선언하고 memoryStorage를 사용할 수..

    구글 애드센스 주소인증 PIN 번호 우편 받기

    네이버 블로그를 진행하다가 티스토리로 넘어오게된 이유는 바로 구글 애드센스를 사용하고 싶어서였다. 물론 수입을 위해서 블로그를 하는건 아니고 공부 내용 정리를 위해서이긴 하지만 그래도 일간 방문자가 500명 가까이 되니 욕심이 조금 생겼다.애드센스는 $20정도 수입금이 쌓이면 주소로 전송되는 PIN번호를 적어야한다. 그렇지 않으면 수입을 받을 수가 없다.작년 11월에 인증을 받으라고 해서 주소를 적고 PIN번호를 신청했다. 그러나 오지 않았다. PIN 번호 우편은 한달? PIN번호가 오는데 구글 애드센스 안내에 보면 한달정도 걸린다고 했다. 그런데 실질적으로 내가 11월에 신청해도 안오고 1월에 다시신청하고 2월에도 다시 신청했지만 오지 않았다.. 3번이상 다시 재 발송 신청하면 4번째 부터는 민증인증과..

    nginx 정리와 설치 및 기본 설정방법

    Ngnix 설명nginx는 기존 웹서버에서 많은 트래픽을 감당하기 위해서 확정성을 가지고 설계된 비동기 이벤트 드라이븐 방식의 웹서버를 칭한다. Nginx 설치nginx를 맥이 있으면 brew를 통해서 간단하게 설치가 가능하다.1brew install nginxcs Nginx 프로세스nginx는 하나의 마스터 프로세스와 여러 worker 프로세스를 가진다. 마스터 프로세스의 주요 목적은 read 권한 그리고 성능 측정과 worker 프로세스 관리이다. worker 프로세스는 요청을 처리한다. nginx는 event-based 모델을 사용하고 worker 프로세스 사이에 요청을 효율적으로 분배하기 위해서 os에 의존하는 매커니즘을 사용한다. worker 프로세스에 개수는 설정 파일에서 정의되며 정의된 프로..

    13인치 2017년형 맥북 프로 256기가 언박싱!

    기존에 사용중이던 맥북에어가 진짜 너무 느려서 도저히 사용할 수준이 아니었다. 확실히 맥북에어는 문서나 간단한 서핑 수준에 적합하다. 하지만 내가 사용하는 수준은 그정도 이상에 사양이 필요하다 보니 현저하게 사용을 하지 않게 되었고 그래서 중고나라에 팔았다. 구매했던 금액 40만원 그대로 40만원에 팔았다. 손해본건 없다. 그냥 본전이다. 그런다음 어떤 노트북을 사야하나 고민했다. 2018년형 모델에서 찾아봤는데 2018년형 모델은 터치바 모델만 존재한다. 회사에서 2017년형 15인치 터치바를 사용중인데 터치바는 진짜 너무 싫다. 이쁘고 사용성이 좋다고 생각할수도 있지만 나는 그냥 물리키가 더 좋다. 그래서 논터치바를 알아봤다. 논 터치바도 가격이 전혀 저렴하지 않았다. 256기가 논터치바는 기본형이 ..

    [번역] shared message queues와 publish-subscribe 방식에 Custom Group 방식을 더한 Kafka 소개

    전통적으로 메시지 모델은 Shared Message Queue, Publish-subscribe로 구분된다. 두 가지 모델 모두 그들만에 pros and cons를 보유하고 있다. 하지만 이 두개의 모두 최초 디자인 제한 때문에 큰 데이터를 다루기에는 부족했다. Apache Kafka는 두 모델 중 publish-subscribe 메시징 모델을 구현한 모델로 부족했던 부분을 수정하고 실시간 분석을 위한 스트리밍 데이터를 처리할 수 있도록 가능해졌다. kafka는 LinkedIn에서 2010년에 방대한 데이터 처리를 위해서 개발되었다. Apache Kafka는 전통적인 메시징 모델이 달성하지 못한 격차를 해소했다. Kafka는 두 모델의 개념을 구현하여 단점을 극복하고 동시에 두 가지 방법론을 모두 통합 ..

    Spring Boot에서 6.4 Elasticsearch 연결 및 간단 CRUD

    Elasticsearch를 Spring Boot에서 작업을 하는 간단한 정리를 해보자. 1. Library 추가Elasticsearch를 사용하기 위해서는 spring-data-elasticsearch 라이브러리가 추가되어야 한다. gradle에 추가해보자.1234567dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' compileOnly "o..

    Nginx, Apache 그리고 node.js 성능 관련 잡다한 정리

    Nginx과 Apache 비교 Nginx Apache 특징 - Nginx는 싱글 스레드 Event driven 방식- 미리 설정된 worker 프로세스 안에서 요청이 들어올 때 마다 요청을 분배하여 worker에게 역할을 분배- 기존에 정해놓은 리소스를 사용하기 때문에 CPU, Memory 등의 자원 사용률이 낮음 - 요청이 올 때마다 쓰레드를 생성하여 할당한다. 작업이 많아질 경우 많은 쓰레드할당이 필요하다. 그리고 쓰레드들이 작업을 진행 할 때마다 CPU를 사용하려 하기 때문에 문맥교환이 자주 발생된다. 차이점 - Apache에 경우 Blocking 방식으로 Network, DB 등 별도의 동작이 진행 될 때 Block되지만 Nginx는 Non-blocking 방식을 지원함 Non-blocking, ..

    kafka docker에 간단 설치 후 Spring boot 연동 테스트

    간단하게 Kafka 설치docker-compose.yml 생성 후 docker-compose up -d를 통해 설치12345678910111213141516version: '2'services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka ports: - "9092:9092" environment: KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_HOST_NAME: wedul.pos KAFKA_CREATE_TOPICS: "test:1:1" volumes: - /var/run/docker.sock:/var/run/docker.so..

    Kafka 요약 정리

    Topic- 메시지는 Topic에 분류된다. Partition- Topic은 partition으로 구분된다.- 파티션에 쌓이는 데이터는 로그라고 부르고 각 파티션에 나눠서 저장된다. Topic이 파티션으로 나뉘는 이유- Topic 내부에 파티션이 없을경우 메시지를 보내는 대상이 많아질경우 append 속도가 버거워진다. - 병렬로 분산저장하고자 Partition 개념 생성- 한번 생성한 파티션은 운영중에 줄일 수 없기 때문에 설계시 조심 Consumer- Topic에 있는 데이터를 읽는 대상 Consumer Group- Consumer를 여러개 묶어놓은 것. Consumer Group이 필요한 이유.- 소비를 진행 하던 Consumer가 죽어버릴 경우를 Rebalance 상황이라고 하는데 이럴경우 파티션..

    오버워치 가능한 게임 PC 컴퓨존 구매 후기

    기존에 아이맥을 사용하고 있었지만 결혼을 하게되어 신혼집에 입주하게 되면서 와이프가 사용할 컴퓨터가 한 대 더 필요했다.평소에 개발 관련 공부를 진행하고 있어서 아이맥을 잘 사용하고 있었는데 게임이 안되서 지금까지 거의 집에서 해본적이 없다.마침 와이프에 컴퓨터를 조립식으로 윈도우 피씨를 맞추게 되면서 오버워치가 가능한 피씨로 견적을 맞췄다. 견적견적은 딱 중사양으로 맞추고 가격은 62만원정도 들었다. 배송료랑 조립비하면 64만원들었다. SSD는 집에서 사용하던게 있어서 빼고 구매했다. 다나와 견젹비교를 하고 구매하였는데 컴퓨존이 다나와보다 조금 더 저렴했다. 종류 사양 CPU 8세대 i5-8500 Mem 삼성 메모리 DDR4 8기가 그래픽카드 Geforce 1050 메인보드 GIGABYTE B360M ..

    docker logstash 설치 및 log 파일 elasticsearch에 기록

    ELK에서 logstash를 제외하고는 모두 경험해봤다.이제 logstash를 사용해서 log파일을 elasticsearch에 기록해보자. 설치elasticseach도 kibana도 pc에 직접 설치하고 싶지 않아서 docker에 설치해서 사용했다. logstash도 docker에 설치해서 사용해보자. 물론 logstash를 사용하기전에 elasticseach와 kibana가 설치되어 있어야한다. 설치법은 저번 게시물에 올려놨다. logstash를 이름을 지정해서 background에서 동작하도록 실행시킨다.1docker run --name logstash -d docker.elastic.co/logstash/logstash:6.4.0cs 설정파일logstash를 설치하면 내부에 다음과 같은 설정파일이 ..

    Spring Reactive Web Application

    Sprint 5에서 리액티브 프로그래밍을 지원하는 웹 애플리케이션을 만들 수 있다. 리액티브 프로그램이란? 이전시간에 정리했었지만 스프링 리액티브 프로그래밍을 들어가기 전에 간단하게 정리해 보자. 일반적으로 리액티브 프로그래밍은 비동기, evnet-driven 방식으로 non-blocking 하는 프로그래밍으로써 일반적인 시스템 보다 작은 작은 쓰레드 수가 필요하다. 그럼 왜? 비동기-논블록킹 리액티브 개발이 가능. 기존 멀티쓰레드 블로킹 방식과는 다르게 서버의 응답에 의지하지 않는 효율적 개발이 가능. 서버간에 호출이 잦은 마이크로 서비스에서 사용됨 Spring Web Reactive Module (Servlet 3.1 이상부터 지원) Spring Framework 5는 spring-web-reacti..

    Spring reactor Mono와 Flux 정리

    지금까지 Spring5에서 추가되었던 리액트 프로그램을 사용하여 간단한 프로그램을 만들어 봤지만 정확하게 Mono와 Flux에 차이와 정의를 정리하지 못한 것 같다. 이번기회에 두 개의 정확한 차이와 사용방법등을 정리해보자. 리액티브 프로그래밍 비동기 블록킹 프로세스로 동작하는 애플리케이션을 논블록킹 프로세스로 동작하기 위해서 지원하는 프로그래밍. (현재 node.js의 동작방식과 유사) 기존 Spring 블록킹 방식 웹에서 서버에 요청이 왔을때 서버는 요청에 대한 적절한 응답을 보내야 하는데 만약 작업이 오래 걸릴 경우에는 요청에 대한 응답이 모두 종료될 때까지 블록킹된다. Spring에서는 그래서 동시 요청 처리를 위해서 멀티 thread를 지원한다. 그러면 하나의 작업이 thread에서 진행되고 다..

    레오폴드 FC660C 무접점 화이트 사용후기 (키보드 소리 리뷰 포함)

    집에서 사용하던 2만원짜리 싸구려 청축 키보드가 고장나서 집에서는 그냥 원래 대학교 2학년때 사용하던 한성 갈축을 사용하고 있었는데 키 입력이 자꾸 씹히는 현상이 발생했다. 참고 참다가 키가 입력이 자꾸되질 않아서 너무 힘들었고 집에서 사용할 무접점 싼 키보드를 찾았다. 그런데 보급형이라고 생각했던 한성과 앱코 키보드가 무접점이 10만원부터 시작이었다..... 너무 비싸다 그래서 포기하고 중고나라에서 중고로 알아보던 중 레오폴드 FC660C를 10만원에 판매하신다는 판매자가 나타났다. 원래 FC660C는 대학교형이 연구실에서 사용할때 봤었는데 F1 ~ F12까지의 키가 없어서 너무 불편하다고 생각했었다. 그런데 지금은 맥을 쓰면서 그 키들을 사용하지 않기때문에 큰 문제가 아니라고 생각했고, 10만원주고 ..

    현대백화점 천호점 라그릴리아 방문 후기

    2018년 마지막날 여자친구 생일을 기념으로 현대백화점 천호점에 있는 레스토랑 라그릴리아를 방문했다.레스토랑이 있는지는 예전부터 알았지만 방문해보는건 이번이 처음이었다. 스파게티, 라조또 그리고 스테이크를 하나씩 시켰다. 개당 15000 ~ 29000원 사이에 가격대를 형성한다. 그렇게 비싸지 않고 적당했다.창문자리에 앉으면 잠실 타워도 보이고 노을이 질때쯤이어서 엄청 색감이 이뻤다.예약을 안해서 자리가 하나밖에 없었지만 그래도 잘 골랐다.먼저 시킨 치즈 리조또는 엄청 맛있다.내가 먹어본 리조또중에 제일 맛있다. 특히 위에 뿌려져있는 머스타드 크림은 환상적인 맛이었다. 가격대는 만원 후반이었는데 진짜 맛있었다. 해물 스파게티도 가격대가 16000원정도였는데 해산물도 질기지 않고 너무 맛있었다. 굿굿 홍합..

    Kafka 정리

    카프카는 분산형 스트리밍 플랫폼으로써 다음으로 정의할 수 있다. 메시지 큐와 유사하게 스트림을 publish하고 subscribe 하는 방식이다.fault-tolerant 지속 방식으로 레코드들의 스트림들을 저장한다. 용도 시스템이나 어플리케이션에서 발생한 실시간 스트리밍 데이터를 안정적으로 데이터 파이라인 구축할 때데이터 스트림을 전송하거나 처리해야할 때 사용 구성 하나이상에 서버에 여러 cluster로 구성되어 있다.topic이라는 카테고리로 레코드 스트림들을 저장한다.각각의 레코드들은 key, value, timestamp로 구성되어 있다. 핵심 APIProducer API하나 또는 그 이상의 카프카 topic을 데이터 스트림에 발행할 수 있도록 해주는 APIConsumer API어플리케이션이 하나..

    생성한 Custom validation으로 에러메시지 출력하기

    바로 직전 https://wedul.tistory.com/562?category=595982 에서 Custom validation을 만들어서 입력된 값에 validation을 체크하는 방법을 알아봤다.그럼 이 validation체크를 통해서 front에 상황에 맞는 에러를 보내줄 수 있도록 조치를 취해보자.우선 @valid 처리를 했었던 컨트롤러에서 에러 메시지를 수집해야한다. 1. ControllerSpring에서 Validation 작업을 진행할 시 validation에 문제가 발생하면 에러 내용을 묶어서 BindingResult로 처리할 수 있도록 제공해준다. 이를 사용하기 위해서 parameter로 BindingResult값을 추가해준다.1234567891011121314/** * 회원가입 * *..