나누고 싶은 개발 이야기

Data Engineer로서 기록하고 공유하고 싶은 기술들. 책과 함께 이야기합니다.

Python 5

[Kafka] consumer group offset change by python.

Kafka consumer 관련 2번째 글이다. 지난 글에서 LAG에 대해서 설명했는데, consumer group과 offset에 대한 설명을 빼 놓고 지나가니 이해하는데 부족할 수 있어 consumer group에 대한 개념 설명을 하고자 한다. 그리고 추가로 consumer group의 offset을 변경하고자 할 때가 발생할 수 있는데 간단한 python 코드로 offset을 변경하는 방법을 알아보자. offset을 왜 변경하지? 라는 질문이 있을 수 있는데, consumer group에 대해서 이해하면 질문에 대한 답이 저절로 될 듯 하다. 1. consumer group 아래 그림이 consumer group을 이해할 수 있는 가장 좋은 그림이다. Kafka의 Topic은 여러 partitio..

Big Data/Kafka 2018.12.31

[python] list

알고 있는 내용을 정리하는 수준으로 블로그에 글을 적으려고 한다. python 문법에 대한 2번째 내용이다. 모든 언어에서 제일 많이 사용하는 데이터 구조인 list. python에서 유용한 것들 정리해 보자. 정의 방법# 빈 리스트 정의my_list = [] my_list = list() # 값과 함께 정의 (여러 데이터 타입들의 섞어서도 가능하다)my_list1 = [1,2,3] my_list2 = [“a”, “b”, “c”] my_list3 = [“a”, 1, “python”, 5] # list들의 list도 가능my_nested_list = [my_list1, my_list2] # list의 병합combo_list = my_list1 + mylist2 # [1, 2, 3, “a”, “b”, “c”..

Language/python 2018.03.28

[python] 상속 기본 및 factory method 패턴 정리

회사에서 python으로 코드를 작성하는 중에 비슷한 비즈니스를 처리하지만 타입에 따라 다르게 동작하는 기능을 넣어야 하는 필요가 생겼다. 비슷한 비즈니스 처리 중에 공통으로 쓰는 것도 있고 타입에 따라 약간 차이나는 것도 있다. 객체지향에 익숙한 사용자라면 상속을 통해 해당 기능을 처리해야 겠다고 바로 생각할 것이다. 그래서 python 문법 정리도 할 겸 상속에 대해 기본적으로 기술하고, 객체를 생성하는 과정에서 factory 패턴을 적용했는데 그 부분도 정리하고자 한다.상속 객체들 간의 관계를 구축하는 방법이다.상속의 핵심을 계층구조를 표현하는 것이다. python 상속의 문법 class 클래스명(상속할 클래스명)python에서는 class 정의 시에 괄호에 상속받을 부모클래스만 적으면 끝난다. 자..

Language/python 2018.03.27

Generators (제너레이터)

제너레이터는 하나의 값을 결과로 리턴하는 것이 아니라 연속된 결과를 리턴하는 함수이다.아래 코드는 제너레이터의 간단한 예제 코드이다. # countdown.py # # A simple generator function def countdown(n): print("Counting down from", n) while n > 0: yield n n -= 1 print("Done counting down") # Example use if __name__ == '__main__': x = countdown(10) print(x) for i in x: print(i) 결과는 다음과 같이 나온다.Counting down from 101098...1Done counting down 제너레이터 함수를 보면은 retur..

Language/python 2017.04.12

rabbitmq 동접자 수 확인하기

진행하고 있는 프로젝트에서 이벤트가 발생할 때 마다 사용자들에게 메세지를 받게 해야하는 요구사항이 있었다.해당 요구사항을 처리하기 위해서 rabbitmq를 사용하게 되었다.클라이언트는 메세지를 받기 위해 계속 rabbitmq에 연결을 하고 있던 상태였는데, 비즈니스 관점에서 그럼 얼마나 많은 사람이 접근을 하고 있을지가 궁금해졌다. 같은 말로 서비스를 실제로 사용하고 있는 동접수치를 rabbitmq의 연결 수와 동일하게 판단할 수 있는 상황이었다. 요구사항에 맞춰 rabbitmq에 연결 카운트를 얻을 수 있는 기능을 살펴보니 rabbitmq-management plugin으로 처리할 수 있었다.해당 plugin은 연결 상태에 대한 정보를 dashboard 형태로 표현하는 웹 서비스와 함께 일부 api들을..

Framework 2017.02.18
반응형