본문 바로가기

개발자/Algorithm

소스코드 분석, 코드 리뷰 분석 방법 모아봤습니다. 소스코드 분석은 정말 어려운 일입니다. 그러니 오죽하면 분석보다 새로 짜는게 더 쉽다는 말이 나오기도 하고요. 그러나 소스를 본다는것은 새로운 철학을 만나는 것이라고 봅니다. 오래된 코드건, 만든지 얼마 안되어 유지보수가 필요한 코드건 말입니다. 개발된 제품의 소스코드를 보고 있는데 C 파일과 header 파일 갯수만 124 개나 됩니다. 헉~~  전투력 급저하 됩니다. 소스 코드 분석은 코드 리뷰와는 많이 다르다고 합니다. 제 생각엔 일단 큰 구조를 파악하고, 점점 반복해 가면서 세부적인 내용으로 분석해 들어가는 방법이 좋은 방법입니다. 아래 글들은 소스 코드 분석에 대한 좋은 글들을 몇개 모아봤습니다. 도움이 되면 좋겠습니다. 문서 참고 인생의 잔혹한 비밀과 삶을 제대로 살기 위한 기술 “위대한 마인..
Cadence OrCAD v16.0 설치방법 - Windows 7에 설치 ( XP 에서도 가능) Cadence OrCAD v16.5 설치방법 - Windows 7에 설치 1. 다운받은 파일을 Cadence_SPB_165.iso 파일을 가상 시디롬 프로그램인 Demon Tools를 이용하여 가상 시디롬에 삽입한다. 아니면 알집을 이용해 압축을 푼 상태로 설치해도 된다. 2. 폴더의 setup.exe 파일을 실행한다. 3. License Manager를 눌러 설치한다. 4. 설치도중 License File Location을 물어본다. 무시하고 Cancel 버튼을 눌러 나가버리자. 그러면 설치가 완료된다. 5. 받은 파일들을 살펴보면 LibCD라는 폴더가 iso파일과 같이 있을 것이다. 그 폴더내의 설치 프로그램이 Library 설치 프로그램이다. 반드시 "Only for me." 상태를 선택하고 설치한..
회사가 개발자를 고문하는 16가지 방법 회사가 개발자를 고문하는 16가지 방법 - Andrew C. Oliver | InfoWorld 훌륭한 개발자들을 확보하려면 그만큼 훌륭한 환경을 제공해야 한다. 점점 더 구인경쟁이 치열해지는 가운데 식사를 무료로 제공하거나 노동시간의 일부를 자유롭게 활용할 수 있도록 '유급' 여유 시간을 주는 기업이 나타나는 것도 이 때문이다. 그러나 모든 기업이 개발자의 중요성을 인식하고 있는 것은 아니다. 몇몇 기업들은 여전히 개발자를 혹사시킨다. 여기 개발자를 힘들게하는 다양한 유형을 소개한다. 이 가운데 한 두 가지 이상을 하고 있다면 그 기업은 최고의 개발자들을 다시는 채용하지 못하게 될 것이다. 1. 지옥 같은 보안 필자는 맥아피(McAfee) 프록시가 헬로월드자바(HelloWrold.java)에 집(Zip)..
최악의 소프트웨어 개발 프랙티스 10가지 - Andrew Oliver | InfoWorld 최악의 소프트웨어 개발 프랙티스 10가지 - Andrew Oliver | InfoWorld 훌륭한 소프트웨어를 만들기란 그다지 어렵지 않다. 그러나 제대로 된 코드를 작성하려는 소프트웨어 개발자의 가장 큰 적은 바로 자기 자신이다. 잘못되거나 엉뚱한 습관에 빠질 수 있기 때문이다. 아니, 사실 개발자의 최대 적은 더 빨리 프로젝트를 완료하려는 조급한 마음에 개발자를 잘못된 습관으로 몰아넣는 IT 책임자이다. 특히 대규모 엔터프라이즈 또는 웹 프로젝트에서 이는 큰 재앙으로 이어질 수 있다. 다음과 같은 함정은 익히 알려진 것들로, 여기에 이의를 제기하는 개발자는 아마 거의 없을 것이다. 1. 하루 종일 유닛 테스트를 한 줄도 작성하지 않는다 개발자는 유닛 테스트와 기능 테스트의 차이점과 같은 세부적인 부분..
고급 개발자에 대한 6가지 진실 - Andrew Oliver 고급 개발자에 대한 6가지 진실 - Andrew Oliver 크고 중요한 프로젝트가 진행되던 중 갑자기 사방이 붕괴된다. 이리저리 꼬인 코드는 도저히 디버깅할 엄두가 나지 않는다. 유닛 테스트는 해본 적도 없고, 뭔가를 변경할 때마다 40여 명의 사람들이 모여 회의를 해야 한다. 만일 “고급” 개발자 10명으로 구성된 팀이 이 프로젝트를 맡았더라면 99.999%의 가용성으로, 두 배 더 많은 기능을, 절반의 시간에 구현할 수 있었을 것이다! 아니, 어쩌면 아닐 수도 있다. 고참 개발자들로 구성된 팀은 복잡한 설계만 만들 뿐 막상 코드를 내놓지 못하는 경우가 많다. 그 이유는 다음과 같다. 원글 출처 : http://www.itworld.co.kr/news/77598 진실 1 : 고참 개발자는 비싸다 관리..
모두가 원하는 개발자 되기 10단계 개발자가 되기 위해 프로그래밍 기술만 있으면 된다고 생각한다면, 틀렸다! 코드를 잘 쓰는 것도 중요하지만, 일의 능률을 높이고 더 높은 연봉을 받기 위해서는 많은 이에게 자신이 누구인지 알리는 것이 중요하다. 다시 말해, 스스로를 마케팅해야 한다. 여기에서 성공적인 셀프 마케팅 방법을 소개한다. 모두의 개발자 팁 No.1 : 블로그 블로그를 개설 후 한 달에 한 번 이상 포스팅을 올려라. 블로그에 올리는 글은 꼼꼼히 리서치하고, 바보 같아 보이는 말은 하지 않는다. 농담이 아니고, 개발자들도 정말 작문 실력을 높이기 위해 노력해야 한다. 학교 다닐 때 국어 선생님이 가르쳐준 것들을 활용해보자. 글을 쓰기 전 개요를 작성하고, 서술 기법을 정하고, 문법이나 맞춤법을 확인하는 것 말이다. 그런 후에는 아깝더..
XML(Extensible Markup Language) 에 대한 10가지 관점 XML : Extensible Markup Language에 대한 10가지 관점 XML, XLink, Namespace, DTD, Schema, CSS, XHTML 등 ... 만약 XML을 새로이 접하게 된다면, 이와같은 용어는 매우 어렵게 느껴질것이다. 이 요약은 XML의 초보자들에게 기본적인 개념에 대하여 10 가지를 제공 함으로써 나무를 통하여 숲을 볼 수 있도록 하기 위한것이다. 1. XML은 구조적인 데이타를 위한것이다 스프레드 시트, 주소록, 형상 파라미터, 비지니스 트랜잭션, 그리고 기술 도면 등 구조를 가지는 데이타는 사물을 포함한다. XML은 텍스트 포맷을 설계하기 위한 규칙(가이드 라인이나 관례라고 생각할 수 있다)들의 집합이며, 이러한 규칙을 통하여 데이타를 체계화한다. XML은 프로..
언제 리팩토링 (Refactoring)을 해야 하는가 ? 켄트 백이 제안한 냄새론에 따라 아래와 같은 느낌의 냄새가 나면 리팩토링을 수행한다. 중복된 코드 - Duplicated Code긴 메소드 - Long Method커다란 클래스 - Large Class긴 인수의 리스트 - Long Parameter List스위치 명령문 - Switch Statements병렬적인 상속구조 - Parallel Inheritance Hierarchies추측에 근거한 일반화 - Speculative Generality임시필드 - Temporary Field설명문 - Comments 코드 자체가 할 말을 하게 하면 된다.