• 티스토리 홈
  • 프로필사진
    31514
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
31514
  • 프로필사진
    31514
    • 분류 전체보기 (109)
      • Book (66)
        • Learning SQL (9)
        • SQL 레벨업 (8)
        • 견고한 데이터 엔지니어링 (5)
        • 운영체제 (2)
        • 스파크 완벽 가이드 (9)
        • 파이썬 코딩의 기술 (29)
        • 분산 컴퓨팅 (4)
      • 개발 (25)
      • 기타 (10)
        • 출퇴근 공부 간단 정리 (7)
      • ELK (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
      • 31514의 이전 블로그는 여기로!
      등록된 공지가 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • 포스트글 썸네일 이미지
      [분산 컴퓨팅] 3장 - 이중화된 데이터베이스 문제
      31514:
      개요데이터베이스 장애 대비를 위해 다른 지역에 복제본을 생성했다고 가정해보자. 이 경우 두 데이터베이스 사이의 동기화 문제를 해결하는 방법 중 하나로 이벤트가 발생한 시간을 기준으로 처리 순서를 결정하는 방식을 떠올릴 수 있다. 하지만 분산된 노드들은 정확히 동일한 시간을 가리키고 있지 않기 때문에, 물리적 시계를 기준으로 이벤트의 순서를 결정하면 문제가 발생할 수 있다. 이를 위해 우리는 크리스티안 알고리즘, 버클리 알고리즘, NTP(네트워크 시간 프로토콜)과 같은 방법을 사용하여 네트워크 통신 지연을 고려한 시간 동기화를 시도한다. 이 기법들은 시간 동기화의 정확도를 높여주지만, 나노초 단위의 완벽한 동기화는 여전히 보장되지 않는다. 따라서 정확한 물리적 시각을 사용하는 대신, Lamport Cloc..
      • 2024-10-28 12:26:48
    • lazy load되는 컨텐츠 안정성있게 크롤링하기
      31514:
      상황 및 문제프로젝트에 사용할 데이터를 확보하기 위해서 디올 공식 홈페이지에 있는 상품을 크롤링했다.디올은 스크롤 다운할 때마다 동적으로 지연 로딩되는 방식으로 구현되어있다.이에 따라 디올 홈페이지의 최하단까지 스크롤 다운하고, 원하는 요소를 모두 가져오는 방식으로 크롤링을 진행하였다. 하지만 매번 프로그램을 실행할 때마다 가져오는 로딩된 요소의 수가 불안정했다.예를 들어 정상적으로 로딩된 요소는 다음과 같이 구성되어있다. 하지만 로딩되지 않은 요소를 살펴보니 다음과 같았다. 해결 시도 1lazy loading되는 요소를 충분히 기다리기 위해서 스크롤다운 할 때마다 기다리는 시간을 추가하고, 최하단까지 내려갔을 때도 Time Wait을 걸었다.await page.wait_for_timeout(3000) ..
      • 2024-10-25 16:39:43
    • 포스트글 썸네일 이미지
      [분산 컴퓨팅] 2장 - 중계자와 2단계 커밋 프로토콜
      31514:
      분산 컴퓨팅 장치들 간의 거래 행위를 트랜잭션이라고 한다.트랜잭션이 원자성을 가지고 있다면 분산 컴퓨팅 장치들이 모두 확약하지 않는 이상 특정 작업을 이행하지 않는다. 트랜잭션의 원자성을 위하여 2단계 커밋 프로토콜(2PC 프로토콜)을 사용할 수 있다.2PC 프로토콜에 참여한 프로세스들은 각자의 디스크에 로그(log)를 먼저 기록하고 작업을 이행한다.그리고 장애가 발생하면 로그를 참조하거나 다른 프로세스와 통신하여 대응한다. 이를 통해 시스템의 안정성과 라이브니스를 충족할 수 있다.안정성(Safety) - 잘못된 결과가 일어나서는 안 되는 원칙라이브니스(Liveness) - 원하는 결과가 반드시 어느 시점에서는 실현되어야 하는 원칙
      • 2024-10-25 14:14:55
    • 포스트글 썸네일 이미지
      [분산 컴퓨팅] 1장 - 분산 컴퓨팅이란 무엇인가?
      31514:
      분산 컴퓨팅이란, 작업을 수행하는 장치들이 네트워크에 연결되어 서로 메시지를 주고받으면서 협의 과정을 거쳐 어떤 목적 달성을 위하여 함께 작업을 수행하는 것이다. 메시지의 전달 여부나 정해진 시간 안의 도달을 보장할 수 없는 네트워크 상에서의 통신을 비동기적인 통신이라고 한다.따라서 비동기적인 통신을 사용하면 두 노드 사이의 완전한 합의를 이룰 수 없다.
      • 2024-10-25 13:06:24
    • 포스트글 썸네일 이미지
      [BW 26] functools.wrap을 사용해 함수 데코레이터를 정의하라
      31514:
      데코레이터는 자신이 감싸고 있는 함수가 호출되기 전과 후에 코드를 추가로 실행해준다.즉, 데코레이터가 자신이 감싸고 있는 함수의 입력 인자, 반환 값, 함수에서 발생한 오류에 접근할 수 있다는 뜻이다. 예를 들어 함수가 호출될 때마다 인자 값과 반환 값을 출력하는 함수가 있다고 하자.def trace(func): def wrapper(*args, **kwargs): result = func(*args, **kwargs) print(f'{func.__name__}({args!r}, {kwargs!r}' f'-> {result!r}') return result return wrapper 그리고 피보나치 함수를 정의하고 trace 함수의 ..
      • 2024-10-25 11:47:29
    • 포스트글 썸네일 이미지
      [BW 25] 위치로만 인자를 지정하게 하거나 키워드로만 인자를 지정하게 해서 함수 호출을 명확하게 만들라
      31514:
      키워드를 사용해 인자를 넘기는 기능은 파이썬 함수의 강력한 기능이다.예를 들어 때로는 ZeroDivisionError 예외를 무시하고 무한대를 반환하고, 어떨 때는 Overflow 예외를 무시하고 0을 반환한다고 해보자.def safe_division(number, divisor, ignore_overflow, ignore_zero_division): try: return number / divisor except OverflowError: if ignore_overflow: return 0 else: raise except ZeroDivisionError: if ignore_zero_division..
      • 2024-10-24 15:09:02
    • 포스트글 썸네일 이미지
      [스파크 완벽 가이드] 8장 - 조인
      31514:
      먼저 스파크에서 조인을 사용하는 방법은 다음과 같다.joinType = "inner | outer | left_outer | right_outer | left_semi | left_anti | cross"joinExpression = person["graduate_program"] == graduateProgram['id']person.join(graduateProgram, joinExpression).show()joinType을 하나 지정하고, join할 때 비교할 하나 이상의 키값을 joinExpression에 지정한다.그리고 조인을 수행하면 된다. 조인 사용 시 문제점복합 데이터 타입의 조인불리언을 반환하는 모든 표현식은 조인 표현식으로 간주할 수 있다.예를 들어 spark_status라는 리스트 ..
      • 2024-10-24 13:52:02
    • 포스트글 썸네일 이미지
      [BW 24] None과 독스트링을 사용해 동적인 디폴트 인자를 지정하라
      31514:
      종종 키워드 인자의 값으로 동적인 값을 넘겨주고 싶을 때가 있다. 예를 들어 로그 메시지와 시간을 함께 출력하고 싶다고 하자. 하지만 datetime.now()는 함수가 정의되는 시점에 단 한 번만 호출되기 때문에 타임스탬프가 항상 같다.from time import sleepfrom datetime import datetimedef log(message, when=datetime.now()): print(f'{when}: {message}')log('안녕!')sleep(1)log('다시 안녕!')>>>2024-10-23 12:48:30.559487: 안녕!2024-10-23 12:48:30.559487: 다시 안녕! 이런 경우 파이썬의 일반적인 관례는 디폴트 값을 None을 지정하고, 실제 동작을..
      • 2024-10-23 13:01:48
    조회된 결과가 없습니다.
    [1][···][4][5][6][7][8][9][10][···][14]
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바