분류 전체보기 427

[마틴파울러]Refactoring에서 나온 좋은 문구

1. 새로운 기능을 추가해야 하는데 프로그램의 코드가 새로운 기능을 추가하기 쉽도록 구조화 되어 있지 않은 경우에는 먼저 리팩토링을 해서 프로그램에 기능을 추가하기 쉽게 하고, 그 다음에 기 능을 추가한다. 2. 리팩토링을 시작하기 전에 견고한 테스트 셋을 가지고 있는지 확인하라. 이 테스트는 자제 검사 여야 한다. 3. 리팩토링은 작은 단계로 나누어 프로그램을 변경한다. 실수를 하게 되더라도 쉽게 버그를 찾을 수있다. 4. 컴퓨터가 이해할 수 있는 코드는 어느 바보나 다 짤 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다. 5. 리팩토링(Refactoring) 명사 - 소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부 구조를 ..

리팩토링의 필요성 및 주의점

☆ 리팩토링의 목적 - 소프트웨어를 보다 이해하기 쉽고, 수정하기 쉽도록... ☆ 리팩토링의 주의점 - 리팩토링은 소프트웨어의 기능을 변경하지 않는다. - 제대로 동작하지 않는 코드를 리팩토링하지는 않는다. ☆ 리팩토링시, 아래 두 가지 구별된 작업을 위해 시간을 나누어야 한다. - 기능 추가시, 기존 코드를 건드려서는 안 되고 단지 새로운 기능만 추가해야 한다. 테스트를 추가 하고, 테스트가 잘 작동하는지를 확인함으로써 진행상황을 알 수 있다. - 리팩토링시, 기능을 추가해서는 안 되고, 단지 코드의 구조에만 신경써야한다. 그리고 어떤 테스트도 추가하지 않는다. ☆ 리팩토링을 하는 이유 - 리팩토링은 소프트웨어의 디자인을 개선시킨다. 정기적인 리팩토링은 코드가 디자인을 유지하도록 도와준다. - 리팩토링..

리팩토링이란?

리팩토링이란? 여기저기 중복된 코드는 모아서 하나의 메소드로 만들고, 의미가 불명확한 메소드 이름은 명확한 이름으로 바꾸고, 하나의 메소드가 지나치게 길다면 보다 짧고 이해하기 쉬운 메소드들의 조합으로 바꾸면 코드가 훨씬 깔끔해지고 관리하기도 쉬워질 것이다. 이와 같이 리팩토링은 겉으로 보이는 동작의 변화없이 소프트웨어의 내부구조(디자인)을 바꾸는 작업니다. 이해하기 어려운 코드를 리팩토링하여 이해하기 쉽게 할 수 있고, 새로운 기능을 추가하기 전에 리팩토링을 하여 기능추가가 쉽도록 코드 구조를 바꿀 수도 있다. 요구사항이 바뀌거나 새로운 요구사항이 추가되면서 이를 코드에 반영하다 보면 코드가 처음에 의도했던 디자인과 점점 멀어질수 있는데, 이때도 리팩토링을 통해 디자인을 항상 적절한 상태로 유지시킬 수..

AJAX 에서 OOP 흉내내기 || Javvascript OOP

먼저 Ajax 을 5일 동안 공부한 초보자가 작성 한 것이라 있를지 모르는 많은 문제점에 대하여 양해와 질타을 바랍니다. 아래의 내용은 prototype.js 을 바탕으로 통신 부분만 사용한 것 이므로 문제가 없는 구조라고 생각 되시면, 가공해서 얼마든지 사용 가능하다고 생각합니다. 테스트한 브라우져는 FF, IE 이며, UTF8 환경에서 작업한것입니다. Ajax 을 본격적으로 공부하면서 전체틀을 만들기 위해 많은 자료을 접했지만 전체적으로 Interface 을 꾸미는것을 이용하기엔 너무나 많은 파일들을 사용하기에 필요한 페이지의 일부분만 내용을 바꿀수 있는 방법을 매번 페이지 생성시마다 생성하지 않고, 상속으로 재 사용 가능한 방법을 만들어 보았습니다. 즉, 문자나 기본 정보, 문자열 짜르기등을 재 사..

[스크린캐스트] C# 리팩토링

저의 역사적인 첫 번째 스크린캐스트입니다. C# 리팩토링 과정을 찍었습니다. SK-imedia R&D 센터에서 녹화했습니다. 얼마 전에 디자인 패턴 강사를 초빙해야겠다는 이야기가 나왔는데, 리팩토링 정도는 동영상으로 보여줘도 괜찮을 듯 싶었습니다. 이론보다는 실제 개발 과정을 자연스럽게 보여주기 위해 노력했습니다. 이 스크린캐스트는 rename, extract method, make method static 그리고 move 리팩토링 기법과 함께 몇 가지 C# 프로그래밍 팁을 보여줍니다. 15분 30초 정도의 분량이고, 더블 클릭하면 전체 화면으로 볼 수 있습니다. 출처 : http://kaistizen.net/EE/index.php/weblog/comments/screencast_csharp_refact..

코딩 먼저, 설계는 나중에 좋게 하자!

