분류 전체보기

· 배운것들
git init을 사용해 만든 레포지토리를 GitHub 원격 저장소에 올릴 때, 마지막 명령어로 git push -u origin master 를 작성하는데, 이 때 SSH 키를 사전에 GitHub에 등록하지 않았다면 아래 사진과 같은 에러가 날 것이다. SSH 키 생성 키를 생성하기 전에 키가 존재하는지 확인해야 한다. cd ~/.ssh ls 위의 명령어를 쳤을 때, id_rsa 파일과 id_rsa.pub 파일이 존재한다면 GitHub에 SSH 키 등록하기 부분으로 넘어가도 좋다. 없는 사람들은 그냥 따라치면 된다. ssh-keygen 위의 입력을 하면 키 생성 프로세스가 실행된다. 처음으로 id_rsa 파일의 위치를 설정하라는 질문이 나오는데 그냥 엔터를 누르면 기본 경로에 파일이 생성된다. 그럼 암..
6장. 코딩하는 동안 해야 할 일들 소제목 우연에 맡기는 프로그래밍 알고리즘의 속도 리팩터링 테스트하기 쉬운 코드 사악한 마법사 리팩터링 하는 방법과 코딩을 어떻게 하는지에 대해 설명하는 장이고, 정말 많은 도움이 되는 설명들이었다. 31. 우연에 맡기는 프로그래밍 왜 프로그램이 이렇게 동작하는지 설명할 수 없다면, 이 프로그램은 내 프로그램이 아니다. 지금은 이렇게 작동하지만 다른 환경에서는 다르게 동작할 수도 있다. 언제나 내 제어 안에 있는 코드를 작성하려고 노력해야 한다. 우리는 모두 우연에 맡기는 코딩을 하지 않는다고 생각할 수도 있으나, 항상 그렇게 하기는 어렵다. 의도적으로 프로그래밍 하는 방법 언제나 자기가 지금 무엇을 하고 있는지 알아야 한다. 맹목적으로 코딩하지 말라. 계획을 세우고 그..
5장. 구부러지거나 부러지거나 소제목 결합도 줄이기와 디미터 법칙 메타프로그래밍 시간적 결합 단지 뷰일 뿐이야 칠판 결합을 중이는 것의 중요성을 이전 장에서도 말하고 이 책의 전반적인 주제라는 생각이 든다. 왜 결합을 줄여아하는지와, 결합을 줄이는 방법에 대해서 이 책에서 알려주고 있다. 26. 결합도 줄이기와 디미터 법칙 결합도가 높은 프로그램은 유지보수하기 굉장히 힘들다. 한 부분을 수정했을 때, 해당 부분만 영향을 받아야하는데, 여러 부분에서 동시에 기존과 다른 동작을 한다면 유지보수 하는 것 보다 프로그램을 다시 만드는 것을 택하게 될 것이다. 디미터 함수 법칙은 프로그램에서 모듈간 결합도를 최소화하려 시도하는 것이다. 디미터 법칙에서 객체가 호출할 수 있는 메서드는 아래와 같다. 자신 메서드로 ..
$scope AngularJS의 컨트롤러에서 주로 $scope을 사용해 프로그래밍을 진행한다. 근데 팝업을 띄우거나, 현재 컨트롤러에서 다른 컨트롤러와 데이터를 주고 받아야 할 때 어떻게 데이터를 주고 받을 수 있는지 알아보자. scope 구조 일단 AngularJS에서 scope이 어떤 형식으로 나타날 수 있는지 아래 그림을 보자. scope은 형제 또는 자식 scope을 가질 수 있고, 가장 최상위 scope을 Root라고 부른다. 같은 색으로 표시된 것은 같은 계층의 scope들이다. 수직적인 통신 수직적인 통신은 broadcast와 emit을 사용해 할 수 있다. 자신보다 상위로 보내는 것은 emit, 하위로 보내는 것은 broadcast를 사용하면 된다. broadcast $scope.$broa..
· 배운것들
새로운 커밋이 올라오거나, 이슈가 발생했을 때 Slack으로 메시지를 전달하는 것을 소개하겠다. 일단 Slack의 앱 부분에 앱 추가버튼을 클릭하면 여러가지 앱이 나타난다. 그럼 검색창에 github를 입력하고 이를 설치하면 github 앱이 추가된다. 이제 GitHub와 연결하는 부분이다. 처음에 들어가면 Connect GitHub account 버튼이 있을 것이다. 이를 클릭하자. 그럼 아래와 같은 윈도우 브라우저가 나타날 것이다. 그럼 저기 초록색 버튼을 누르면 인증 번호가 나타나는데 이제 슬랙으로 다시 돌아와서 Enter code 버튼을 누르고 해당 인증 번호를 입력하면 연결이 완료된다. 그리고 아래처럼 슬랙에 메시지를 보내면 된다. /github subscribe owner/repository ..
4장. 실용주의 편집증 소제목 계약에 의한 설계 죽은 프로그램은 거짓말을 하지 않는다. 단정적 프로그래밍 언제 예외를 사용할까 리소스 사용의 균형 "완벽한 소프트웨어는 만들 수 없다." 라는 말로 이번 장이 시작한다. 지금까지 누구도 만든 적 없었고, 현재 누구도 만들 수 없는 것으로 보이기 때문에 우리는 방어적으로 프로그래밍 해야 한다. 어디서 문제가 발생할지 모르기 때문에 문제 발생 상황을 대비해야 한다. 21. 계약에 의한 설계 루틴을 실행 할 때 2가지의 상태가 있다. 선행 조건 후행 조건 선행 조건은 루틴이 실행되기 전에 참이어야 하는 조건들이다. 해당 조건이 아니면 루틴은 실행되지 않는 다는 것을 보장해야 한다. 후행 조건은 루틴의 실행 결과로 바뀌는 값들이다. 루틴의 실행 결과는 예측 가능해..
3장. 기본적인 도구 소제목 일반 텍스트의 힘 조개 놀이 파워 에디팅 소스코드 관리 디버깅 텍스트 처리 코드 생성기 이번 장에서는 개발자가 다루는 도구에 대해 설명한다. 개발자들은 주로 텍스트 에디터를 다루고, 나같은 경우 IDE를 사용해 개발을 하는데, IDE화 GUI에 익숙한 개발자들은 여기에서 벗어나야 할 필요성에 대해 말해주어서, 셸에 대해 조금 더 배워서 강력한 기능을 가진 셸 스크립트 언어를 사용해 자동 실행을 해보고 싶어졌다. 14. 일반 텍스트의 힘 우리가 알고 있는 지식을 일반 텍스트로 저장하면 언젠가는 이를 열어 봐야 하는 경우가 생길 것이다. 15. 조개 놀이 GUI는 굉장히 편리하다. 보이는 대로 실행되기 때문에 직관적이고, 배우기도 쉽다. 그리고 몇몇 과정들은 CUI 보다 더 빠르..
2장. 실용주의 접근법 소제목 중복의 해악 직교성 가역성 예광탄 프로토타입과 포스트잇 도메인 언어 추정 이번 장에서는 소프트웨어를 개발할 때 보편적으로 적용되는 부분에 대한 내용을 다룬다. 특히 '직교성'과 '가역성'에 대한 부분은 실제 소프트웨어의 생산성과 유지보수성에 크게 도움을 주므로 다시 한번 찾아보며 읽기 바란다. 7. 중복의 해악 DRY(Don't Repeat Yourself) 원칙에 대해 설명한다. 가끔 복사-붙여넣기를 통해 살짝만 코드를 수정하려는 유혹에 나는 쉽게 빠졌다. 하지만 조그만 부분을 수정하려 할 때에 모든 부분을 수정해야 하므로, 근본적인 부분을 모듈로 만든 후 한 부분에서만 수정하도록 만드는 것이 장기적인 관점에서 도움이 된다. 8. 직교성 직교성이란 두 벡터가 서로 직각으로..
1장. 실용주의 철학 소제목 고양이가 내 소스코드를 삼켰어요 소프트웨어 엔트로피 돌멩이 수프와 삶은 개구리 적당히 괜찮은 소프트웨어 지식 포트폴리오 소통하라! 1장 실용주의 철학에서는 실용주의 프로그래머가 어떻게 일반 프로그래머와 다른지에 대해 설명한다. 1. 고양이가 내 소스코드를 삼켰어요 가장 큰 약점은 약점을 보일 것에 대한 두려움이다. 문제가 발생했을 때, "고양이가 내 소스코드를 삼켰어요" 라는 답변은 실용적이지 않다. 자신이 맡은 일에 책임을 지고, 자신이 저지른 실수에도 책임을 질 줄 알아야 한다. 모르는 것은 모른다고 솔직하게 말하고 문제가 발생한 부분은 어설픈 변명 대신 대안을 제시하라. 2. 소프트웨어 엔트로피 소프트웨어는 여러가지 물리 법칙을 무시하지만 엔트로피는 대부분의 경우 적용된..
35장 더 많은 정보를 얻으려면 목차 35.1 소프트웨어 구현에 관한 정보 35.2 구현 외의 주제 35.3 정기 간행물 35.4 소프트웨어 개발자의 독서 계획 35.5 전문가 단체에 가입하기 이번 장에서는 도서와 간행물을 추천해준다. 내가 다음으로 읽을 책은 실용주의 프로그래머이다. 이 책에서도 추천해주었고, 몇 개월 전에 구매했는데 빨리 읽어보고 싶다. 내용만 932 페이지에 달하는 부분을 다 읽었다는 성취감이 정말 크다. 이 책의 내용중 10%도 제대로 이해한 것 같진 않지만 그래도 끈기 있게 주말마다 읽어온 나에게 칭찬을 해주고 싶다. 이 책을 읽으면서 내 개발 태도에 대해서 많이 반성하게 되었다. 증상만을 고치기 위한 프로그래밍을 해왔고, 가독성이라곤 1도 없었다. 그리고 설계라는 것을 할 생각..
Chamy619
'분류 전체보기' 카테고리의 글 목록 (8 Page)