목록끄적끄적 (54)
끄적끄적
C에서의 static전역변수는 프로그램 어느 곳에서든 접근 가능그러나 지역변수에 static을 붙이면 전역변수의 특성을 지니면서 접근할 수 있는 범위에 제한을 둠 = static =void func1(){ static int count = 0; printf( "%d\n", ++count );} int main(){ func1(); // count = 10; 주석을 풀면 compile error func1(); return 0;} 결과값 12 = 전역변수 =int count = 0;void func1(){ printf( "%d\n", ++count );} int main(){ func1(); count = 10; func1(); return 0;} 결과값111 C++ 에서의 staticC++ 에서는 전역이..
과거의 원인이 현재로 이어지지 않는다. 현재는 내가 선택하는 것이다. '무엇이 주어지느냐'가 아닌 '주어진 것을 어떻게 활용하느냐' 다. 인생의 과제행동의 목표자립할 것사회와 조화를 이루며 살아갈 것심리적 목표내게는 능력이 있다는 의식사람들은 내 친구라는 의식 자기수용, 타자신뢰, 타자공헌 변할 수 없는 '나'는 받아들이고 변할 수 있는 것들에 주목하라.다른 사람들에게 대가를 바라지 말고 조건 달지 않고 믿어라.자기 희생이 아닌 '나'의 가치를 실감하기 위해 내가 남(친구)을 위해 무엇을 할 수 있는 가를 생각하고 실천하라(공헌) 행복이란 공헌감이다. 나는 공동체에 유익하다. 누군가에게 도움이 된다라고 느끼는 것 지금, 여기에 충실하라. 과거도 미래도 아닌 현재길잡이는 타자공헌이다. 지금 할 수 있는 것..
자기 수용, 타자 신뢰, 타자 공헌 자기 수용'나'는 버릴 수도 교환할 수도 없다주어진 것을 어떻게 활용하느냐즉 '나'에 대한 견해를 바꾸는 것이다.자기 긍정과는 차이점이 '하지 못하는 나'조차도 그대로 받아들이는 것60점이라면 60점을 받아들이고 100점에 가까워지려면 어떻게 해야할까?라고 방법을 찾는 것이 자기 수용'변할 수 있는 것'과 '변할 수 없는 것' 이 둘 중에 '변할 수 있는 것'에 주목하라변할 수 없는 '나'는 그대로 받아들이고 타자 신뢰다른 사람을 믿을 때 조건을 일절 달지 않는 것(무조건 믿는 것)배신할지 안 할지를 결정하는 건 타인의 과제다.나는 그저 '내가 어떻게 할 것인가'만 생각하면 된다.신뢰하는 것을 두려워하면 결국은 누구와도 깊은 관계를 맺을 수 없다 타인을 친구로 여기기 ..
소속감이란 태어나면서부터 주어지는 것이 아니라 스스로 획득하는 것이 사람은 내게 무엇을 해줄까? 가 아니라내가 이 사람에게 무엇을 줄 수 있을까?공동체에 공헌( commit )함으로 소속감을 얻게 됨 공동체란 직장, 학교 이런게 아닌 더 큰 공동체 관계가 깨질까 봐 전전긍긍하며 사는 것은 타인을 위해 사는 부자유스러운 삶이다. 남을 평가하는 것은 수직적인 관계 인간은 자신이 가치 있다고 느낄 때에만 용기를 얻는다 그럼 어떻게 자신이 가치 있다고 느끼는가?나는 공동체에 유익한 존재다라고 느낄 때평가 받을 필요없이 자신의 주관에 따라 '나는 다른 사람에게 공헌하고 있다'고 느끼는 것공헌이란 행위의 차원이 아닌 존재의 차원
타인에게 인정받기를 바란 나머지 '이런 사람이면 좋겠다'는 타인의 기대를 따라 살게 되지즉 진정한 자신을 버리고 타인의 인생을 살게 되는 거라네
대인관계를 두려워한 나머지 자기 자신을 싫어하게 된 것.자신을 싫어함으로써 인간관계로부터 도망친 것. 인생의 과제행동의 목표자립할 것사회와 조화를 이루며 살아갈 것심리적 목표내게는 능력이 있다는 의식사람들은 내 친구다는 의식 아무리 어려워 보이는 관계일지라도 마주하는 것을 회피하고 뒤로 미뤄서는 안 돼. 가장 해서는 안 되는 것이 이 상황, '이대로'에 멈춰 서 있는 것
과거의 원인 때문이 아니다. 지금 여기에 집중하라자신의 행복은 자신이 선택하는 것이다. 자기의 생활양식을 버릴 용기를 가져라 우리는 모두 목적에 따라 살고 있고 그 목적에 따라 감정을 느끼고 표현한다. Ex) 어릴 때 학대받아서 현재 밖에 나가지 않는 사람은 과거가 원인이 아니라 방안에 틀어박혀 있으면 주변 사람들의 관심을 받을 거라는 목적이 있기 때문이다.Ex) 점원이 음료를 쏟았을 때 화를 내며 소리 친 것은 화가 났기 때문에 그렇게 한 것이 아니라 큰 소리를 내어 점원을 굴복시키기 위해 분노라는 감정이 생긴 것이다. '무엇이 주어지느냐' 가 아니라'주어진 것을 어떻게 활용하느냐'
책임을 어디에 둘 것인가 Move FieldMove MethodExtract ClassInline Class Move Method(v)메소드가 자신이 정의된 클래스보다 다른 클래스의 기능을 더 많이 사용하고 있다면이 메소드를 가장 많이 사용하고 있는 클래스에 비슷한 몸체를 가진 새로운 메소드를 만들어라. 그리고 이 전 메소드는 간단한 위임으로 바꾸거나 완전히 제거하라.동기자신이 속해 있는 클래스보다 다른 클래스를 더 많이 참조하는 메소드가 있는지 확인절차소스 클래스에 정의된 소스 메소드에 의해 사용되는 모든 부분을 조사어떤 부분이 지금 옮기려는 메소드에서만 사용된다면, 그 부분 또한 같이 옮기는 것이 낫다.소스 클래스의 서브클래스나 슈퍼클래스에서 옮기려고 하는 메소드에 대한 다른 선언이 있는지 확인타겟 ..
리팩토링의 많은 부분을 차지 Extract Method(v)그룹으로 함께 묶을 수 있는 코드 조각이 있으면, 코드의 목적이 잘 드러나도록 메소드의 이름을 지어 별도의 메소드로 뽑아낸다.동기지나치게 긴 메소드주석이 필요한 코드( 목적을 이해하기 위한 )장점 ( 짧고 이해하기 쉬운 이름으로 메소드를 만들었을 때 )재사용 확률 높아짐메소드를 볼 때 주석을 읽는 것 같은 느낌이 들도록 할 수 있음오버라이드 하기 쉬움절차메소드를 새로 만듦의도를 잘 나타내도록 이름을 정함 ( 어떻게 하는지가 아닌 무엇을 하는지를 나타내도록 )뽑아내고자 하는 부분이 아주 간단한 경우에는 새로운 메소드의 이름이 그 코드의 의도를 더 잘 나타낼 수 있을 때만 뽑아낸다. )뽑아내고자 하는 부분의 코드를 복사하여 새 메소드로 옮김원래 메소..
테스트 만들기 모든 테스트를 완전히 자동화하고, 테스트가 자신의 결과를 스스로 확인하게 하라.테스트의 결과 또한 컴퓨터가 확인하도록 테스트 코드를 작성하라.TS_ASSERT_EQUALS( result, expected_result ) 언제 테스트 코드를 작성해야 하는가?프로그래밍 시작 전구현보다는 인터페이스에 집중할 수 있게 된다.코딩을 완료할 명확한 지점( 테스트를 통과하는 지점) 을 갖게 되는 것을 의미함 테스트를 자주 실행 시켜라. 컴파일 할 때마다 테스트를 하고, 적어도 하루에 한번 모든 테스트를 실행시켜라. 리팩토링을 할 때는 작업하고 있는 코드만 몇 가지 테스트를 실행시켜야 한다. 단위 테스트 ( Unit test ) vs 기능 테스트 ( functional test )단위 테스트프로그래머에게..