코딩을 먼저하고 설계를 나중에 좋게 하자니…. "도대체 소프트웨어 공학의 기초를 아는 사람이야?"라는 의문이 들지도 모르겠습니다. 그러나 소프트웨어 개발자라면 처음에 디자인을 완벽하다고 생각될 정도로 상세히 하고 코딩했다 할지라도 코딩을 한참 진행하고 있는 와중에 "아… 코드 정리를 한 번 해주어야 할 텐데… 처음부터 제대로 할 껄"하면서 후회하는 일이 한 두 번이 아닐 것입니다. 나중에는 손을 쓸 수 없는 지경에 이를 때까지 기능 추가와 수정만 계속하다가 스스로 코드에 문제가 있음을 시인하면서도 슬그머니 그대로 두고 다른 새로운 프로젝트를 할 수밖에 없었던 것이 현실이지요. 물론 처음부터 디자인이 훌륭했더라면 좋겠지만 실제 프로젝트에서 훌륭하고 정확한 디자인이 나올 때까지 기다리다가는 프로젝트가 물건너..

프로그램 소스코드를 공개하는 사이트 리스트

1. Visual C++, C# and Visual Basic 및 윈도우즈 .Net에 관련된 소스코드들이 공유되는 대표적인 사이트 http://www.codeguru.com/ 2. 인터넷 상의 돌아다니는 코드들을 모아놓은 사이트 http://www.planet-source-code.com/ 3. Codeguru와 더불어 많은 소스코드와 튜토리얼을 제공하고 있는 사이트 http://www.codeproject.com/ 4. 전세계를 석권하고 있는 구글에서 제공하는 오픈소스 사이트 http://code.google.com/ http://code.google.com/projects.html 5. C++, Visual Basic, ASP, sourcecode, programming, javascript, cod..

소프트웨어 2007.06.14

142가지의 자바스크립트 소스.txt

142 폼 입력 내용을 체크하여 깔끔하게 경고창 보여주기 141 부끄럼 타는 버튼 140 나쁜말 입력 금지 139 비밀번호 종합 체크 138 제목을 골라 메일 보내기 137 자바스크립트로 메일링 리스트를 만들어 보자 136 멀티 메일러 - Multi_Mailer 135 체크박스가 아닌곳을 선택해도 체크박스 선택하기 134 자바스크립트 에러 검증 스크립트 133 소스 훔쳐보기 132 체크박스 클릭하면 즉시 이동 시키기 131 년도별 띠 알아보기 130 페이지 로딩시 첫번째 필드의 특정 항목 자동선택 시키기 129 영어공부-아라비아 숫자 읽기 128 간단한 웹메일 보내기 127 페이지 검색기 126 웹 서치 엔진 125 폼 내용 전송전 확인 메세지 띄우기 124 폼 버튼 이름과 하이퍼링크가 계속 바뀌는 스트..

자기개발 2007.06.13

고객과 긍정적인 문장의 힘... 잔반을 줄이면 반찬의 가지수가 늘어납니다

고객과 긍정적인 문장의 힘... 잔반을 줄이면 반찬의 가지수가 늘어납니다 (예병일의 경제노트, 2007.6.8) 당신을 맞아주는 다음과 같은 경고문들을 읽어보아라. "휴대전화 사용 금지! 도서관에서는 휴대전화를 소지할 수 없습니다. 여기서 휴대전화는 안됩니다!" 혹은 "제에~발! 휴대전화를 사용하지 말아주십시오! 여기는 공중전화 부스가 아닙니다." 이러한 경고문을 한 레스토랑의 다음과 같은 표지판과 비교해보자. 이 표지판의 내용은 고객의 기분을 배려하고 있을 뿐 아니라 효과적으로 휴대폰 사용을 금하고 있다. "휴대전화가 울리면 당신을 위해 리조토 요리를 하는 데 방해가 됩니다." 무조건 안된다는 경고문보다 이것이 훨씬 더 효과적이지 않겠는가! 제프리 폭스의 '마케팅 슈퍼스타' 중에서 (더난, 179p) ..

자기개발 2007.06.11

인생은 B to D 이다.

인생은 B to D 이다. 여러 가지 인생에 대한 정의 중 인생은 B to D라는 말이 가슴에 다가온다. B는 Birth(태어남)이고, D는 Death(죽음)이다. 즉 인생은 태어났다가 죽는 것, 그 이상도 이하도 아니다. 그럼 B와 D 사이에는 무엇이 있는가? C가 있다. C는 무엇인가? 바로 Choice(선택)이다. 즉 인생은 주어지는 것이 아니고 선택하는 대로 되는 것이다. - 최염순 신작 ‘미인대칭비비불’에서 셰익스피어 말대로 세상에 절대적으로 좋고 나쁜 것은 없습니다. 우리의 생각이 그렇게 만들 뿐입니다. 우리는 우리가 행복해 지려고 마음먹은 만큼 행복해 질 수 있습니다. 행복과 불행을 결정하는 것은 외부 환경이 아니라 그 환경을 어떻게 바라볼 것인가에 대한 나의 선택에 달려있습니다.

자기개발 2007.06.07