기술을 기술하다

극단(extreme)으로 가기 위한 철학
‘익스트림 프로그래밍 : 변화를 포용하라”를 읽고 켄트 벡, 신시아 안드레스. 익스트림 프로그래밍(Extreme Programming). 김창준 옮김. 인사이트, 2006. 6월에 읽기 시작한 ‘익스트림 프로그래밍’을 두 달이 지난 이제서야 다 읽었다. 한 페이지마다 깊은 내용을 다루고 있어 책 읽는 속도를 올리기 쉽지 않았다. 읽을 때마다 나도 모르게 생각에 잠기곤 했는데 그 덕분에 회사를 비롯하여 나를 둘러싸고 있는 환경과 그 속에 있는 나에 대한 깊은 고민을 할 수 있었다. ‘어떻게 하면 더 나은 직장 생활을 할 수 있...
삶에 애자일 도입하기
김창준님의 ‘함께 자라기 - 애자일로 가는 길’을 읽고애자일, 잡힐 듯 잡히지 않는 것대학 시절 ‘동양철학’을 다루는 강의를 수강한 적이 있습니다. 전체적으로 굉장히 어려운 내용이었지만 그중에서도 특히 ‘도가사상’이 기억에 많이 남습니다. 도를 설명하는 부분이 난해했기 때문입니다. 호접지몽(나비 꿈)으로 유명한 장자가 도란 어디에 있는 것인지 묻는 동곽자라는 사람의 질문에 이렇게 말했다고 합니다. “도는 있지 않은 곳이 없다. 땅강아지나 개미에도 돌피나 피 따위에도 기왓장이나 벽돌 조각에도 똥이나 오줌 속에도 있다.”<지...
가상함수와 가상상속
가상 함수배경 및 필요성 비가상함수의 경우 부모 클래스형 포인터로 자식 클래스의 멤버 함수를 호출할 때 컴파일러는 포인터의 자료형을 기준으로 멤버 함수를 호출한다. 즉, 실제 가리키는 객체의 자료형을 기준으로 판단하지 않는다. 자식 클래스에서 부모 클래스 함수를 오버라이딩 했다는 것은, 해당 객체에서 호출되어야 하는 함수의 행위가 바뀐다는 것인데 비가상함수의 경우 이를 지원하지 못한다. 이는 다형성 개념과 충돌된다. 따라서 객체지향에서는 가상 함수라는 개념을 제공한다. 가상 함수를 이용하면 포인터의 자료형을 기반으로 호출대상을...
애자일 소프트웨어 개발
개요 신속하고 변화에 유연하며 적응적인(adaptive) 소프트웨어 개발을 목표로 하는 다양한 경량 개발 방법론 전체를 일컫는 총칭으로, 반복(iteration)이라 불리는 단기 단위를 채용함으로 위험을 최소화하는 개발방법이다. 배경소프트웨어 위기와 대응 방안 과거에서 현재로 올수록 시스템의 대규모화에 의해서 컴퓨터 계산 용량과 문제의 복잡성이 급격히 증가하게 되었고 이에 따라 소프트웨어의 신뢰성 저하, 개발비의 증대, 계획의 지연 등의 현상이 현저하게 발생되었다. 또한, 개발 계획의 수행을 매우 어렵게 만드는 상황이 빈번하...