분류 전체보기
-
24년 3월 회고 - Now everybody's dead일상 2024. 4. 8. 03:59
올해 1,2월은 어떻게 지나갔는지도 모르겠다. 기억을 안하는건지 기억을 못하는건지. 그래도 어떻게 졸업 요건 밀렸던거 밤새가며 해치우고 졸업 했던거랑 살면서 스키장을 한번도 안가봤었는데 고등학교 동창들이랑 지산가서 야간 스키 탄건 기억난다. 그래도 3월부터는 좀 사람들도 만나면서 뭔가 많이 한 거 같다. 이 곡 첫 도입부의 리드 기타가 한동안 귓 속에서 맴돌았다. 0분 49초 부터. The 1975 - Robbers And he's got his gun, he's got his suit on She says, babe, you look so cool 2024.03.05 - 필름카메라 입문 작년 취준할 때 돈이 없어서 갖고 있던 EOS R을 팔았다. 렌즈는 나름 자산이라고 EF시절 부터 갖고 있던 35.2..
-
Docker로 Elasticsearch + Kibana 개발환경 구성하기개발 2023. 11. 24. 05:19
회사에서 검색 시스템 개발을 맡게 되었고 아파치 루씬 기반의 검색엔진인 Elasticsearch를 사용하기로 하였다. 로컬 개발 환경을 간단하게 구축하기 위해 도커를 활용해 구성하였다. ES, Kibana 컨테이너 실행하기 우선, Elasticsearch와 Kibana가 사용할 도커 네트워크를 만든다. docker network create [NETWORK_NAME] Elasticsearch와 Kibana 컨테이너를 실행한다. 버전은 8.10.4를 사용했다. 필요한 포트들을 포트포워딩 한다. 9200번 포트: Elasticsearch API 9300번 포트: Elasticsearch 클러스터 내 에서 노드간 통신에 사용 5601번 포트: Kibana 대시보드 개발 환경 이므로 "discovery.type..
-
[Spring Webflux] #1 Reactive Streams 이해하기개발 2023. 2. 25. 16:39
Spring Webflux에서 비동기 로직을 지원하기 위해 사용되는 Reactor 라이브러리는 Reactive Stream의 구현체이다. Reactor 라이브러리를 보기에 앞서, Reactive Streams을 공부하려 한다. Reactive Streams? Reactive Streams는 non-blocking backpressure를 이용한 비동기 스트림 처리를 위한 표준을 뜻한다. Backpressure: 시스템의 한 컴포넌트(생성자)가 데이터를 생성하는 속도가 다른 컴포넌트(소비자)가 데이터를 소비하는 속도를 초과할 때 발생하는 압력 Non-blocking backpressure: 컴퓨터 네트워크와 분산 시스템에서 과부하와 혼잡을 방지하기 위한 컴포넌트 간의 데이터 흐름을 제어하는 기술. 소비자 ..
-
[Spring Webflux] #0 Webflux 기본 개념개발 2023. 2. 22. 03:02
스프링에서, 웹 스택은 Web Servlet, Web Reactive 이렇게 두가지가 있다. Spring MVC 와 Spring WebFlux Web Servlet에 해당되는 Spring MVC는 Java EE의 Servlet API를 기반으로 한다. Spring MVC는 Blocking 방식이다. 요청들이 들어오면 큐에 넣고 미리 만들어 둔 스레드 풀에서 스레드를 가져와서 사용한다. (하나의 요청에 하나의 스레드를 사용한다.) 그래서 스레드 풀 사이즈를 초과하는 많은 요청들이 들어오면 나머지 요청들을 처리하지 못하고 이전 작업들이 처리 될 때까지 큐에서 대기하게 되므로 지연시간이 늘어나게 된다. (Thread Pool Hell 현상) 이와 같은 대용량 트래픽 문제를 해결하기 위해 Spring 5버전부터..
-
라즈베리파이 우분투 서버 구축 #2 Docker Engine 설치개발 2022. 12. 6. 18:09
API 서버의 버전 관리를 도커 컨테이너를 사용하여 하기로 결정했다. 설치 방법은 도커 공식 문서를 참고하였다. https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu docs.docker.com 모든 커맨드는 최상위 경로에서 실행하였다. 1. apt 패키지 리스트를 최신화하고, apt 커맨드가 https를 사용할 수 있도록 허용할 수 있도록 필요한 패키지들을 설치한다. $ sudo apt-get update $ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release 2. 도커 공식 GPG Key를 추가한다. $ sudo mkdir -p /etc/apt/..
-
라즈베리파이 우분투 서버 구축 #1 우분투 설치 & SSH 설정개발 2022. 12. 5. 22:59
라즈베리파이에 OS를 설치하기 위해서는 마이크로 SD 카드가 필요하다. 먼저, Raspberry Pi Imager을 설치한다. https://www.raspberrypi.com/software/ Raspberry Pi OS – Raspberry Pi From industries large and small, to the kitchen table tinkerer, to the classroom coder, we make computing accessible and affordable for everybody. www.raspberrypi.com 운영체제와 Micro SD카드를 선택하고 쓰기를 하면 된다. OS 설치가 끝나면 라즈베리파이에 전원과 랜선, hdmi 케이블을 연결하고 전원을 켠 후 로그인 한다...
-
라즈베리파이 우분투 서버 구축 #0개발 2022. 12. 5. 22:11
드디어 소프트웨어 마에스트로 13기 연수 과정이 끝나면서, AWS 서버 비용 지원도 함께 끝났다. 고생해서 만든 프로젝트를 계속 서비스하기 위해 기존 AWS 기반 서비스를 유지하던지 새로운 환경으로 마이그레이션 하는 선택지 중 라즈베리파이를 활용해서 내 자취방에 홈 서버를 구축하는 방안을 택했다. AWS에서 온프레미스 환경으로 마이그레이션 하면서 해야 할 일들을 정리해 보았다. 1. 기존 도메인 연결 2. SSL 인증서 발급 및 https 적용 (기존 서버에서는 ACM을 사용해서 아마존에서 발급받은 인증서로는 AWS 리소스에만 적용 가능하다.) 3. MySQL 기반 데이터베이스 서버 구축 4. 스프링 기반 API 서버 구축 (버전 관리 필요) 5. Github Actions 기반의 새로운 CI/CD 파이..
-