- 오픈소스 연구
- 오픈소스 Architecture
- 오픈소스 Framework
- 오픈소스 도구
- 프로젝트 관리 도구
- 아키텍쳐 도구
- 개발 도구
- 운영 도구
- 참고 문헌
개발 방법론과 결합된 오픈소스 Framework를 연구한다. 그리고 더 나은 오픈소스를 쉽게 구현하기 위해 오픈소스 Architecture를 연구한다.
오픈소스 연구
오픈소스 Architecture
Multi-Instance Multi-Tenant On-Demand MVC Plugin Architecture
오픈소스 Framework
Framework
특정 기술 또는 도메인 어플리케이션의 기반을 이루는 아키텍처
디자인 패턴 + 기반코드 (skeleton code)Framework 도입의 장점
개발을 쉽고 편하게 해준다 : 프레임워크의 내부는 복잡할 수 있지만 프레임워크를 사용하는 방법은 쉽다
심플한 코드 : 코드의 중복을 제거, 코드내의 복잡함을 제거
뛰어난 생산성 : 표준화된 심플한 코드작성을 유도
건전한 디자인/아키텍처 : 프레임워크가 가진 디자인 구조와 의도가 자연스럽게 적용
애플리케이션의 요구사항을 구현하는데 집중 : 난이도가 높은 기술적인 세부사항에서 자유
Framework 도입의 단점
새로운 기술에 대한 적응시간 필요 : 개발팀 교육의 부담
기술적 시행착오 : 프레임워크에 대한 충분한 이해 부족, 애플리케이션 레벨의 프레임워크 사용전략 부재
적절하지 못한 프레임워크 도입으로 개발의 부담 가중
프레임워크에 종속적인 시스템 : 유연성이 떨어지는 프레임워크 도입
FBD (Framework Based Development)
oss : Java 기반의 오픈소스 Framework 연구용 테스트 애플리케이션
오픈소스 도구
프로젝트 관리 도구
웹 기반 프로젝트 관리
Basecamp, [http://www.basecamphq.com/ 사이트] : 블로그 기반으로 RSS, milestones, To-Do List, 아웃룩 , IM연동 , E-mail을 지원
Issue Tracking
Trac, [http://trac.edgewall.org/ 사이트] : Issue tracking, Wiki, Subversion의 조합으로 다양한 버그 트랙킹, 요구사항 트랙이 가능
Roundup, [http://roundup.sourceforge.net/ 사이트] : 심플, Python으로 개발됨
일정 및 리소스 관리
GanttProejct, [http://ganttproject.sourceforge.net/ 사이트] : Ms Porj3ect와 유사한 기능 지원, 한글지원 안됨
jxProject, [http://www.jxproject.com/ 사이트] : 기능 심플하고 프로젝트 관리 편리함, 한글 지원
형상 관리
CVS, [http://www.gnu.org/software/cvs/ 사이트] : Eclipse와 조합을 이루어 가장 널리 쓰임, Unix기반으로도 사용
Subversion, [http://subversion.tigris.org/ 사이트] : CVS를 보완한 웹 기반의 소스 버젼 관리, Trac과 연동하여 요즘 사용하는 추세가 가파르게 상승
문서 보관
DNKA, [http://dnka.com/ 사이트] : 검색과 다운로드가 가능한 웹 기반의 문서저장소 개발 가능
설계
gModeler, [http://www.gskinner.com/gmodeler/app/run.html 사이트] : 웹 기반의 UML 툴
Gliffy, [http://www.gliffy.com/ 사이트] : 웹 기반의 Vision - UML 지원
아키텍쳐 도구
SOA의 구성요소인 ESB 툴
ChainBuilder ESB : 이클립스와 결합하여 ESB 설계가 가능
GlassFish, [http://glassfish.dev.java.net/ 사이트] : Jboss, Webshpere와 결합하여 Open Message Queue기능 구현이 가능
BPM
Drools, [http://drools.codehaus.org/ 사이트], Rule-based 엔진(JSR-94)을 기반
개발 도구
개발 환경
[Apache ANT 1.7.0](Apache ANT.md), [http://ant.apache.org/ 사이트] : Java build 도구
Maven, [http://maven.apache.org/ 사이트] : 프로젝트 관리 및 빌드
Eclipse, [http://www.eclipse.org/ 사이트] : IDE기반의 개발 툴
Junit, [http://www.junit.org/ 사이트] : 단위 테스트 향상으로 코드의 품질 향상
Framework
Spring Framework, [http://www.springframework.org/ 사이트] : POJO, AOP, IoC, OR 매핑 프레임웍을 지원
Struts, [http://struts.apache.org/ 사이트] : MVC 모델 구현
Hibernate, [http://www.hibernate.org/ 사이트] : 객체를 RDB에 매핑해서 저장하는 ORM(Object-Relational Mapping) Tool
Velocity, [http://jakarta.apache.org/velocity/ 사이트] : 템플릿 기능 사용으로 개발 생산성 높임
FreeMarker, [http://freemarker.sourceforge.net/ 사이트] : Velocity와 같은 templating언어임
Ajax구현 개발 라이브러리
aSSL, [http://assl.sullof.com/ 사이트] : Ajax Secure Service Layer로 HTTPS없이 ssl서버스 가능하므로 Ajax기능 구현시 보안 문제 커버 가능
DWR, [http://getahead.ltd.uk/dwr/ 사이트] : Java기반의 원격 호출 라이브러리
Dojo, [http://www.dojotoolkit.org/ 사이트] : Javascript toolkit
Prototype, [http://prototype.conio.net/ 사이트] : 객체 지향적 자바스크립트 라이브러리
Rico, [http://openrico.org/ 사이트] : 오픈 소스 기반의 자바 스크립트 라이브러리
Scriptaculous, [http://script.aculo.us/ 사이트] : 오픈 소스 기반의 자바 스크립트 라이브러리
JFreeChart, [http://www.jfree.org/jfreechart/ 사이트] : 통계 프로그램 등에 유용한 차트 지원
성능
Eclipse의 TPTP 프로젝트, 사이트 : Performance Tuning 지원
Bcel, [http://jakarta.apache.org/bcel/ 사이트] : Byte Code Engineering Library로 바이너리 코드를 진단하여 트래픽 진단 및 에러 발견 등의 성능 진단 프로그램 개발 가능
운영 도구
WAS모니터링 툴 : Bcel 확장으로 Java기반 어플리케이션 모니터링 가능
Quartz : Job Scheduler로 응용하여 배치 작업 모니터링 및 스케쥴링 가능)
참고 문헌
애니프레임 자바(Anyframe JAVA) : 삼성에서 오픈소스로 공개한 어플리케이션 플랫폼
GLAMJI 플랫폼 : 다음의 개발환경을 이루고 있는 플랫폼
분류: 오픈소스_Framework
비즈니스
Framework