분류 전체보기
-
원씽(The One Thing) 책리뷰book 2022. 12. 31. 16:50
원하는 만큼 긴 목록에서 시작하되 거기에서 중요한 몇 가지를 추려낸다는 마음가짐을 가지고, 반드시 필요한 단 하나를 찾아낼 때까지 멈추지 마라. 없어서는 안 될 단 하나. 바로 그 하나를 찾아라. (중략) 2001년에 회사의 핵심 임원들을 호출한 적이 있었다. 빠른 속도로 성장하고 있긴 해지만 우리 기업은 아직 업계 내에서 최고의 위치는 아니었다. 나는 임원들에게 이 상황을 반전시킬 100가지 방법을 브레인스토밍 해보자고 말했다. 목록을 만들어 내는 데만도 하루가 꼬박 걸렸다. 다음날 아침에는 그것을 열 개의 아이디어로 줄였다. 그러고 나서 거기에서 단 하나의 아이디어를 골랐다. (중략) 그 아이디어는 성공적이었다. 54~55p 각종 연구에 따르면 평균 직장인들은 11분마다 한 번씩 타인의 방해를 받고,..
-
독서노트) 훌륭한 프로그래머 되는 법book 2022. 6. 29. 11:44
part 1. you.write(code); 2장. 정돈된 코드 유지하기 - 두 명의 관객을 위해 코딩을 하라. 컴파일러와 동료 프로그래머. 3장. 코드 적게 쓰기 - 소프트웨어를 개선하는 최고의 방법 가운데 하나는 바로 코드를 제거하는 것이다. - 각 줄의 코드마다 비용이 든다. 코드를 길게, 많이 쓸수록 유지 보수 비용은 높아진다. - 코드가 많을수록 수정해야 할 부분도 많아진다. 즉 프로그램을 수정하기 어려워진다. - 중복 코드는 특히 치명적이다. 하나의 버그를 고쳐도 다른 곳에 32개의 똑같은 작은 버그들이 남아 있을 수 있다. - 불필요한 코드 중복은 사악하다. - 코드 일부를 복사하지 말자. 공통 함수에 모두 넣자. 다른 부분은 매개 변수를 사용하자. - 중복을 발견하면 제거하라. - 더 많..
-
파이썬 클린코드 3python 2022. 2. 26. 10:10
데코레이터 목표 파이썬에서 데코레이터가 동작하는 방식을 이해 함수와 클래스에 적용되는 데코레이터를 구현하는 방법을 배운다. 일반적인 실수를 피하여 데코레이터를 효과적으로 구현하는 방법을 배운다. 데코레이터를 활용한 코드 중복을 회피(DRY 원칙 준수) 데코레이터를 활용한 관심사의 분리 좋은 데코레이터 사례 데코레이터가 좋은 선택이 될 수 있는 일반적인 상황, 관용구, 패턴 파이썬의 데코레이터 함수와 메서드의 기능을 쉽게 수정하기 위한 수단으로 나옴. original 함수가 있고 그 기능을 약간 수정한 modifier라는 함수가 있다면 원래 아래처럼 썼다.def original(): pass original = modifier(original) - 위 방법은 혼란스럽고 오류가 발생하기 쉽고 번거롭다. - ..
-
파이썬 심화: function parameterpython 2022. 2. 12. 22:44
function parameter Argument vs Parameter Semantics parameter 함수 정의 시 parameter라고 부름 def my_func(a, b): passarguments 함수 호출 시 arguments라고 부름x = 1 y = "a" my_func(x, y) 이때 x, y는 refernce 함수에 reference(주소값)을 넘긴다. Positional and Keyword Arguments 함수 정의 혹은 호출 시 kwargs가 오면, 그 뒤는 무조건 kwargs여야한다. def my_func(a=1, b, c) 불가능! my_func(a=1, 2,3) 불가능! Unpacking Iterables 튜플 정의 방법 괄호 ()를 사용해도 튜플이지만, 아래처럼 해도 튜..
-
파이썬 심화: 변수와 메모리python 2022. 2. 12. 22:42
Reference Counting 파이썬은 객체가 참조될 때마다 ref_count를 +1한다. 0이 되면 python memory manager가 객체를 메모리에서 삭제함. (할당 해제) import sys my_var = [1,2,3] sys.getrefcount(my_var) Garbage Collection 순환참조의 경우 ref_count는 절대 0이 되지 않는다. 이 경우 referece counting을 통해 python memory manager가 객체를 메모리에서 삭제할 수 없음. -> memory leak 발생 GC는 순환참조인 것들을 메모리에서 지워주는 역할을 한다. gc는 기본적으로 turn on 상태다. gc 모듈을 사용해서 gc를 끄거나 수동실행 등 조작할 수 있다. Variabl..
-
파이썬 클린코드 2python 2022. 2. 12. 22:41
Pythonic Code 프로그래밍에서 관용구(idiom)는 특정 작업을 수행하기 위해 코드를 작성하는 특별한 방법이다. 이 관용구를 따른 코드를 관용적이라 부르고 파이썬에선 pythonic하다고 한다. 일반적으로 관용구를 따랐을 때 성능이 좋고, 이해하기 쉽다. 인덱스와 슬라이스 인덱스로 접근하는 건 사실 slice를 전달하는 것과 같다. (아래 예시 참고) my_list = [i for i in range(10)] print(my_list[1:9:2]) interval = slice(1,9,2) print(my_list[interval]) [1, 3, 5, 7] [1, 3, 5, 7]자체 시퀀스 생성 위 예시처럼 indexing할 수 있는 이유는 리스트가 스퀀스 프로토콜(__getitem__, __l..
-
파이썬 클린코드 1python 2022. 2. 12. 22:40
소개, 코드 포매팅과 도구 클린 코드는 포매팅 이상의 훨씬 중요한 것을 의미한다. 때문에 표준 포매팅을 유지하는 것이 유지보수성의 핵심 유의사항이다. 파이썬이 제공하는 기능을 사용하여 자체 문서화된 코드를 작성하는 방법 코드의 레이아웃을 일정하게 유지하여 팀 멤버들이 문제의 본질을 해결하는데 초점을 맞출 수 있도록 도구를 설정하는 방법 클린 코드의 의미 클린코드에 대한 유일하고 엄격한 정의는 없다. 수십 년 동안 프로그래밍 언어는 인간의 아이디어를 컴퓨터에 전달하기 위해 사용하는 언어라 생각했지만 틀린 생각이다. 프로그래밍 언어의 진정한 의미는 아이디어를 다른 개발자에게 전달하는 것이다. 클린 코드 여부는 다른 엔지니어 코드를 읽고 유지보수 할 수 있는지 여부에 달려 있다. 클린 코드, 클린 아키텍쳐에 ..
-
shell script 기초 강의 정리카테고리 없음 2021. 8. 5. 21:34
1. Writing your first shell script A shell script is text file that contains a series of commands any work you can do on the command line can ba automated by a shell script day1.sh 파일을 아래처럼 만들어보자.#!/bin/bash echo "I don't have to be great to start, but I have to start to be great!" ./day1.sh 로 방금 만든 파일을 실행하면 아래같은 에러가 난다. zsh: permission denied: ./day1.sh 파일 실행 권한이 없기 때문인데, 아래 명령으로 실행 권한을 주자...