분류 전체보기
-
시작할 때는 아무도 모른다.Leader/Developer Leading 2019. 2. 11. 12:48
마크 저커버그 (페이스북 CEO) 시작할 때는 아무도 모릅니다. 아이디어란 것은 원래 완성 상태로 떠오르지 않습니다. 오직 행동하는 과정에서 명료해질 뿐입니다. 아이디어 뿐만 아니라 질문도 마찬가지다. 물음도 처음에는 정확히 떠오르지 않는다. 물어보는 과정에서 진짜 질문이 드러난다. 초기 생각이나 질문은 "뻘 속의 진주" 또는 "모래 섞인 사금"과 같다. 처음에는 노이즈가 많아서 본질이 보이지 않는다. 방해하는 요소를 잘 걷어내면 비로서 보인다. 또한 여린 새싹과도 같다 막 피어오른 싹은 매우 취약하여 쉽게 부러진다. 초기에는 보호하고 성장시키는데 주력해야한다 그렇지 않으면, 가능성을 보여주기 전에 꺽인다. 어느정도 길러봐야 가치를 평가할 수 있다. 일부 시니어(라고 쓰고 "꼰대"라고 읽는다)는 당연히 ..
-
러스트에서 문자열을 효과적으로 연결하기Programmer/Programming 2019. 2. 8. 17:41
러스트(rust)에서 문자열을(&String or &str)을 연결(concatenation)하는 방법에는 여러가지가 있다. SliceConcatExt::concat() -> String SliceConcatExt::join(sep: &str) -> String Add::add(rhs: &str) -> String String::push_str(string: &str) -> String write! and writteln! macros SliceConcatExt::concat() -> String 문자열의 슬라이스(slice)에서 concat() 메서드를 호출하면 각 요소를 연결한 문자열을 생성한다. SliceConcatExt::join(sep: &str) -> String 각 문자열 요소 사이에 지정된..
-
직급별 리더의 차이점Leader/Developer Leading 2019. 2. 7. 16:25
내가 꼬꼬마였을 때, 훌륭한 선임은 물어보는 질문에 답을 잘 해주셨다. 나: 바퀴없는 의자가 어디있어요? 선임: 회의실에서 봤어요. 답을 빨리 주는 그는 나에게 능력자다. 좀 더 노련한 책임은 좀 더 적합한 해결책을 찾아주었다.책임: 무엇때문에 그런거예요? 나: 불이 안켜지는 전등을 교체하려구요. 책임: 그런 일이라면, 사다리가 더 적합할 것 같은데... 사다리라면 경지실에서 알고 있을꺼예요빨리 보다는 좀 더 나은 답을 찾아 주었다. 나도 키보드 끈이 제법 길어졌다. 문제가 정확히 주어지면 웬만하면 답을 찾는다. 이따금씩 좀처럼 실마리를 찾을 수 없는 문제를 수석과 상의한다. 수석은 직접적인 답을 곧바로 주지는 못한다. 바로 답이 나오는 단순한 문제가 아니기 때문이다. 대신에 모호한 질문을 명확하게 이끌..
-
힙스터의 문제 해결 방법 오류Life/Software Engineer 2019. 2. 1. 18:28
여기서 언급하는 "힙스터"란 힙한 기술만을 "맹목적으로 추종"하는 사람을 뜻한다. 기술 허세, 설레발 주도 개발(Hype Driven Development)과도 맥락이 맞닿아 있다. 웹 힙스터, TDD 힙스터, 데이터과학 힙스터, 머신러닝 힙스터, MSA 힙스터, 등 무수히 많다. 기술과 마케팅 용어의 콜라보가 잘 이루어지는 지점에서 힙스터가 발생한다. 기술 마케팅(이라고 쓰고 "약팔이"라고 읽는)이 성공하는 곳마다 힙스터가 존재한다고 여기면 된다. 힙스터의 접근 방법은 좀 특이하다. 문제 해결에 힙한 기술만 주장한다. 지금 해야할 과제 중에 없으면, 그 기술을 적용하기 위한 문제를 만든다. 힙한 기술은 특정 난제 해결을 위해 나왔다. 모든 회사에서 그런 방식의 풀이가 필요한 것은 아니다. 가장 중요하거..
-
James Long "나는 어떻게 더 나은 프로그래머가 되었는가"의 인상 깊은 문장들Life/Software Engineer 2018. 9. 27. 11:48
엄청나 보이는 사람도 실제로 일하는 모습을 보면 우리가 일하는 모습과 그리 다르지 않습니다. 모든 수단과 방법을 가리지 않고 작동하는 코드를 쓰려 합니다(Hacks everywhere). 매일 등장하는 대부분의 새로운 라이브러리 등은 그저 기존에 있던 같은 아이디어의 재탕입니다. 진정 혁명적인 물건은 몇 년에 한번씩 나타납니다. 해결하고자 하는 문제 및 추상화 계층에 많은 시간과 노력을 들이는게 더 낫습니다. 모든 문제가 정리되었다면 약간의 시간을 들여서 코드를 정리하는 작업을 하면 됩니다. 특정 주제를 며칠 정도 조사해보는 버릇은 언제나 문제를 해결하는 방법을 송두리째 바꿔줍니다. 논문을 읽는 방법을 배우는 것도 좋습니다. [번역] 나는 어떻게 더 나은 프로그래머가 되었는가
-
'ps aux'와 'ps -ef'의 차이Programmer/Computer Skills 2018. 2. 13. 17:28
ps -e와 ps ax를 모든 프로세스를 보여준다는 의미에서 같다. ps -f와 ps u는 보여주는 필드를 정하는데 아래와 같은 소소한 차이가 있다. ps -f 프로세스의 식별 정보를 더 잘 보여준다. PPID : 부모 PID ps u 프로세스의 상태 정보를 더 잘 보여준다. %CPU : CPU 사용율 %MEM : 메모리 사용율 VSZ : 가상 메모리 크기 RSS : 실제 메모리 크기 STAT : 프로세스 상태 부모 프로세스와 자식 프로세스의 관계를 보려면 ps -ef가 프로세스 상태를 보는 용도로는 ps aux가 더 적당하다.
-
Ubuntu 16.04에서 Python 3.6 사용하기Programmer/Computer Skills 2018. 2. 12. 11:45
Ubuntu 18.04를 설치 또는 업그레이드 하라. Python 3.6이 기본 버전이다. 쉽고 편한 길을 놔두고 굳이 삽질한다면 말리진 않겠다. Python 3.6 설치하기 Ubuntu 16.04에는 써드파티 PPA를 추가해야 python 3.6을 설치할 수 있다. sudo add-apt-repository ppa:jonathonf/python-3.6 Python 3.6을 설치한다. sudo apt-get update sudo apt-get install python3.6 Python 3.6 설치 후 gnome-terminal 외 다수 프로그램이 동작하지 않는 문제 해결하기 Ubuntu 16.04의 몇몇 프로그램은 python 2.7, python 3.5 이외의 버전에서 동작을 보장하지 않는다. 이런 ..
-
파이썬 프러퍼티 사용하여 일관되게 속성에 접근하라Programmer/Programming 2018. 1. 17. 11:56
파이썬의 프러퍼티(property)를 설명한 책과 글은 많음으로 필요성만 살짝 언급하고 지나가겠다. 파이썬에서는 공개 애트리뷰트(public attribute)을 직접 접근(access)하는 것이 관례이다. class A: def __init__(self): self.x = 0 a = A() a.x = 1 print('{}'.format(a.x)) 그런데, 비공개(private) 애트리뷰트가 필요한 경우가 있다. 이들을 외부에서 접근하기 위해서는 엑세스 함수-예를 들면, get_xxx(), set_xxx()와 같은 것-을 사용해야 한다. 문제는 접근 형식이 관례와 달라지는데 있다. 즉, 애트리뷰트가 공개인지 비공개인지 일일이 신경써야 한다. 이럴 때, 프러퍼티를 사용하면 동일한 표현 형식으로 접근이 가능..