- [분산 컴퓨팅] 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
- [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
- [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
- [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
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)