내일의 행복을 위해 오늘 나는 무엇을 해야 하는가?
생각해 봐야 할 문제이다.

  • 눈앞의 마시멜로를 즉시 먹어치우지 마라. 더 많은 마시멜로를 먹을 수 있을 때까지 기다려라. 그 적당한 시기가 반드시 온다.
  • 눈부신 유혹을 이기면, 눈부신 성을을 맞이한다.
  • 1달러에서부터 시작해 30일 동안 매일 배로 늘려가면 5억 달러가 넘는다. 장기적인 안목으로 생각하라.
  • 내가 원하는 것을 남에게서 얻으려면, 그 사람이 나를 돕고자 하는 욕구를 느끼게 해야 한다. 그리고 무엇보다 나를 믿게 만들어야 한다.
  • 내가 원하는 것을 다른 사람에게서 얻을 수 있는 최상의 방법은 감동을 통해 설득하는 것이다.
  • 남들이 가지 않는 길을 기꺼이 가는 사람이 성공에 이른다.
  • 성공은 나의 과거나 현재에 좌우되는 것이 아니다. 내일의 성공은 오늘 어떤 준비를 하느냐에 따라 결정된다.

내 인생의 마시멜로를 위한 5단계 계획

  1. 내가 변화하기 위해서는 무엇이 필요한가?
    • 눈앞의 마시멜로를 먹어치우지 않으려면 무엇을 어떻게 바꾸어야 하는지 생각해 보라.

  2. 나의 장점과 단점은 무엇인가?
    • 내가 잘 하는 것은 무엇이고 개선해야 할 점은 무엇인지 객관적으로 판단하라.

  3. 궁극적으로 이루려는 목표는 무엇인가
    • 적어도 다섯 가지 목표를 순차적으로 정하라. 그리고 목표에 도달하기 위해서 해야 할 일을 적어라.

  4. 목표를 달성하기 위한 계획이 있는가?
    • 목표를 위한 계획을 세워라. 계획이 없으면 목표를 달성할 수 없다.

  5. 계획을 행동으로 옮기기 위해서는 어떻게 해야 하는가?
    • 사소한 것이더라도 구체적으로 정리하라.





 

 

Posted by outliers
,
Refactoring 이란?
소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부 구조를 변경하는 것

핵심 정리
  • 새로운 기능을 추가해야 하는데 프로그램의 코드가 새로운 기능을 추가하기 쉽도록 구조화되어있지 않은 경우에는 먼저 리팩토링을 해서 프로그램에 기능을 추가하기 쉽게 하고, 그 다음에 기능을 추가한다.
  • 리팩토링을 시작하기 전에 견고한 테스트 세트를 가지고 있는지 확인하라. 이 테스트는 자체 검사여야 한다.
  • 리팩토링은 작은 단계로 나누어 프로그램을 변경한다. 실수를 하게 되더라도 쉽게 버그를 찾을 수 있다.
  • 컴퓨터가 이해할 수 있는 코드는 어느 바보나 다 짤 수있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다.
  • 완전하지 않은 인터페이스를 공표하지 마라. 매끄러운 리팩토링을 위해 코드 소유권 정책을 수정하라.

왜 리팩토링을 해야 하는가?

  • 리팩토링은 소프트웨어의 디자인을 개선시킨다.
  • 리팩토링은 소프트웨어를 더 이해하기 쉽게 만든다.
  • 리팩토링은 버그를 찾도록 도와준다.
  • 리팩토링은 프로그램을 빨리 작성하도록 도와준다.


언제 리팩토링을 해야 하는가?

  • 별도의 시간을 내는것이 아니라, 틈틈히 계속 해야 하는 것이다.
  • 어떤 것을 할 때 비슷한 어떤것을 하게 되면 리팩토링을 한다.(책에서는 3번째 부터 하라고 나와있지만 바로 한다.)
  • 기능을 추가할 때 리팩토링을 해라.
  • 버그를 수정해야 할 때 리팩토링을 하라.
  • 코드 검토(code review)를 할 때 리팩토링을 하라.
    • 읽기 어려운 프로그램은 수정하기 어렵다.
    • 중복된 로직을 가지고 있는 프로그램 수정하기 어렵다.
    • 실행중인 코드를 변경해야 하는 특별한 동작을 요구하는 프로그램은 수정하기 어렵다.
    • 복잡한 조건문이 포함된 프로그램은 수정하기 어렵다.

언제 리팩토링을 하지 말아야 하는가?

  • 코드를 처음부터 다시 작성해야 할때
  • 마감일에 가까울 때


리팩토링과 디자인
리팩토링이 사전 디자인의 역할을 바꿀수 있기 때문에 간단한 솔루션을 만든 다음에 코딩을 하고 리팩토링을 한다.
※ 시스템이 어떻게 돌아가는지 정확하게 알고 있다 하더라도, 추측만 하지 말고 실제로 퍼포먼스를 측정해보라. 무엇인가 배울 것이고, 십중팔구는 추측이 틀렸을 것이다.

리팩토링과 퍼포먼스
리팩토링은 확실히 소프트웨어를 더 느리게 할 것이지만, 반면에 소프트웨어에 대한 퍼포먼스 튜닝을 더 쉽게 할 수 있도록 만든다.

 

Posted by outliers
,

'Programs > eclipse tip' 카테고리의 다른 글

이클립스 단축키  (4) 2011.09.20
Posted by outliers
,