전체 글134 스프링 부트 3 백엔드 개발자 되기: 자바 편 챕터 개발 환경 구축하기 자바 백엔드 개발자가 알아두면 좋은 지식 스프링 부트 3 시작하기 스프링 부트 3 구조 이해하기 스프링 부트 3와 테스트 데이터베이스 조작이 편해지는 ORM 블로그 기획하고 API 만들기 블로그 화면 구성하기 스프링 시큐리티로 로그인/로그아웃, 회원 가입 구현하기 JWT로 로그인/로그아웃 구현하기 OAuth2로 로그인/로그아웃 구현하기 AWS에 프로젝트 배포하기 CI/CD 도입하기 2023. 5. 14. TCP/IP Illustrated 1 Second Edition TCP/IP Illustrated 1 Second Edition | 케빈 폴 - 교보문고 TCP/IP Illustrated 1 Second Edition | 오늘날의 TCP/IP 프로토콜 모음에 대한 완벽 가이드다. 최신의 혁신적 수정 사항을 완전하게 반영했으며, 리눅스, 윈도우, 맥 OS 환경 등의 실제 예제를 통해 각 프로토 product.kyobobook.co.kr 챕터 소개 아키텍처에 관한 원칙 설계와 구현 TCP/IP 아키텍처와 프로토콜 모음 인터넷, 인트라넷, 엑스트라넷 애플리케이션의 설계 표준화 절차 구현과 소프트웨어 배포 인터넷 아키텍처에 관련된 공격 인터넷 주소 구조 개요 IP 주소의 표현 IP 주소의 기본 구조 CIDR과 병합 특수 용도의 주소 할당 유니캐스트 주소 배정 IP 주소 관련.. 2023. 5. 10. Jenkins 설치 (Window) 💡 이번 포스팅에서는 윈도우에 젠킨스를 설치하는 방법에 대해 정리해 보도록 하겠습니다. 먼저 젠킨스는 자바로 개발되었기 때문에 JDK가 설치되어 있어야 합니다. 다운로드 링크 다운로드한 msi 파일을 실행합니다. 💡 서비스 구동 시 계정을 설정하는 부분인데, 나중에 변경할 수 있으니 지금은 LocalSystem으로 진행합니다. 따로 계정을 설정하지 않을 경우 Network Service로 동작합니다. 💡 앞서 설명했듯이 젠킨스는 자바로 개발되었기 때문에 JDK가 설치되어 있어야 합니다. 그리고 현재 설치 중인 2.387.3 버전에서는 JDK11 또는 JDK17이 설치되어 있어야 합니다. 젠킨스 실행 젠킨스 설치 시 포트를 8080으로 설정했기 때문에 localhost:8080으로 접속하면 아래와 같은 화.. 2023. 5. 7. Nginx 컴파일 설치 💡 이번 포스팅에서는 Nginx 컴파일 설치에 대해 정리해 보도록 하겠습니다. 각 리눅스 운영체제(레드햇, 데비안)에서 제공하는 패키지 관리 도구를 이용하면 손쉽게 Nginx를 설치할 수 있습니다. 하지만 이번에는 직접 Nginx 소스 코드를 다운로드하고 컴파일하여 설치해보도록 하겠습니다. Red Hat(레드햇) : yum install nginx Debian(데비안) : apt-get insall nginx | apt install nginx 필수 라이브러리 구성 Nginx는 C 언어로 작성된 프로그램이기 때문에 GCC 컴파일러가 필요합니다. 그리고 정규 표현식 호환 라이브러리인 PCRE 라이브러리가 필요하며, 엔진엑스 모듈 압축을 위해 zlib 라이브러리가 필요합니다. 마지막으로 엔진엑스가 안전하게 .. 2023. 5. 7. 로그 컴팩션 💡 이번 포스팅에서는 로그 컴팩션에 대해 정리해 보도록 하겠습니다. 컴팩션은 로그 세그먼트 관리 정책 중 하나로, 로그를 삭제하지 않고 컴팩션하여 보관할 수 있습니다. 로그 컴팩션은 기본적으로는 로컬 디스크에 저장되어 있는 세그먼트를 대상으로 실행되는데, 현재 활성화(active)된 세그먼트는 제외하고 나머지 세그먼트들을 대상으로 컴팩션이 실행됩니다. 카프카에서는 단순하게 메시지를 컴팩션하여 보관하기보다는 메시지의 키값을 기준으로 마지막의 데이터만 보관하는 좀 더 효율적인 방법으로 컴팩션합니다. 이런 컴팩션을 사용하는 대표적인 컨슈머가 바로 __consumer_offsets입니다. 위 이미지와 같이 k1에 대해 k1, v1, v3, v4 가 저장되었다고 했을 경우 마지막 k1에 대한 값은 v4입니다. 따.. 2023. 5. 7. 메시지 로그 세그먼트, 로그 세그먼트 💡 이번 포스팅에서는 메시지 로그 세그먼트에 대해 정리해 보도록 하겠습니다. 카프카의 토픽으로 전송되는 메시지는 각 파티션에 세그먼트, 또는 로그 세그먼트라는 파일에 저장됩니다. 로그 세그먼트에는 메시지의 내용과 메시지의 키, 값, 오프셋, 메시지 크기 같은 정보가 함께 저장되며, 브로커의 로컬 디스크에 저장됩니다. 하나의 로그 세그먼트 크기가 너무 커지면 파일을 관리하기 어려워지기 때문에 기본적으로는 최대 1GB 크기로 설정되어 있습니다. 만약 설정된 크기보다 커지는 경우에 기본적으로 롤링(Rolling) 전략을 사용합니다. 따라서 파티션은 하나 이상의 세그먼트로 구성되며, 각 세그먼트는 일정 시간이 지나거나 용량이 초과될 경우 기존의 세그먼트는 close 하고 새로운 세그먼트를 생성하여 데이터를 저장.. 2023. 5. 7. Redirection 💡 이번 포스팅에서는 Redirection에 대해 정리해 보도록 하겠습니다. Redirection은 터미널에서 명령을 실행할 때 표준 입력 및 표준 출력, 그리고 표준 에러를 변경할 수 있는 Linux의 기능입니다. 위와 같이 리눅스에서는 기본적으로 키보드를 통해 입력을 받고 있습니다. (표준 입력) 그리고 출력과 에러는 터미널로 보이게 됩니다. (표준 출력, 표준 에러) stdin(표준 입력): 0 stdout(표준 출력): 1 stderr(표준 에러): 2 여기서 0, 1, 2의 의미는 파일 서술자(File Descriptor)를 말합니다. '>'로 리다이렉션 하기 표준 출력은 파일 서술자 1번으로 설정되어 있고 표준 에러는 파일 서술자 2번으로 설정되어 있으며 기본적으로 터미널로 설정이 되어 있습니.. 2023. 5. 7. Nginx HTTP 서버 Nginx HTTP 서버 | 끌레망 네델꾸 - 교보문고 Nginx HTTP 서버 | 가장 빠르고 안전한 웹 서버 중 하나로 알려진 엔진엑스는 최근 급격히 보급돼 기존 1위 웹 서버였던 아파치의 자리를 이어 받아 인터넷의 가장 많은 웹 서비스를 지탱하는 웹 서 product.kyobobook.co.kr 챕터 엔진엑스 설치 기본 엔진엑스 구성 HTTP 구성 모듈 구성 엔진엑스와 PHP/파이썬 통합 아파치와 엔진엑스 연동 아파치에서 엔진엑스로 이전 부하 분산과 최적화 사례 연구 문제 해결 2023. 5. 7. Pro Git 프로 Git | 스캇 샤콘 - 교보문고 프로 Git | [프로 Git]는 Git의 기본적인 사용법부터 고급 기능까지를 전반적으로 살펴보고 언제 어떻게 사용해야 하는지 알려주는 책이다. 2판에서는 Git을 사용하는 오픈 소스 커뮤니티의 폭발적 product.kyobobook.co.kr 챕터 시작하기 Git의 기초 Git 브랜치 Git 서버 분산 환경에서의 Git GitHub Git 도구 Git 맞춤 Git과 여타 버전 관리 시스템 Git의 내부 2023. 5. 7. 실전 카프카 개발부터 운영까지 실전 카프카 개발부터 운영까지 | 고승범 - 교보문고 실전 카프카 개발부터 운영까지 | 아파치 카프카의 공동 창시자 준 라오(Jun Rao)가 추천한 책!국내 최초이자 유일한 컨플루언트 공인 아파치 카프카 강사(Confluent Certified Trainer for Apache Kafka)와 공 product.kyobobook.co.kr 챕터 카프카 개요 카프카 환경 구성 카프카 기본 개념과 구조 카프카의 내부 동작 원리와 구현 프로듀서의 내부 동작 원리와 구현 컨슈머의 내부 동작 원리와 구현 카프카 운영과 모니터링 카프카 버전 업그레이드와 확장 카프카 보안 스키마 레지스트리 카프카 커넥트 엔터프라이즈 카프카 아키텍처 구성 사례 카프카의 발전과 미래 2023. 5. 6. HTTP 완벽 가이드 HTTP 완벽 가이드 | 데이빗 고울리 - 교보문고 HTTP 완벽 가이드 | 성공적인 웹 트랜잭션 뒤의 숨은 핵심, HTTP의 모든 것『HTTP 완벽 가이드』는 HTTP 규약이 어떻게 작동하고 웹 기반 애플리케이션을 개발하는 데 어떻게 사용하는지 설명하고, HTT product.kyobobook.co.kr 챕터 HTTP: 웹의 기초 HTTP 아키텍처 식별, 인가, 보안 엔터티, 인코딩, 국제화 콘텐츠 발행 및 배포 부록 2023. 5. 5. 컨트롤러 💡 이번 포스팅에서는 컨트롤에 대해 정리해 보도록 하겠습니다. 카프카 클러스터 중 하나의 브로커가 컨트롤러 역할을 하게 되며, 파티션의 ISR 리스트 중에서 리더를 선출합니다. 리더를 선축하기 위한 ISR 리스트 정보는 안전한 저장소에 보관되어 있어야 하는데, 가용성 보장을 위해 주키퍼에 저장되어 있습니다. 컨트롤러는 브로커가 실패하는 것을 예의주시하고 있으며, 만약 브로커의 실패가 감지되면 즉시 ISR 리스트 중 하나를 새로운 파티션 리더로 선출합니다. 그러고 나서 새로운 리더의 정보를 주키퍼에 기록하고, 변경된 정보를 모든 브로커에게 전달합니다. 파티션의 리더가 다운됐다는 것은 해당 파티션의 리더가 없는 상태를 의미하며, 카프카 클라이언트인 프로듀서나 컨슈머가 해당 파티션으로 읽거나 쓰기가 불가능합니.. 2023. 5. 1. 리더에포크 & 복구 💡 이번 포스팅에서는 리더에포크와 복구에 대해 정리해 보도록 하겠습니다. 리더에포크(LeaderEpoch)는 카프카의 파티션들이 복구 동작을 할 때 메시지의 일관성을 유지하기 위한 용도로 이용됩니다. 리더에포크는 컨트롤러에 의해 관리되는 32비트의 숫자로 표현됩니다. 해당 리더에포크 정보는 Replication 프로토콜에 의해 전파되고, 새로운 리더가 변경된 후 변경된 리더에 대한 정보는 팔로워에게 전달됩니다. 리더에포크는 복구 동작 시 하이워터마크를 대체하는 수단으로도 활용됩니다. 리더에포크 X peter-test01 토픽의 리더 파티션과 팔로워 모두 message1 메시지 Replication에 성공했습니다. 그리고 하이워터마크를 1로 올린 후 리더 파티션이 message2를 저장한 후 팔로워 파티션.. 2023. 5. 1. ISR(In Sync Replica) 💡 이번 포스팅에서는 ISR(In Sync Replica)에 대해 정리해 보도록 하겠습니다. 이전에 포스팅했던 Replication에서 리더와 팔로워 파티션들은 하나의 논리적 그룹으로 묶여있는데 이를 ISR(In Sync Replication)이라고 합니다. ISR은 리더 파티션과 정상적으로 동기화가 이루어진 팔로워 파티션들로 구성되며, 만약 팔로워 파티션에 문제가 생겨 리더 파티션의 메시지를 가져오지 못하거나 뒤쳐질 경우 해당 팔로워 파티션은 ISR에서 제외됩니다. 📢 ISR을 주기적으로 확인하는 옵션은 다음 두가지 옵션이 있습니다. zookeeper.session.timeout.ms default: 6초 max: 18초 → 브로커가 주키퍼에 연결되어 있어야 합니다. 위 옵션에 설정된 시간 내에 Hea.. 2023. 5. 1. Replication 💡 이번 포스팅에서는 Replication에 대해 정리해 보도록 하겠습니다. 이전 멀티 노드 카프카 - 1, 멀티 노드 카프카 - 2 포스팅에서 토픽 생성 시 replication-factor 옵션을 통해 토픽의 각 파티션들을 여러 브로커에 복제해 보았습니다. 이번 포스팅에서는 파티션 복제, Replication에 대해 조금 더 자세하게 정리해 보도록 하겠습니다. 멀티 노드 카프카의 핵심은 바로 Replication입니다. Replication을 통해서 개별 노드(브로커)의 장애를 대비하여 높은 가용성을 제공할 수 있기 때문입니다. Replication은 토픽 생성 시 replication-factor 값을 통해 구성할 수 있습니다. 만약 replication-factor가 3이면 리더 파티션, 팔로워 .. 2023. 5. 1. 이전 1 2 3 4 5 6 ··· 9 다음