본문 바로가기

ALL

[23년 2월 4주차 회고] 가족의 소중함 [가족의 소중함] 울산에 계신 부모님께서 반찬을 택배로 보내주셨다. 서울에 있는 아들이 많이 걱정되셨던 것 같다. 다양한 반찬이 정갈하게 담겨있었고, 최대한 많은 반찬을 담고자 하신 어머니의 정성이 느껴졌다. 나이가 들수록 가족이라는 의미가 남다르게 다가오는 것 같다. 커가면서 다른 사람들은 내가 생각하는 것만큼 나에게 관심이 없다는 것을 느껴가고 있는데, 가족에서 만큼은 그게 예외다. 가족은 나에게 가장 큰 관심을 주고 걱정해 주는 존재이다. 바쁘다는 핑계로 집에 연락을 많이 못했는데, 좀 더 자주 연락할 수 있도록 해야겠다. (쓰고 나서 바로 연락드렸다.) [트리거] 가끔 무의미하게 인스타그램이나 유튜브를 끊임없이 볼 때가 있다. 딱히 재밌는게 있지도 않은데, 계속 스크롤하면서 재밌는 걸 찾는다. 내..
[23년 2월 3주차 회고] 우물안 개구리 탈출하기 [메모어 오프 모임] 토요일 메모어 모임을 다녀왔다. 이런 오프라인 모임을 참여하는 게 처음인데, 세상에는 멋진 사람들이 정말 많은 것 같다. 우물 안에서 나와서 다양한 사람들과 세상을 마주해야 할 용기가 필요하다. 그러다 보면 나도 조금씩 더 나은 사람이 될 수 있을 것 같다. 인상 깊었던 포인트 아이스브레이킹 목적으로 진행했던 게임(?) - 특정 키워드가 적힌 카드가 있고 뒤집으면 질문이 나오고, 돌아가면서 생각을 공유하는 게임이 있었는데 재밌었다. 온라인으로 만들어보면 재밌을 거 같다는 생각이 들었다. 회고를 진행할 때 상대방의 강점과 약점을 얘기하는 시간이 있다고 공유해 주셨다. 상대방의 약점을 얘기하거나 받아들이는 게 쉽지 않을 것 같다고 생각이 들었는데, 이야기를 듣고 나니 굉장히 시너지가 많..
[23년 2월 2주차 회고] 탁월함에 대해 생각하다. [토스의 핵심가치를 보고 느낀 점] 토스가 낸 ‘유난한 도전’이라는 책을 읽고 있다. 토스의 핵심가치를 설명하는 파트가 나오는데, ‘기대를 뛰어넘는 수준을 추가한다’라는 문구가 굉장히 인상 깊게 다가왔다. 일을 단순히 잘하는 데 그치지 않고 새로운 표준을 창조하는 것을 추구한다고 한다. (나는 이걸 ‘탁월함’을 추구한다고 말하고 싶다.) 토스는 기존의 회사들과 뭔가 다르다는 느낌을 받았는데, 이것이 가장 근본적인 원인이 아닐까 하는 생각이 들었다. 그동안 무의식적으로 ‘평균보다 더 나은 사람이 되어야겠다’ 고만 생각 했던 것 같아 반성하게 되었다. 스스로의 경계를 부수고 탁월함을 추구해 보고자 한다. 개인으로서도, 팀으로서도. [빅데이터 스터디] 팀 내에서 인프런 강의를 통해 빅데이터 스터디를 운영하고 ..
파이썬 예제로 보는 직접 의존성과 간접 의존성 의존성 (Dependencies) 없는 프로그램은 존재하지 않습니다. 소프트웨어의 일부분(함수, 클래스, 모듈 등)은 어떤 기능을 수행하기 위해 다른 부분에 의존하고 있습니다. 그리고 의존성은 직접 의존성 (또는 명시적 의존성, Explicit Dependencies)과 간접 의존성 (또는 암시적 의존성, Implict Dependencies)으로 나눌 수 있습니다. 이번 포스트에서는, 이러한 의존성들의 정의와 각각의 장단점에 대해서 알아보는 시간을 가져보도록 하겠습니다. 😎 직접 의존성 직접 의존성은 어떤 함수나, 클래스가 각자의 인터페이스를 통해 '의존 대상'에 직접적으로 의존하고 있는 것을 의미합니다. 의존 대상이 인터페이스에 직접적으로 정의되어 있기 때문에 인터페이스만 보고도 의존하..
정규표현식의 표현식 그룹 이름 지정 (Named Capture Group)에 대해 알아봅시다. 정규표현식에서 ?P을 원하는 패턴 앞에 써주면 특정 표현식에 대해 이름으르 그룹을 지정할 수 있습니다. 예를 들어, 아래와 같이 사용하면 major, minor, patch 라는 이름으로 표현식 그룹을 만들 수 있습니다. (?P\d+)\.(?P\d+)\.(?P\d+) 괄호로 묶는 범위만큼 그룹이 생성되어 특정 그룹을 지정할 수 있습니다. (정규표현식에서 이렇게 일부 패턴을 뽑아내는 것을 캡처(Capture)라고 부릅니다.) 파이썬에서는 아래와 같이 사용할 수 있습니다. import re m = re.search(r"v(?P\d+)\.(?P\d+)\.(?P\d+)", "v1.2.3") m.group('major') # '1' m.group('minor') # &#..
정말로 단위 테스트를 통합 테스트보다 많이 작성해야 할까? 테스트 피라미드 통합 테스트를 줄이고, 단위 테스트를 많이 작성해야 한다는 말 들어보셨나요? 이러한 주장을 하면 보통 리팩터링의 저자 마틴 파울러의 테스트 피라미드를 예시로 사용합니다. 해당 그림을 보면 UI 테스트나 통합 테스트는 지양해야 할 대상처럼 보이고, 테스트 더블(e.g. 모킹)을 활용한 단위 테스트를 늘려야만 할 것 같습니다. 테스트 피라미드에 대한 논쟁 하지만 얼마 전 우연히 마틴 파울러의‘테스트 피라미드에 반박하는 트위터 게시글을 보게 되었습니다. “마틴 파울러의 테스트 피라미드는 시대가 지난 개념이다. 통합 테스트를 유닛 테스트보다 많이 작성하는 게 새로운 통념이다. 프론트엔드에서는 트로피 모양 테스트, 백엔드에서는 벌집 모양 테스트 등이 이를 뒷밤침한다.” 트위터에서 언급된 사람들 같..
파이썬 Typing 파헤치기 - 심화편 지난 글 '파이썬 Typing 파헤치기 - 기초편'에서는 Typing의 기본적인 내용과 8개의 타입에 대해 다루어봤습니다. 이번 포스트에서는 조금 더 심화된 타입들에 대해 다뤄보도록 하겠습니다. 심화 타입 알아보기 1. tying.Callable[..., ReturnType] 지난 포스트에서 typing.Callable에 대해서 간단하게 다뤄봤습니다. 함수를 인자로 받는 경우에 Callable 타입을 활용하면 된다고 했습니다. def on_some_event_happened(callback: Callable[[int, str, str], int]) -> None: ... def do_this(a: int, b: str, c:str) -> int: ... on_some_event_happen..
파이썬 Typing 파헤치기 - 기초편 동적 언어에서의 타입 검사파이썬은 동적 언어로 잘 알려진 언어입니다. 즉, 변수의 타입을 일일이 명시하지 않아도 되고, 특정 변수의 타입이 중간에 바뀌어도 됩니다. 파이썬과 같은 동적 언어는 C, Java, Rust 등의 정적 언어보다 배우기도 쉽고, 좀 더 빠르게 프로그래밍이 가능하다는 장점이 있습니다. 하지만, 잘못된 타입을 사용하여 예상치 못한 에러를 만들어내고, 이로 인해 프로그램이 망가질 수 있다는 단점도 있습니다. 코드 양이 많아지고 복잡해질수록 잘못된 타입으로 인한 에러를 만날 확률이 높아지겠죠.따라서 최근에는 이런 동적 언어들에도 타입을 명시하고 검사하고자 하는 수요가 늘어나고 있습니다. Javascript계열에서는 Typescript가 많은 인기를 얻고 있으며, 파이썬 같은 경우도 3.5..