기타 (32) 썸네일형 리스트형 [Kafka] Kafka Consumer 예제 1. KafkaConsumer Kafka cluster 의 레코드를 사용하는 클라이언트, 컨슈머 객체를 생성하는 클래스이다. 매개변수로 넘겨주는 서버 정보, 데이터 역직렬화 정보, 그룹 ID 등을 설정으로하여 객체를 생성한다. 컨슈머는 poll 메서드를 사용해서 브로커에서 데이터를 가져온다. poll 메서드는 마지막으로 사용한 데이터 이후 입력된 데이터들을 가져온다. poll 메서드는 timeout 을 매개변수로 줄 수 있는데, 만약 레코드가 존재하면 해당 레코드를 반환하지만 timeout 을 초과하면 빈 레코드 집합이 반환된다. - bootstrap.servers 클라이언트가 레코드를 전송하기 위해서는 레코드가 전송될 토픽의 파티션 정보를 알아햐 한다. 클라이언트가 찾고자 하는 토픽 파티션의 메타데이터.. [Kafka] Kafka Producer 예제 1. KafkaProducer Kafka cluster 로 record 를 송신하는 클라이언트, 프로듀서 객체를 생성하는 클래스이다. 매개변수로 입력받은 설정에 따라 카프카 클러스터와 연결하여 동작한다. 레코드를 전송하는 메서드는 send() 인데, 이는 비동기로 동작한다. 프로듀서 객체가 정상적으로 동작하기 위해서는 카프카 클러스터 서버 정보와 데이터 직렬화 정보를 입력해주어야 한다. - bootstrap.servers 클라이언트가 레코드를 전송하기 위해서는 레코드가 전송될 토픽의 파티션 정보를 알아햐 한다. 클라이언트가 찾고자 하는 토픽 파티션의 메타데이터를 요청하기 위한 설정으로 클라이언트와 클러스터의 초기 연결을 위해 사용한다. 브로커의 'hostname:port' 정보의 리스트 형태를 가지며, .. [Kafka] Kafka 기본 개념 1. event streaming 이벤트 스트리밍은 DB, 센서, 모바일 장치, 클라우드 서비스 및 소프트웨어 애플리케이션과 같은 이벤트 소스로부터 실시간 데이터를 이벤트 스트림 형식으로 획득하는 방식을 말한다. 이 방식은 이후에 이벤트를 검색할 수 있도록 이벤트 스트림을 저장하고, 실시간으로 이벤트 스트림을 조작, 처리하고 이에 대한 응답을 수행 할 수 있다. 또한 필요한 경우 이벤트 스트림을 다른 목적지로 전달하기도 한다. 이벤트 스트리밍은 데이터의 지속적인 흐름과 해석을 통해 정확한 데이터가 정확한 위치와 시점에 존재하도록 한다. 이러한 이벤트 스트리밍은 실시간 금융거래, 자동차 산업의 차량 실시간 모니터링과 같이 다양한 산업에서 사용할 수 있다. 또한 회사의 여러 부서에서 생성된 데이터를 연결, .. [Web] html form 태그에서 PUT, DELETE 사용 1. client - html form 태그 REST API 를 설계하다보면 필요에 따라 GET, POST 뿐만 아니라 PUT 과 DELETE 메서드를 사용해야 하는 경우가 있다. 그러나 form 태그에서는 기본적으로 GET, POST 방식만 지원한다. 그렇기 때문에 PUT, DELETE 메서드를 사용하기 위해서는 다음과 같이 hidden input 라인을 추가해주어야 한다. 이 방법은 약간의 꼼수인데, 위와 같이 hidden input 의 value 에 사용하고자 하는 메서드를 입력하여 form 태그 내부에 숨겨서 전송을 하는 것이다. thymeleaf 템플릿을 사용하는 경우에는 다음과 같이 구현할 수 있다. ... thymeleaf 는 따로 hidden input 태그를 추가하지 안하도 자동으로 추가.. [Web] Rest URI 네이밍 1. What is a Resource? REST 방식에서는 주요 데이터 표현, 개념을 리소스라고 한다. REST 방식에서 얻을 수 있는 정보들, 문서나 이미지, 특정 서비스 또는 다른 리소스들의 컬렉션 등을 리소스라고 한다. 리소스는 어떤 특정한 엔티티라기보다는 엔티티들의 집합과 개념적으로 매핑되어 있다고 이해할 수 있다. 1) Singleton and Collection Resources 리소스는 singleton 이 될 수도, collection 이 될 수도 있다. 예를 들어 customer 라는 엔티티가 있을 때, customer 는 싱글 리소스, customers 는 컬렉션 리소스가 된다. customers 는 '/customers' 로 customer 에 대해서는 '/customers/{cus.. [vscode] vscode 파이썬 디버깅 VS Code 는 .vscode/launch.json 파일에 저장되어있는 설정을 바탕으로 디버깅 기능을 수행할 수 있도록 되어있다. launch.json 에 다양한 디버깅 설정을 지정할 수 있는데, 파이썬 프로그램을 디버깅시의 설정과 사용법 등에 대해서 알아본다. 1. Python Debugger 기본적으로 파이썬을 디버깅하기 위해서는 launch.json 에 파이썬 디버깅을 위한 설정을 저장해야한다. 아무런 디버깅 설정이 되어있지 않은 vscode 에서 디버깅을 수행하려고 하면 어떤 설정으로 디버깅할 것인지 선택하도록 한다. 이때 Python file 을 선택하면 기본 python 설정 내용을 포함한 launch.json 파일이 열리게 된다. 이 파일에 설정을 통해서 파이썬을 디버깅할 수 있다. 기본 .. [git] git stash git 을 사용하여 작업을 하던 중 branch 를 바꾸기 위해서 git check 을 시도하면 때로 변경사항이 있어서 브랜치를 변경할 수 없다며 commit 또는 stash 를 통해서 변경 사항을 저장하라고 한다. commit 은 변경사항을 local repository 에 저장하는 명령어인데 stash 는 어떤 명령어인지 몰라서 이번에 알아보려 한다. 1. git stash git stash 란 워킹 디렉토리에서 수정한 파일들을 저장하는 명령어이다. stash 는 modified 이면서 tracked 상태인 파일과 staging area 에 있는 파일들을 스택에 잠시 저장했다가 나중에 다시 저장할 수 있도록 해준다. 이를 통해서 아직 마무리 되지 않은 작업을 잠시 저장해두었다가 다른 브랜치에서 작업을.. [git] squash로 commit 합치기 1. squash 때로는 하나의 기능을 구현하는데 있어서 프론트, 서버 또는 여러번의 수정으로 인해 커밋의 개수가 여러개가 될 때가 있다. 이럴 때 커밋 이력 등을 정리하기 위해서 git squash 를 사용하여 커밋 이력을 합치면 된다. git의 squash 기능은 여러개의 커밋 이력을 하나의 커밋 이력으로 만들 때 사용한다. 정확히 말하면 git rebase 를 통해서 이전 commit log 등을 되돌릴 수 있는데, 이 때 squash 옵션을 사용하여 되돌리는 커밋들을 하나의 커밋으로 만들 수 있다. # git commit log 를 확인한다. git log # log를 통해서 확인하여 rebase 명령어를 통해 해당 commit 으로 원복을 수행한다. # 이때 -i 옵션(interactive)을 .. 이전 1 2 3 4 다음