BlogHide Resteemsagile (51)in kr-dev • 7 years agoGood programmer 5 - Refactoring이번에는 테스트 프로그램을 정교하게 수정하고, 실제로 리팩토링을 해 봅니다. 입력과 출력을 가지고 테스트 프로그램을 완성해 봅시다. test.c 코드입니다. $ gcc -o test test.cagile (51)in kr-dev • 7 years agoGood programmer 5 - 테스트원래 코드는 잘 동작합니다만, 로직과 입출력이 섞여있어서 한번에 코드를 수정하기가 쉽지 않습니다. 실전에서는 이런 코드 개선을 해야할 필요성이 많습니다. 그러기 위해서는 우선 테스트 프로그램이 필요합니다. 아직은 프로그램이 함수로 떨어져 있지 않으므로, Unit test 를 할 단계를 아니고 Black box Test /…agile (51)in kr-dev • 7 years agoGood programmer 4 - 설계하고 테스트하기이벤트 문제를 가지고 예를 들겠습니다. 문제는 "N 명의 리스트에서 랜덤으로 k명을 뽑아서 출력한다." 입니다. 저는 코드가 짧은 것을 좋아해서 파이선에서는 권하지 않는 1줄 코딩을 선호합니다. 왜냐하면 의미상으로 "1~m-1 range 에서 c 개를 sample 해서 sorted" 명확하기 때문입니다. 마치 영어의 복문을 읽는 것과…agile (51)in kr-dev • 7 years agoGood programmer 3 - 최소화 하기첫번째 글에서 코드량에 대해서 이야기를 했는데, 좀 바꾸어 이야기 해 보도록 하겠습니다. 작성하는 코드는 최소가 되어야 하며, 중복은 없어야 합니다. 저장소 크기는 최소한으로 유지해야 합니다. 한번은 오픈마켓 쇼핑몰에서 개발팀장과 이런 이야기를 한적이 있습니다. "코드 유지 보수가 안된다" 소스 저장소가 기가 단위다"…agile (51)in kr-dev • 7 years agoGood programmer 2 - HOWTO be professional초급/중급 개발자를 구분 하는 것은 쉬운 일이 아닙니다. 10년 된 개발자도 "나는 초급이야"라고 하는 경우가 있으며, 3년이 된 개발자에게 "저 사람은 프로야"라고 하는 경우도 있습니다. 제 기준으로는 회사에 입사해서 프로젝트를 한, 두번 수행해 보면 그 분야에서는 초급 딱지를 뗏다고 볼 수 있습니다. 회사의 규모에 따라 다르겠지만, 스타트업의…agile (51)in kr-dev • 7 years ago천재, 둔재, 부족한 사람프로그래머로서 나는 천재인가 둔재인가 부족한 사람인가? 이런 의문은 프로그래머로서 항상 나를 발목잡는 생각이었고, 이런 생각 때문에 그만 둘 생각을 몇번이나 하게 되었다. 단순히 남들과의 비교에서 생기는 상처가 아니라, 순간순간 나에게 생기는 불만에서 이런 의문은 나를 괴롭혔다. 일화를 하나 소개하자면, 주임 : "책임님 이거 문제가…agile (51)in kr-dev • 7 years agoGood programmer 1 - 내가 관리할 수 있는 코드량은?몇 달 전에 누가 나에게 이런 질문을 했습니다. ( )( )( )님 코인 만들 줄 아십니까? 아니요 개발자 아닌가요? ㅠ.ㅠ 안 만드는 아니 못 만드는 이유는 수천 가지가 넘기 때문에, 누군가 나에게 "당신은 조잡한 코드를 작성하며, 당신은 초급에서 벗어나지 못한다"라고 한다면, 화가 날 것입니다. 이는 마치…agile (51)in kr-dev • 8 years agoAgile 입니다.안녕하세요. 애자일입니다. Agile 의 사전적 의미는 "기민함, 민첩함"이라는 뜻입니다. 소프트웨어 개발을 접하신 분들은 한번 쯤은 접했고, 아직 접하지 않았다면 반드시 접해야 할 개념입니다. 개발뿐만 아니라 인생을 살아가는데 있어서도 큰 도움을 주는 개념입니다. 민첩하고 기민하며 빈틈없이 일을 하기 위해서 어떻게 해야 하는가…agile (51)in kr-dev • 8 years ago애자일 #kr-dev 입니다.안녕하세요. 이 아이디로 앞으로 SW 개발에 관한 이야기를 써보고자 합니다. 가능하면 여기 #kr-dev 에 올린 글을 엮어서 "Joel on 소프트웨어"와 같은 책을 엮어도 좋을 것 같다는 생각을 해 봅니다. 제 개발 경력은 약 20년 가량 됩니다. 가장 로우레벨인 어셈블리, C 로 만든 펌웨어 부터, 웹 (Backend, Front…resteemedkdj (57)in kr • 8 years agosteemCreated with Sketch.Raspberry Pi 2 Camera 연결하기2년전에 산 라즈베리파이2를 꺼내서 Ubuntu Mate 16.04 를 설치하였습니다. 쓸만하네요... 작은 웹 서버로 쓰기에 적합한 듯 합니다. (라즈베리 파이3 는 더 빠르다고 하니, 날라다니는 기분이 들겠네요...) 카메라, LibreOffice Calc, Editor, Shell 을 띄운 화면입니다. 전혀 버벅임이…resteemedkdj (57)in linux • 8 years ago[Ubuntu Tip] Touch en/disable Hot KeyHi, laptop linux users. Most laptop have a touchpad problem that it sometimes is touched when pressing keys, which annoying me when I making codes. I realized that I don't need touchpad enabled…agile (51)in linux • 8 years agosteemCreated with Sketch.Move Linux partition to Another Hard diskMy laptop has 128GB SSD, and has both linux and window running short of capacity. I bought new 275GB SSD, and want to move partition without installing OS's. As for window, it is easy to move for…agile (51)in programming • 8 years agoPython script 에서 Django 환경 이용Facebook TDD Django 스터디 그룹을 위해 작성된 글입니다. 교재 Test driven development with Python (번역서 : 파이선을 이용한 클린코드를 위한 테스트 주도 개발) Django App 내에서는 Django 환경을 모두 이용할 수 있습니다. 간혹 Django app 이 아니면서도 Django 모듈을…agile (51)in programming • 8 years ago테스트 코드의 여러가지 유형Facebook TDD Django 스터디 그룹을 위해 작성된 글입니다. 교재 Test driven development with Python (번역서 : 파이선을 이용한 클린코드를 위한 테스트 주도 개발) 테스트의 중요성을 인식하면서도 테스트 코딩을 선듯 하지 못하는 경우가 많다. 어떻게 테스트를 작성하는지 모르겠다. 테스트…