본문 바로가기

Programing

(405)
엘리베이터 피치 2008년 9월 18일에 텍스트파일에 적은 걸 옮긴다. 무슨(What)일을 하는 코드를 작성할 것인가?언제까지(When) 작성을 끝내려고 하는가?어디서(Where) 사용될 거라고 생각하는가?왜(Why) 이 소프트웨어를 작성하는가?어떻게(How) 소프트웨어를 작성할 것인가? 엘리베이터 피치 - 소프트웨어를 설명하는 '100개 이하의 단어' 찾기무슨 일을, 왜 할 것인지를 설명하는 짧은 문장 긴 것< 짧은 것이 기술
소프트웨어 품질의 특성 왜 이걸 엑셀로 작성했는지 모르겠지만, 책에 있던 내용인 것 같다.파일 생성시간 : 2010-09-01 19:12 소프트웨어 품질의 특성외적 특성정확성(correctness) - 시스템의 사양과 설계, 구현에 있어 오류가 없는 정도유용성(usability) - 사용자가 시스템을 배우고 사용하는 데 있어서의 용의함효율성(efficiency) - 메모리와 실행 시간 같은 시스템 리소스의 최소 사용신뢰성(reliability) - 정해진 상황에서 언제든지 필요한 기능을 수행할 수 있는 시스템의 능력 - 고장 사이의 시간무결성(integrity) - 시스템이 프로그램이나 데이터에 대한 허용되지 않거나 잘못된 접근을 막는 정도적응성(adaptability) - 시스템을 변경하지 않고 설계된 환경에서 뿐만 아니라 ..
[HTTP & Spring MVC] 파일 다운로드 구현시 파일명 지정 HTML에서 a 엘리먼트로 하이퍼링크를 지정을 했을 경우 다운로드되는 파일의 이름은 URL 주소의 이름이 파일이다. 예를 들어 /download?filename=a.txt 라는 HTTP GET을 했을 경우 다운로드 받는 파일명은 a.txt인데 실제 받는 파일명은 download라는 이름이 된다. 이럴 경우 HTTP 응답 헤더중 Content-Disposition 를 지정해주면 된다. 바이너리일 경우를 위해 Content-Transfer-Encoding도 같이 지정한다. HttpServletResponse response를 사용한다면,,, response.setHeader("Content-Disposition", "attachment;filename=\""+filename+"\";"); response.s..
[후펴파는 스프링] 스프링 컨테이너 계층 정리 스프링 프레임워크는 객체지향 원리를 지향하다 보니 계층적이고 인터페이스도 오발라게 많다.클래스다이어 그램으로 그려두면 한눈에 볼 수도 있고 정리를 한다는 생각으로 만들어보았다.스프링 버전은 4.1.4.RELEASE 기준이다. 크게 우선 두 가지 컨테이너(BeanFactory와 ApplicationContext라는 인터페이스)로 구분할 수 있을 것이다.간단하게 패키지적인 관점에서 보면 아래와 같다.하지만 객체지향개념중에 클래스나 인터페이스에서 가장 중요한 것은 어떤 역할을 수행하느냐이다. 이런 역할들은 메소드를 통해서 정해진다. 실제 계층구조를 인터페이스 메소드를 포함해서 그려보면 아래와 같이 복잡해진다. (이미지가 커서 글씨가 작으므로 클릭하여 확대해서 보거나 다운받아 보길 권장한다.)또한 인터페이스만으..
[C#] GitHub 클라이언트의 오픈소스 기술들 Akavache - https://github.com/akavache/Akavache An Asynchronous Key-Value Store for Native Applications의 약자로 SQLite3기반의 비동기적으로 키-값을 영속저장하기 위한 라이브러리이다.AvalonEdit - https://github.com/icsharpcode/AvalonEdit / http://avalonedit.net/ SharpDevelop 4.x "Mirador"에서 WPF 기반의 텍스트 에디터이다.Caliburn.Micro - https://github.com/Caliburn-Micro/Caliburn.Micro / http://caliburnmicro.com/ 모든 XAML 기반의 플랫폼을 위한 작지만 강력한..
GitHub 클라이언트로 본 ClickOnce 윈도우에서 GitHub을 사용하기 위한 클라이언트 도구가 존재한다. Licenses 탭에 보면 이 프로그램이 사용한 많은 오픈소스 프로젝트 이름들이 있는데, 관심을 끄는 것은 ClickOnce 배포였다. 프로그램을 설치하거나 업데이트시에 아래와 같은 창이 보인다. 찾아보니 ClickOnce라는 배포 플랫폼이 있었다. 자세한 내용은 이미 정리해놓은 곳이 있어 링크로 대신한다. Unavailable :: ClickOnce를 이용한 윈도우 폼의 배포 - http://diehard98.tistory.com/192 ClickOnce 배포 전략 선택 - https://msdn.microsoft.com/ko-kr/library/71baz9ah(v=vs.85).aspx [ WPF ] ClickOnce로 배포하기 - h..
후벼파는 자바 - 어노테이션의 내부 원리 자바를 어느정도 해보신 분들은 알겠지만 @를 붙여서 사용하는 어노테이션을 써보았을 것이다.어노테이션이 어떤식으로 동작하는지 궁금해서 몇 가지 테스트를 해보았다. 실습을 했던 코드는 Ayoub El Abbassi 님의 블로그의 "How to add Annotations at Runtime to a java class method using Javassist?"글의 코드를 참고로 하였다. 우선 코드를 만들고package annotation; import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.T..
후벼파는 스프링 - AbstractApplicationContext.refresh 과정 애플리케이션 컨텍스트의 초기화 과정중에 항상 거치는 메소드가 refresh이다.org.springframework.context.support.AbstractApplicationContext의 코드를 옮겨보면 다음과 같다. (4.1. public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // 멤버 필드인 active를 true로 설정한다. (active의 플래그로 refresh가 되었는지를 판단) prepareRefresh(); // 내부에서 쓰이는 BeanFactory를 refresh ConfigurableListableBeanFactory beanFac..