전체 글

전체 글

    [IT 도서 리뷰] 구글 엔지니어는 이렇게 일한다 (CH. 2)

    2.1 내 코드를 숨기고 싶어요 불안감: 사람들은 자신이 진행 중인 작업물을 다른 사람이 보고 판단하는 걸 두려워 함 (인간으 ㅣ본성) 2.2 천재 신화 리눅스 리누스가 한 일은 유닉스와 유사한 커널의 시제품을 만들어 메일링 리스트로 뿌린 것 진짜 업적은 사람들을 협업하도록 이끈 것 파이썬 귀도 반 로섬이 첫 번째 버전을 작성한 건 사실이지만 그 후 버전들은 수천 명의 사람이 아이디어를 모으고 기능 개발 & 버그 수정 천재 신화는 팀이 이룬 성공을 단 한 사람(리더)에게 몰아주어 만들어지는 경향이 있으며 결국 우리 내면의 불안을 드러내는 또 다른 사례일 뿐이다. 2.3 숨기는 건 해롭다 자신이 올바른 길을 걷고 있음을 확인할 수 없다. 2.3.1 조기 감지 아이디어를 숨기는 것은 엄청난 도박으로 초기 설..

    [IT 도서 리뷰] 구글 엔지니어는 이렇게 일한다 (CH. 1)

    [IT 도서 리뷰] 구글 엔지니어는 이렇게 일한다 (CH. 1)

    CH 1. 소프트웨어 엔지니어링이란? 프로그래밍과 소프트웨어 엔지니어링의 가장 큰 차이는 시간, (규모) 확장, 실전에서의 트레이드오프, 이렇게 세 가지이다. 시간: 시간의 흐름과 언젠가 변경될 가능성에 더 신경 써야 함 확장: 소프트웨어 자체뿐 아니라 제작하는 조직까지 양 측면 모두에서의 확장과 효율에 더 집중해야 함 트레이드오프: 대체로 수명과 성장 속도를 정밀하게 예측하기 어려운 상황에서, 결과에 더 큰 영향을 주는 보다 복잡한 결정을 내려야 함 더보기 시간 소프트웨어 엔지니어링에서 프로그래밍이 큰 비중을 차지하지만 결국 프로그래밍은 새로운 소프트웨어를 제작하는 수단이다. 코드의 예상 수명에 대해 생각하라. 단명하는 시스템은 '그저' 프로그래밍 문제와 다를 게 없지만 수명이 길어질수록 변경이라는 요..

    [Effective Python] BETTER WAY 13 - 슬라이싱보다는 나머지를 모두 잡아내는 언패킹을 사용하라

    기본 언패킹의 한계점은 언패킹할 시퀀스의 길이를 미리 알고 있어야 한다는 것이다. 따라서 보통 파이썬을 처음하는 사람들은 다음과 같은 코드를 작성한다. car_ages = [0, 9, 4, 8, 7, 20, 19, 1, 6, 15] car_ages_descending = sorted(car_ages, reverse=True) oldest = car_ages_descending[0] second_oldest = car_ages_descending[1] others = car_ages_descending[2:] 인덱스와 슬라이싱을 사용한 방법으로 시각적으로 잡음이 많으면서 인덱스로 인한 오류가 발생하기 쉽다. 이런 상황을 위해 파이썬에서는 별표 식을 사용해 모든 값을 담는 언패킹을 할 수 있도록 지원한다. ..