본문 바로가기
반응형

분류 전체보기127

[우아한 테크 캠프 Pro 2기] 1주차. 로또-TDD 코드 경로 https://github.com/next-step/java-lotto/pulls?q=is%3Apr+is%3Aclosed+author%3Ajordy-torvalds GitHub - next-step/java-lotto: 로또 게임 구현을 관리하는 저장소 로또 게임 구현을 관리하는 저장소. Contribute to next-step/java-lotto development by creating an account on GitHub. github.com 주요 내용 자동/수동 로또 구매 및 당첨 및 당첨금액 확인을 하는 간단한 프로그램을 짜보는 미션이었습니다. 구현 도메인 자체는 쉬웠으나 요구되는 요구사항들을 준수하며 개발하는 것이 어려웠습니다. 요구된 요구사항은 대략 아래와 같습니다. TDD로 모.. 2021. 10. 1.
[우아한 테크 캠프 Pro 2기] 참여 계기와 과정, 그리고 결과 우아한 테크 캠프 Pro란? 우아한 테크 캠프 Pro는 정체하던 저의 백엔드 개발자로서의 성장에 터닝 포인트가 되준 교육 프로그램 입니다. 2021-05-17부터 2021-07-16까지 9주간 교육과 미션이 진행되었으며 주로 다룬 주제는 TDD, 클린 코드, 코드 리뷰, 클라우드, JPA, ATDD, 컨테이너 등 서비스 기업이라 불리는 B2C 기업들에서 주로 사용되는 백엔드 기술을 중점으로 교육을 진행했습니다. 참여 계기 홀로 공부를 했을 때 TDD, JPA, Cloud 등의 주제는 공부를 하고 싶으면서도 그 방법을 몰라 막연함에 답답함을 느끼고 했습니다. 단순히 관련 도서를 보기도 했지만, 뭔가 실력적으로 늘고 있다는 생각이 들지 않았습니다. 이 뿐 아니라 제가 짠 코드가 과연 좋은 코드일까에 대한 의.. 2021. 9. 30.
[카프카, 데이터 플랫폼의 최강자] 6장. 카프카 운영 가이드 개요 이번 장에서는 알아볼 내용은 다음과 같습니다. 카프카 운영 환경에서 빈번하게 사용되는 명령어 클러스터 확장을 위해 필요한 주키퍼와 카프카 스케일 아웃 방법 JMX를 사용한 카프카 모니터링 방법 카프카를 GUI 도구로 관리할 수 있는 카프카 매니저 활용법 필수 카프카 명령어 기본적인 명령어는 ../kafka/bin 에서 확인할 수 있습니다. 토픽 설정 명령어들 # 특수문자 안에 넣을 값은 카프카 클러스터, 주키퍼 클러스터 환경과 운영 목적에 따라 # 유동적으로 정해주시면 됩니다. # 토픽 생성 명령어 ../kafka/bin/kafka-topics.sh \ --zookeeper **/\** --replication-factor **** --partitions ** \** --topic **** --cr.. 2021. 9. 29.
[카프카, 데이터 플랫폼의 최강자] 5장. 카프카 컨슈머 컨슈머란? 토픽의 메시지를 가져와서 소비(consume)하는 애플리케이션과 서버. 주요기능은 특정 파티션을 관리하고 있는 파티션 리더로부터 메시지 가져오기 요청을 하는 것. 각 요청은 로그의 오프셋을 명시하고 그 위치로부터 로그 메시지를 수신합니다. 그래서 컨슈머는 가져올 메시지의 위치를 조정할 수 있고 필요하다면 이미 가져온 데이터도 다시 들고 올 수 있습니다.(다른 메시지 큐에서는 제공되지 않는 기능, 메시지가 디스크에 저장되기에 가능.) 5.1. 컨슈머의 주요 옵션 컨슈머의 종류는 크게 두 가지로 old consumer와 new consumer가 있음. 주키퍼의 지노드에 오프셋을 저장하면 old consumer, 카프카의 토픽에 저장하면 new consumer 주키퍼의 지노드에 저장하는 방식은 향후.. 2021. 9. 29.
[카프카, 데이터 플랫폼의 최강자] 4장. 카프카 프로듀서 프로듀서란 메시지를 생산해서 카프카의 토픽으로 메시지 보내는 역할을 하는 어플리케이션, 서버 등을 말한다. 프로듀서의 주요 기능은 각각의 메시지를 토픽의 파티션에 매핑하고 파티션의 리더에 요청을 보내는 것. 아래꺼 보완하기 키 값을 정해 해당 키를 가진 메시지를 동일한 파티션에 전송할 수 있음. 키가 없으면 라운드 로빈 방식으로 파티션에 균등하게 분배 4.1. 콘솔 프로듀서로 메시지 보내기 auto.create.topics.enable=true # 토픽이 없을 때 자동으로 토픽을 생성하는 설정 책에서는 실습을 위해 토픽을 생성하며 토픽 생성에 필요한 기본적인 정보는 다음과 같음. 토픽 이름, 파티션 수, 리플리케이션 팩터 # 토픽 생성 ../kafka/bin/kafka-topics.sh --zookeep.. 2021. 9. 29.
[카프카, 데이터 플랫폼의 최강자] 3장. 카프카 디자인 3.1. 카프카 디자인의 특징 3.1.1. 분산 시스템 분산 시스템은 네트워크로 이루어진 컴퓨터들의 그룹으로서 시스템 전체가 공통의 목표를 가지고 있습니다. 다시 말해 같은 역할을 하는 여러 대의 서버로 이뤄진 서버 그룹을 분산 시스템이라고 합니다. 장점은 다음과 같습니다. 단일 시스템보다 더 높은 성능을 얻을 수 있다. 분산 시스템 중 하나의 서버 또는 노드 등이 장애가 발생하면 다른 서버 또는 노드가 대신 처리한다. 시스템 확장이 용이하다. 3.1.2. 페이지 캐시 카프카는 처리량을 높이기 위한 기능을 몇 가지 추가했고 그 기능 중 하나가 페이지 캐시 입니다. OS는 물리적 메모리에 애플리케이션이 사용하는 부분을 할당하고 남은 잔여 메모리 일부를 페이지 캐시로 유지해 OS의 전체적인 성능을 향상 시킵.. 2021. 9. 29.
[카프카, 데이터 플랫폼의 최강자] 2장. 카프카 설치 주된 내용 설치 방법 Systemd를 이용한 프로세스 관리 방법 카프카 운영 팁 설치 방법으로는 서버 직접 설치와 도커 활용 설치가 있는데, 이 글에서는 전자를 다룸. 카프카의 구성은 크게 4가지 프로듀서 카프카 컨슈머 주키퍼: 카프카의 메타데이터 정볼르 주키퍼에 저장하고, 카프카의 상태관리 등의 목적으로 사용. 2.1.카프카 관리를 위한 주키퍼 주키퍼란? 아파치 산하 프로젝트인 하둡, 나이파이, 에이치베이스, 스톰 등의 많은 애플리케이션이 부하 분산 및 확장이 용이한 분산 애플리케이션으로 개발 분산 애플리케이션을 사용하게 되면, 관리를 위한 안정적인 코디네이션 앱이 추가적으로 필요. 대용량 분산 처리 애플리케이션인 하둡의 중앙 관리 코디네이션 애플리케이션의 필요로 인해 서브 프로젝트로 개발되어졌음 카프.. 2021. 9. 29.
[카프카, 데이터 플랫폼의 최강자] 1장. 카프카란 무엇인가 카프카란 카프카는 글로벌 SNS 기업인 LinkedIn에서 개발한 대용량, 대규모 메시지 처리 플랫폼 빅데이터 필수 도구 깃허브에서 많은 스타를 받았으며, 여러 IT 기업에서 데이터 파이프라인으로 활용 중 1.1.카프카 탄생 배경 LinkedIn의 내부 이슈 해결하기 위해 탄생. 카프카를 이용한 링크드인의 데이터 처리 시스템 (출처: https://www.confluent.io/blog/event-streaming-platform-1/) 카프카 도입 이전의 단점들은 위와 같음 실시간 트랜잭션(OLTP) 처리와 비동기 처리가 동시에 이뤄지고 있으며, 통홥된 전송 영역이 없어서 복잡도가 높음. 이를 위한 개선을 하려 해도 연관 시스템을 모두 확인하여 영향도를 확인해야 함. → 복잡하고 변경이 어렵고 장애에 .. 2021. 9. 29.
Java 버전 별 특징 JDK 5 ~ JDK 17 보호되어 있는 글 입니다. 2021. 9. 29.
반응형