🧭 서론최근 스트리밍 시스템을 공부하면서 '진짜'스트리밍 처리, 실시간 처리, 이벤트 도착하자마자 처리 라는 개념을 이해하기 위해 리서치한 내용을 바탕으로 글을 작성한다."Flink는 진짜 스트리밍 처리 시스템이다" 이 말, 도대체 어떤 의미일까.Flink는 어떻게 동작하길래 '진짜 스트리밍'이라는 수식어가 붙는걸까?마이크로배치로 동작하는 스파크랑 비교하면서 알아봤다.📌 본론✅ 마이크로배치란?Spark Structured Streaming은 사실 이름과 다르게 완전한 실시간(streaming) 시스템이 아니다.데이터를 아주 짧은 시간 단위(예: 1초, 500ms)로 '모아서' 한 번에 처리하는 방식이것을 마이크로배치(Micro-Batch) 라고 부른다. 즉, Spark는 실시간처럼 보일 뿐, 내부적으..
✨ 서론GitHub 리포가 비공개일 경우, SSH를 추가해 clone 받는 방법을 정리합니다.🫡 본론1. EC2 인스턴스에 SSH 키 생성ssh-keygen -t ed25519 -C "your_email@example.com"2. SSH 에이전트 실행 및 키 추가# SSH 에이전트 시작eval "$(ssh-agent -s)"# SSH 키 추가ssh-add ~/.ssh/id_ed255193. GitHub 공개 키 추가# 공개 키를 출력cat ~/.ssh/id_ed25519.pub위 명령어의 출력값을 복사한 후, GitHub에 로그인하여 아래와 같이 진행합니다.GitHub의 우측 상단에서 Profile Picture를 클릭하고 Settings로 이동.SSH and GPG keys로 이동.New SSH Ke..
저자 :맷 오스왈트 , 제이슨 에델만 , 크리스티안 아델 , 스콧 S. 로우번역 :이주호출간 :2024-08-10페이지 :984 쪽리뷰를 신청할 때 책 제목이 흥미로워서 신청했다.막상 받으니 1000 페이지 가량의 두꺼운 책이라 놀랐지만, 필요한 부분만 골라 읽어봤다. 이 책은, 제목대로 네트워크 엔지니어가 읽으면 도움이 될 만한 내용이었다.백엔드 개발자가 읽기에는 다소 생소한 용어들이 많았지만, 네트워크, 리눅스 역사나 클라우드 개념을 훑어보기엔 재밌었다. 이 책은 정말 많은 걸 담으려고 한 게 느껴졌다.네트워크 엔지니어와 개발자 모두에게 도움이 되고 싶었던 느낌이랄까?기초부터 심화까지 많은 부분을 담으려고 하다보니 1000페이지 가량의 두꺼운 책이 탄생했고, 처음부터 끝까지 보기엔 힘든 책이었다.파..
2023년에 이어 2024년도 한빛미디어의 서평단이 되었다. 감사한 마음을 담아 작년보다 더 나은 리뷰를 쓸 수 있도록 노력해야겠다. 한줄평: 실무에서 사용될 다양한 키워드들을 빠르게 습득할 수 있는 책 책에서 독자 방향을 취준생 ~ 1~2년 차 신입 개발자로 잡았는데, 개인적으로 취준생 ~ 입사 신입 때 읽기 좋은 책이었다. 부제로도 나와있듯 40가지 핵심 기술에 대해서 설명하다보니, 한 기술에 대해 깊이 설명하기 보다는 핵심을 잘 짚어주는 느낌이었다. 이 책에서 좋았던 점은 아래와 같다. 1. 다양한 분야를 설명한다고 해서 결코 깊이가 얕지 않다. 2. 다양한 키워드를 짚어준다. 3. 용어에 대한 설명이 매력적이었다. 1. 다양한 분야를 설명한다고 해서 결코 깊이가 얕지 않다. 핵심적인 키워드들을 잘..
한줄평: 제목을 참 잘 지은 책. 35년 경력을 가진 선배 개발자가 직접 겪은 다양한 이슈와 과거 큰 이슈들을 이야기해주면서 실제 프로덕트 환경의 무서움을 알려주는 책이다. 코드를 잘못 작성해서, 요구사항과 다른 구현, 예외처리를 놓쳐서 등 프로그램을 잘못 작성해서 발생하는 문제들은 분명 많다. 많은(거의 모든) 개발자들은 위 사실을 알고 최대한 위와 같은 일들이 일어나지 않도록 테스트 코드를 작성하고, 많은 테스트를 통해 방지를 위해 힘을 쓴다. 하지만, 실환경에서는 문제가 저게 다가 아니다. 테스트 환경에서는 발견할 수 없었던 문제가 실환경에서는 더 많은 서버가 올라가고, 더 많고 무작위인 많은 트래픽(사용자)로 인해 성능 테스트에서 발견하지 못한 문제를 만날 수도 있으며, 많은 사람이 믿고 사용하는..
백엔드 개발자로 일을 하면서 앱개발을 한 번도 해본 적은 없지만, 앱 개발을 배워보고 싶다는 생각이 있었다. ios, 안드로이드를 별도로 개발하지 않는 기술 중 리액트 네이티브와 플러터 중 뭘 배울까 고민했던 적이 있었는데 구글에서 활발하게 지원하고 있는 플러터를 배워보고 싶었고, 마침 이번에 기회가 생겨서 이 책을 읽어봤다. 다양한 연습 사실 문법만 배운다고 바로 내가 원하는 앱을 만들기는 쉽지 않다. 여러 번 만들어봄으로서 계속해서 연습해봐야 하는데, 이 책에서는 단계단계 여러 프로젝트를 진행한다. 초보자의 경우 실제 내가 친 코드의 결과물을 보는 게 흥미를 느낄 수 있어 앞으로 공부하는 데에 도움이 되는데, 2장에서는 문법 설명 이전에 코드를 먼저 따라서 치는 실습이 있어서 흥미를 올릴 수 있어서 ..
서론 https://www.youtube.com/watch?v=ExUfZkh7Puk 토비님의 유튜브 강의 내용을 정리한 글 입니다. 본론 @RestController public static class MyController { AsyncRestTemplate rt = new AsyncRestTemplate(); @GetMapping("/rest") public String rest(int idx) { return rt.getForEntity("http://localhost:8081/service?req={req}", String.class, "hello" + idx); } } AsyncRestTemplate을 사용하면, 톰캣 스레드 1개로 처리가 가능하다. 하지만, 백그라운드 스레드가 생성되어 처리하기..
서론 https://www.youtube.com/watch?v=aSTuQiPB4Ns 토비님의 유튜브 강의 내용을 정리한 글 입니다. 본론 스프링 컨트롤러 리턴타입에 따른 동작방식 #1 Object @GetMapping("/async") public String async() throws InterruptedException { log.info("async"); Thread.sleep(2000); return "hello"; } 기본 tomcat thread pool 수인 200개 까지만 동시처리가 가능하다. [링크] https://tomcat.apache.org/tomcat-8.5-doc/config/executor.html #2 Callable @GetMapping("/callable") public ..