Programming (IT) 썸네일형 리스트형 2장 왜 애자일 인가 - 클린 애자일 정리 2. 왜 애자일 인가? 애자일 개발이 중요한 것은 더 깊은 철학적, 윤리적 이유 때문이다. 바로 직업의식과 고객의 당연한 기대 때문이다. 직업의식 애자일 개발은 (전문가가 되겠다는) 약속이다. 소프트웨어 개발 산업 전반에 전문가 다운 행동을 퍼트리겠다는 약속 내 수준을 올리겠다는 약속 과거에 실패가 많았다 → 소프트웨어가 이제 너무 많다 → 실패하면 안 된다 소프트웨어는 어느 곳에나 있다. 정말 많은 곳에 소프트웨어가 있다. 우리가 세상을 지배한다. 소프트웨어는 누가 만드는가? → 여러분과 나다 우리가 세상을 지배한다. 테스트가 안돼서 엉망이다. → 테스트 슈트가 소프트웨어의 정상 동작을 엄밀하게 증명한다고 말할 수 있는 프로그래가 얼마나 될까? 도요타 리콜 (브레이크 소프트웨어 결함) 재앙 프로그래머의.. 더보기 1장 애자일 소개 - 클린 애자일 정리 애자일이란 무엇일까? - 짧은 반복 주기와 고객과 개발자 사이의 원할한 커뮤니케이션으로 생산성을 높는 개발 방법론? 애자일 이전에 왜 프로젝트가 실패했는지에 대해서 생각해보고, 애자일이 무엇인지를 이해해 보자. 또 애자일을 실천하면서 우리가 얻을 수 있는 가치들도 생각해보자. 1. 애자일 소개 애자일의 역사 제조업과 산업 전반적으로 과학적 관리법이 성공적으로 자리 잡고 있었다. → 계획을 세우는 데 먼저 많은 노력을 들인 다음, 그 계획을 주의 깊고 세세하게 실천하는 것 (하향식, 지휘 및 통제 접근법) → 효율성과 생선성을 극적으로 향상시켰다. 선애자일 (pre agile) → 조금씩 걸어보고 측정을 한 후 그에 맞추어 개선하기를 반복하는 방법 Q. 소프트웨어 프로젝라는 것이 어떤 종류의 프로젝트인가?.. 더보기 Twain을 QT에서... 사용하는 예제 Twain 으로 Data를 얻어오는 logic은 다음과 같다. init (Twain library 초기화) selectSource (Twain 을 제공하는 장치 선택) acquire (획득) ... 그냥 획득하는 경우도 있고 별도의 어플리케이션이 구동될 경우도 있음 --- 여기까지가 호출이고 이후에는 Window Message 형태로 event가 날라 온다. 그걸 통해서 Data 획득함 더보기 c# Dictionary 일반 Dictionary, SortedDictionary, SortedDictionary.Reverse()를 사용하는 예제 더보기 Eclipse decompiler plug-in 빌드된 java file 즉, class 파일을 다시 java source로 돌릴 수 있는 방법은 많이 있다. 그 중에서 eclipse IDE에서 사용할 수 있는 plug-in 과 그 설치 법을 간단? 하게 설명? 아니 그냥 내가 알아볼 수 있는 수준으로 요약한다. 1. eclipse 는 깔려 있어야 한다. (없으면 알아서 설치!) 2. jadclipse 를 다운 받는다. (http://sourceforge.net/projects/jadclipse) 3. jad 파일을 다운 받는다. (http://www.varaneckas.com/jad) 4. eclipse/plug-in 폴더에 다운 받은 jadclipse 를 복사한다. --> plug-in 폴더에 보면 각가지 폴더들이 이미 설치되어있다. 그런 형태로 .. 더보기 SVN server - SVN client SVN server를 설치하자 Subversion 설치 http://subversion.tigris.org/ Tortoise http://tortoisesvn.tigris.org/ Subversion Manager 설치 http://www.pyrasis.com/main/ 일단 위에 3가지 파일을 다운 받아서 설치한다. repository 생성 폴더 하나 만들고 TortoiseSVN -> Create repository here 를 선택하면 된다. Subversion Manager를 이용하여 repository 구동 아까 만든 repository 폴더를 선택하고 Start를 누르면 SVN 서버가 돌기 시작할 것이다. 권한 설정 위에 만든 Repository 하위 폴더인 conf로 들어가면 아래와 같이 3가.. 더보기 JNI Spec #2 이 chapter는 JNI 설계의 주요 이슈에 대해서 다룬다. 가장 큰 설계 이슈는 native methods와의 관계이다. API 호출에 관한 설계는 Chapter 5에서 설명한다. JNI Interface Functions and Pointers Native code는 Java VM에 JNI function을 호출함으로서 접근한다. JNI function은 interface pointer를 통하여 사용된다. 이 pointer는 사전에 정의된 pointer array를 가르킨다. Interface pointer는 pointer의 pointer이며, 이 pointer는 배열로 이루어져 있다. 모든 Interface function은 사전에 정의된 offset에 때라 배열에 위치한다. 그림 생략 --> 중.. 더보기 JNI reference Global Reference - 개발자가 해제하기 전까지 유효함, GC되지 않음 weak Reference - 개발자가 해제하기 전까지 유효함, GC됨 local Reference - mthoad 안에서 자동적으로 해제됨 더보기 JNI Spec #1 Chapter 1 JNI는 VM과 device간의 상호 운용을 통하여 VM하단을 구현할 수 없던 제약을 해결해준다. 하나의 native application/library 버젼으로 모든 java VM에서 구동한다. Java Native Interface Overview java 뿐만 아니라 다른 언어로도 구현할 수 있다는 내용 - platform dependent feature - 다른 언어로 쓰여진 library를 이미 가지고 있을 때 사용하면 유용 - 작은 부분의 time-criticla coe를 작성할 수 있다. (assembly 같은) 갖가지 장점들을 나열 하고 있지만... 단점도 많다. 내 생각에는 하드웨어 dependency가 아니라면 궂이 안 쓰는게 좋을 것 같다. Historical Bac.. 더보기 Jar 로 library 만들어 사용하기 /abc 폴더에 abc.java를 생성한다. package abc; public class abc{ public abc(){ } } / 에서 java를 빌드한다. javac abc/*.java /에서 abc.jar파일 생성 jar cvf abc.jar abc/*.class /xyz 폴더에서 xyz.java를 생성한다 이 파일은 abc/abc.java 파일을 참조 하게 만든다. package xyz; import abc.*; public class xyz{ xyz(){ abc a = new abc(); } } xyz.java를 abc.jar를 이용하여 build 한다. javac -classpath abc.jar xyz/*.java 더보기 이전 1 2 다음