목록람다 (3)
without haste but without rest

tft 데이터를 적재하기 위한 파이프라인을 구축하던 중에 람다를 사용하기로 결정했다. 람다는 서버리스 솔루션이고 트리거가 작동하면 미리 지정해둔 스크립트로 반응을 한다. 내가 구현하고자 하는 파이프라인은 데이터가 스트림으로 들어와서 카프카가 필요하지 않지만 그렇다고 배치처리라고 하기엔 애매하다. 대략 20분마다 데이터를 수집해서 저장해야하므로 람다를 사용하면 효율적으로 리소스를 사용할 수 있을 것이라고 판단했다. tft_data_transport가 트리거 작동하면 실행할 스크립트다. 왼쪽은 API GATEWAY고 얘도 솔루션이다. 엔드포인트 및 프로토콜 방식을 지정해준다. 정리하면 api 게이트웨이는 네트워크 연결 방식을 결정하고 람다는 해당 서버에 요청이 들어오면 어떻게 반응할 것인지에 관해 결정한다...

import random def make_score(a=30, b=99, dup=True): names = [chr(name) for name in range(ord('a'), ord('z'))] random.shuffle(names) if dup == True: scores = [[random.randint(a, b) for _ in range(5)] for _ in range(8)] res = list(zip(names, scores)) return res else: scores = [random.sample(range(10, 100), 5) for _ in range(8)] res = list(zip(names, scores)) return res def print_list(score_list, n..

# input data mylist = [ ('a', [1, 2, 3]), ('b', [2, 3, 4]), ('c', [5, 6, 7]) ] mylist.sort(key=lambda x: max(x[1])) 과제 하다가 람다식까지 찾을 줄 상상도 못했다. 근데 이건 나중에 코테에서 요긴하게 써먹을 것 같다. sort나 sorted 함수의 키 옵션에 lambda 를 써서 위처럼 정렬을 시킬 수가 있다. 위 코드 같은 경우에는 정렬시킬 기준이 리스트의 각 요소의 1번째 요소들 중에서 최대 값을 찾고 이를 기준으로 정렬시키라는 의미다. 즉 mylist의 각 요소(인자)에서의 1번째는 리스트 형태인 [1, 2, 3] , [2, 3, 4], [5, 6, 7] 이며 각각 최대 값인 3 4 7을 기준으로 정렬시킨다...