• 티스토리 홈
  • 프로필사진
    31514
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
31514
  • 프로필사진
    31514
    • 분류 전체보기 (106)
      • Book (66)
        • Learning SQL (9)
        • SQL 레벨업 (8)
        • 견고한 데이터 엔지니어링 (5)
        • 운영체제 (2)
        • 스파크 완벽 가이드 (9)
        • 파이썬 코딩의 기술 (29)
        • 분산 컴퓨팅 (4)
      • 개발 (24)
      • 기타 (10)
        • 출퇴근 공부 간단 정리 (7)
      • ELK (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
      • 31514의 이전 블로그는 여기로!
      등록된 공지가 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • 포스트글 썸네일 이미지
      [BW 31] 인자에 대해 이터레이션할 때는 방어적이 돼라
      31514:
      입력 전체의 합계를 내고 각 원소를 나누는 정규화 함수가 있다고 하자.def normalize(numbers): total = sum(numbers) result = [] for v in numbers: percent = 100 * v / total result.append(percent) return result 이 함수에 데이터가 들어 있는 리스트를 입력하면 잘 작동한다.visits = [15, 35, 80]percetages = normalize(visits)print(percetages)>>>[11.538461538461538, 26.923076923076923, 61.53846153846154] 코드의 확장성을 높이기 위해 데이터를 파일에서 읽어온다..
      • 2024-10-31 11:01:23
    • 포스트글 썸네일 이미지
      [BW 30] 리스트를 반환하기보다는 제너레이터를 사용하라
      31514:
      리스트에 결과를 추가하고 반환하는 코드는 잡음이 많고, 모든 결과를 리스트에 다 저장해야 하므로 메모리를 많이 소진한다.def index_words(text): result = [] if text: result.append(0) for index, letter in enumerate(text): if letter == ' ': result.append(index + 1) return resultaddress = '서울특별시 양천구 목동동로 12길 60'result = index_words(address)print(result)>>>[0, 6, 10, 15, 19] 제네레이터를 사용하면 함수 내부에서 리스트와 상호작용하는 코드가 사라지므로 ..
      • 2024-10-30 10:52:19
    • 포스트글 썸네일 이미지
      [BW 29] 대입식을 사용해 컴프리헨션 안에서 반복 작업을 피하라
      31514:
      회사에서 주문을 관리하기 위한 프로그램을 작성한다고 하자.고객의 주문 요청이 재고 수량을 넘지 않아야 한다.stock = { '못': 125, '나사못': 35, '나비너트': 8, '와셔': 24,}order = ['나사못', '나비너트', '클립']def get_batches(count, size): return count // sizeresult = {}for name in order: count = stock.get(name, 0) batches = get_batches(count, 8) if batches: result[name] = batchesprint(result)>>>{'나사못': 4, '나비너트': 1} 위 코드를 컴프리헨션으로 바..
      • 2024-10-29 14:41:32
    • 포스트글 썸네일 이미지
      [분산 컴퓨팅] CAP과 FLP 정리
      31514:
      CAP네트워크 문제로 인해 분산된 장치에 두 가지 문제가 발생할 수 있다.일관성 문제 - 두 개의 분산된 장치가 일관되지 않은 정보를 제공하는 문제가용성 문제 - 동일한 정보를 제공하기 위해 처리 속도가 느려지는 문제 CAP 정리는 네트워크 단절로부터 회복이 이루어지는 상태에서 서로 다른 분산 장치들이 위의 두 조건을 동시에 충족할 수 없음을 증명한 이론이다.따라서 분산 컴퓨팅의 용도에 따라 궁극적 일관성(가용성 우선) 또는 강한 일관성(일관성 우선) 중 선택할 필요가 있다. 여기서 말하는 궁극적 일관성과 강한 일관성을 쉽게 설명하면 다음과 같다.궁극적 일관성 - 시간이 지나면 결국 모든 노드가 같은 데이터를 갖게 된다는 것을 보장하기 때문에 일단 사용자에게 데이터를 제공한다.강한 일관성 - 모든 사용자..
      • 2024-10-29 14:09:11
    • 포스트글 썸네일 이미지
      [BW 28] 컴프리헨션 내부에 제어 하위 식을 세 개 이상 사용하지 말라
      31514:
      컴프리헨션은 루프를 여러 수준으로 내포하도록 허용한다.예를 들어 리스트 안에 리스트가 들어 있는 형태로 정의한 행렬을 단일 리스트로 단순화하는 예제를 살펴보자.matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]flat = [x for row in matrix for x in row]print(flat)>>>[1, 2, 3, 4, 5, 6, 7, 8, 9] 또한, 컴프리헨션에서 다중 루프를 사용하는 예를 살펴보자.matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]squared = [[x ** 2 for x in row] for row in matrix]print(squared)>>>[[1, 4, 9], [16, 25, 36], [49, 64, 81]] 하지..
      • 2024-10-28 12:58:42
    • 포스트글 썸네일 이미지
      [BW 27] map과 filter 대신 컴프리헨션을 사용하라
      31514:
      파이썬에서는 컴프리헨션을 사용해 리스트, 딕셔너리, 집합 등을 간결하게 생성할 수 있다.a = [1, 2, 3]li = [x ** 2 for x in a]dic = {x: x ** 2 for x in a}s = {x ** 2 for x in a}print(li)print(dic)print(s)>>>[1, 4, 9]{1: 1, 2: 4, 3: 9}{1, 4, 9}
      • 2024-10-28 12:48:26
    • 포스트글 썸네일 이미지
      [분산 컴퓨팅] 3장 - 이중화된 데이터베이스 문제
      31514:
      개요데이터베이스 장애 대비를 위해 다른 지역에 복제본을 생성했다고 가정해보자. 이 경우 두 데이터베이스 사이의 동기화 문제를 해결하는 방법 중 하나로 이벤트가 발생한 시간을 기준으로 처리 순서를 결정하는 방식을 떠올릴 수 있다. 하지만 분산된 노드들은 정확히 동일한 시간을 가리키고 있지 않기 때문에, 물리적 시계를 기준으로 이벤트의 순서를 결정하면 문제가 발생할 수 있다. 이를 위해 우리는 크리스티안 알고리즘, 버클리 알고리즘, NTP(네트워크 시간 프로토콜)과 같은 방법을 사용하여 네트워크 통신 지연을 고려한 시간 동기화를 시도한다. 이 기법들은 시간 동기화의 정확도를 높여주지만, 나노초 단위의 완벽한 동기화는 여전히 보장되지 않는다. 따라서 정확한 물리적 시각을 사용하는 대신, Lamport Cloc..
      • 2024-10-28 12:26:48
    • 포스트글 썸네일 이미지
      [분산 컴퓨팅] 2장 - 중계자와 2단계 커밋 프로토콜
      31514:
      분산 컴퓨팅 장치들 간의 거래 행위를 트랜잭션이라고 한다.트랜잭션이 원자성을 가지고 있다면 분산 컴퓨팅 장치들이 모두 확약하지 않는 이상 특정 작업을 이행하지 않는다. 트랜잭션의 원자성을 위하여 2단계 커밋 프로토콜(2PC 프로토콜)을 사용할 수 있다.2PC 프로토콜에 참여한 프로세스들은 각자의 디스크에 로그(log)를 먼저 기록하고 작업을 이행한다.그리고 장애가 발생하면 로그를 참조하거나 다른 프로세스와 통신하여 대응한다. 이를 통해 시스템의 안정성과 라이브니스를 충족할 수 있다.안정성(Safety) - 잘못된 결과가 일어나서는 안 되는 원칙라이브니스(Liveness) - 원하는 결과가 반드시 어느 시점에서는 실현되어야 하는 원칙
      • 2024-10-25 14:14:55
    조회된 결과가 없습니다.
    [1][2][3][4][5][···][9]
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바