• 티스토리 홈
  • 프로필사진
    31514
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
31514
  • 프로필사진
    31514
    • 분류 전체보기 (109)
      • Book (66)
        • Learning SQL (9)
        • SQL 레벨업 (8)
        • 견고한 데이터 엔지니어링 (5)
        • 운영체제 (2)
        • 스파크 완벽 가이드 (9)
        • 파이썬 코딩의 기술 (29)
        • 분산 컴퓨팅 (4)
      • 개발 (25)
      • 기타 (10)
        • 출퇴근 공부 간단 정리 (7)
      • ELK (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
      • 31514의 이전 블로그는 여기로!
      등록된 공지가 없습니다.
    # Home
    # 공지사항
    #
    # 태그
    # 검색결과
    # 방명록
    • 포스트글 썸네일 이미지
      [BW 23] 키워드 인자로 선택적인 기능을 제공하라
      31514:
      파이썬도 함수를 호출할 때 위치에 따라 인자를 넘길 수 있다.def remainder(number, divisor): return nuber % divisorremainder(20, 7) 키워드를 사용하면 순서는 관계없다.remainder(divisor=7, number=20) 딕셔너리에 들어 있는 값을 함수에 전달할 수 있다.my_kwargs = { 'number': 20, 'divisor': 7,}remainder(**my_kwargs) 아무 키워드 인자나 받는 함수를 만들고 싶다면, 모든 키워드 인자를 dict에 모아주는 **kwargs 파라미터를 사용한다.def print_parameters(**kwargs): for key, value in kwargs.items(): ..
      • 2024-10-23 12:44:54(273일 전)
    • 포스트글 썸네일 이미지
      [BW 22] 변수 위치 인자를 사용해 시각적인 잡음을 줄여라
      31514:
      스타 인자를 사용하면 함수 호출이 더 깔끔해지고 시각화 잡음도 줄어든다.def log(message, *values): if not values: print(message) else: values_str = ', '.join(str(x) for x in values) print(f'{message}: {values_str}')log('내 숫자는', 1, 2)log('안녕')>>>내 숫자는: 1, 2안녕하지만 두 가지 문제가 있다.스타 인자가 함수에 전달되기 전에 항상 튜플로 변환되어 메모리를 소비한다.따라서 스타 인자로 들어오는 데이터가 충분히 작아야 한다.함수에 새로운 인자를 추가하면 해당 함수를 호출하는 모든 코드를 변경해야 한다.
      • 2024-10-23 12:43:46(273일 전)
    • 포스트글 썸네일 이미지
      [BW 21] 변수 영역과 클로저의 상호작용 방식을 이해하라
      31514:
      다음 코드는 특정 그룹에 존재하는 숫자를 먼저 정렬하고, 나머지 숫자를 정렬하는 함수다.def sort_priority(values, group): def helper(x): if x in group: return (0, x) return (1, x) values.sort(key=helper)numbers = [8, 3, 1, 2, 5, 4, 7, 6]group = {2, 3, 4, 7}sort_priority(numbers, group)print(numbers)>>>[2, 3, 4, 7, 1, 5, 6, 8]이 함수가 예상대로 작동하는 세 가지 이유가 존재한다.파이썬이 클로저를 지원한다.클로저란 자신이 정의된 영역 밖의 변수를 참조하는 함수를 말한..
      • 2024-10-23 12:43:02(273일 전)
    • 포스트글 썸네일 이미지
      [스파크 완벽 가이드] 10장 - 스파크 SQL
      31514:
      스파크 SQL 쿼리 실행 방법스파크 SQL CLI스파크의 프로그래밍 SQL 인터페이스스파크 SQL Thrift JDBC/ODBC 서버 카탈로그스파크 SQL에서 가장 높은 추상화 단계는 카탈로그이다.카탈로그는 테이블에 저장된 데이터에 대한 메타데이터뿐만 아니라 데이터베이스, 테이블, 함수 그리고 뷰에 대한 정보를 추상화한다. 테이블테이블은 명령을 실행할 데이터의 구조라는 점에서 DataFrame과 논리적으로 동일하다.스파크에서 테이블을 생성하면 default 데이터베이스에 등록된다. 테이블은 항상 데이터를 가지고 있다.임시 테이블의 개념이 없으며 데이터를 가지지 않는 뷰만 존재한다.따라서 테이블을 제거하면 모든 데이터가 사라지므로 주의해야 한다. 관리형 테이블은 스파크가 데이터 파일을 완전히 관리하는 테이..
      • 2024-10-23 12:36:57(273일 전)
    • 포스트글 썸네일 이미지
      [BW 20] None을 반환하기보다는 예외를 발생시켜라
      31514:
      False와 동등한 반환 값을 잘못 해석하는 경우는 None이 특별한 의미를 가지는 파이썬 코드에서 흔히 저지르는 실수다.아래 코드처럼 result는 0이 되어야 하는데, 잘못된 입력이 출력되는 상황이 발생한다.x, y = 0, 5def careful_divide(a, b): try: return a / b except ZeroDivisionError: return None result = careful_divide(x, y)if not result: print('잘못된 입력')이를 해결하기 위해 두 가지 방법을 생각해볼 수 있다.반환 값을 튜플로 분리한다.첫 번째 요소에 성공 여부를 표시한다.두 번째 요소에 실제 값을 표시한다.Exception을 호..
      • 2024-10-23 11:02:11(273일 전)
    • 포스트글 썸네일 이미지
      [BW 19] 함수가 여러 값을 반환하는 경우 절대로 네 값 이상을 언패킹하지 말라
      31514:
      lengths = [63, 73, 72, 60, 67, 66, 71, 61, 72, 70]def get_stats(numbers): mini = min(numbers) maxi = max(numbers) count = len(numbers) average = sum(numbers) / count sorted_numbers = sorted(numbers) middle = count // 2 if count % 2 == 0: lower = sorted_numbers[middle - 1] upper = sorted_numbers[middle] median = (lower + upper) / 2 else: median ..
      • 2024-10-22 16:12:39(274일 전)
    • 포스트글 썸네일 이미지
      [BW 18] __missing__을 사용해 키에 따라 다른 디폴트 값을 생성하는 방법
      31514:
      만약 defaultdict 의 기본 값을 어떤 인자가 필요한 함수로 지정하면 다음과 같이 오류가 발생한다.from collections import defaultdictpath = "/"def open_file(file_path): try: return open(file_path, 'a+b') except OSError: print(f"경로를 알 수 없습니다: {file_path}") raisefiles = defaultdict(open_file)handle = files[path]handle.seek(0)file_data = handle.read()>>>TypeError: open_file() missing 1 required positional argu..
      • 2024-10-22 16:12:08(274일 전)
    • 포스트글 썸네일 이미지
      [BW 14] 복잡한 기준을 사용해 정렬할 때는 key 파라미터를 사용하라
      31514:
      다음과 같은 클래스가 있다고 가정해보고 tools 를 정의했다.class Tool: def __init__(self, name, weight): self.name = name self.weight = weight def __repr__(self): return f'Tool({self.name!r}, {self.weight})'tools = [ Tool('수준계', 3.5), Tool('해머', 1.25), Tool('스크류드라이버', 0.25), Tool('끌', 0.25),]tools 에 담긴 여러 인스턴스를 sort()를 통해 정렬할 수 있을까?비교 연산자를 지원하지 않는 오류가 발생한다.Traceback (most rece..
      • 2024-10-22 16:11:40(274일 전)
    조회된 결과가 없습니다.
    [1][···][5][6][7][8][9][10][11][···][14]
    스킨 업데이트 안내
    현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
    ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
    목차
    표시할 목차가 없습니다.
      • 안녕하세요
      • 감사해요
      • 잘있어요

      티스토리툴바

      개인정보

      • 티스토리 홈
      • 포럼
      • 로그인

      단축키

      내 블로그

      내 블로그 - 관리자 홈 전환
      Q
      Q
      새 글 쓰기
      W
      W

      블로그 게시글

      글 수정 (권한 있는 경우)
      E
      E
      댓글 영역으로 이동
      C
      C

      모든 영역

      이 페이지의 URL 복사
      S
      S
      맨 위로 이동
      T
      T
      티스토리 홈 이동
      H
      H
      단축키 안내
      Shift + /
      ⇧ + /

      * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.