apt-get은 패키지를 다운로딩하고 설치하기 위한 간편한 명령행 인터페이스 명령어 입니다.
가장 자주 사용되는 명령어는 update와 install 입니다.
명령어:
update - 새로운 패키지 목록을 검색
upgrade - 업그레이드를 수행
install - 새로운 패키지를 설치 (패키지는 libc6.deb 가 아닌 libc6 형태야 합니다.)
remove - 패키지 제거 <-- 완전하게 제거가 안 된다고 합니다.
autoremove - 사용하지 않는 모든 패키지들을 자동으로 제거 <-- 의존하고 있는 패키지도..
purge - 패키지와 설정 파일들을 제거
source - 소스를 다운로드
build-dep - 소스 패키지에 대한 빌드 의존성을 설정
dist-upgrade - 배포판 업그레이드, apt-get(8) 참조
dselect-upgrade - dselect 선택을 따름
clean - 다운로드한 압축 파일들을 제거
autoclean - 다운로드한 오래된 압축 파일들을 지움
check - 깨진 의존성이 없는 지 검토
옵션:
-h 이 도움말 텍스트.
-q 로깅할 수 있는 출력 - 진행상태가 표시되지 않음
-qq 출력을 하지 않음 (단, 오류는 출력됨)
-d 다운로드만 함 - 설치나 압축해제는 하지 않음
-s 실제 동작은 안 . 시뮬레이션을 수행하도록 함
-y 모든 질문에 대해 예로 대답하고, 물어보지 않음
-f 의존성이 깨진 시스템을 고치기 시도
-m 압축 파일들을 찾을 수 없을 때 계속해서 시도
-u 업그레이드된 패키지 목록을 보여줌
-b 패칭한 후에 소스 패키지를 빌드
-V 버전 번호를 보여줌
-c=? 이 설정 파일을 읽음
-o=? 다른 설정 옵션, 예. -o dir::cache=/tmp
문서를 정리하다가 전에 정리된 문서에서 아래와 같은 내용이 있어서 포스팅 합니다..
단, 출처는 생각이 안 나네요. ^^;;
The following set of command line options are recommended for running high performance server applications:
-XX:+AggressiveOpts
-XX:+AggressiveHeap
-XX:ParallelGCThreads=2
-XX:InterpreterProfilePercentage=10
-XX:CompileThreshold=35000
-XX:OnStackReplacePercentage=80
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:AllocatePrefetchStepSize=128
-XX:AllocatePrefetchStyle=2
-XX:AllocatePrefetchDistance=1024
-XX:+UseCompressedOops if heap size is less than 32GB
-Xmx, -Xms, -Xmn should have sufficiently large values.
(For example, -Xms6600m -Xmn5000m -Xmx6600m or -Xms20000m -Xmn18000m -Xmx20000m.)
1. 단일 책임의 원칙(SRP : Single Responsibility Principle)
- 한 객체는 하나의 책임을 져야 한다는 원칙으로 높은 응집도와 낮은 결합도를 기본으로 하고 있다.
2. 의존 관계 역전의 법칙(DIP : Dependency Inversion Principle)
- 클라이언트는 상세 클래스가 아닌 추상화(인터페이스, 추상클래스) 레이어에 의존해야 한다는 원칙으로, 확장 이슈가 있는 부분은 부분은 추상화를 해야 된다는 내용입니다.
3. 인터페이스 분리의 원칙(ISP : Interface Segregation Principle)
- 클라이언트에 특화된 여러개의 인터페이스가 하나의 범용 인터페이스보다 낫다
4. 리스코프 대체 원칙(LSP : Liskov Substitution Principle) - 상위 클래스는 파생클래스로 대체 가능해야 되는 원칙으로, 기반클래스의 기능은 파생클래스가 포함을 해야 된다는 내용입니다. 따라서, 파생클래스는 상위클래스보다 더 많은 기능을 제공을 하게 되겠습니다. 아래의 lsp.doc 파일은 전에 스터디를 하면서, C#으로 만들어본 예제입니다.
서비스 혹은 시스템을 죽이지 않고 어떻게 하면 High Scalabilty/Availability를 가져갈 수 있는지에 대한 매우 경험적인 내용이 주를 이룹니다. 각 장에서 소개하는 기법이나 툴에 대한 깊이는 좀 없는 편이지만, 그건 알아서 봐야 겠죵.. ^^.. 개발자들로 정독을 하게 되면 매우 도움이 될 것 같습니다.
아래는 Yes24에 기술되어 있는 서평입니다.
일본의 구글이라고 평가받는 ㈜Hatena와 모바일 플랫폼 서비스를 제공하는 KLab㈜의 서버/인프라 베테랑 엔지니어 6명이 실제
가동중인 시스템을 실례로 들면서 그들의 축적된 노하우를 공개한 책이다. 오픈소스 소프트웨어를 이용하여 24시간 365일 무중단
서비스를 운용하기 위한 '다중화', '성능향상', '확장성', '운용효율성'에 대해 기본적인 이론과 함께 실무에서 검증된 그들만의
팁들을 수록하였다.
'다중화'되고 '확장성'도 있으면서 성능을 최고로 끌어올리고, 효과적인 운용을 위한
서버/인프라를 구축하기 위한 힌트를 담고 있는 이 책은 서버/인프라 구축 입문에서부터 한 단계 높은 서버/인프라 구축, 무중단
인프라를 향한 디자인 등을 다루고 있다. 이후 서버의 성능을 향상시킬 수 있는 방안과 실제 운용법, 실제로 가동 중인 네트워크와
서버 인프라에 대한 내용을 다루고 있다.
오..
지금 회사에서 인턴을 통해서 개발하려고 했던 테스팅 프레임웍의 형태를 플러그인으로 구현을 해 놨네요.. HTTP4e Rest Client
아래는 HTTP4e 웹 사이트에 있는 내용입니다.
좋네요. ^^
About
Eclipse HTTP Client (HTTP4e) is an Eclipse plugin for making HTTP and
RESTful calls. Build with user experience in mind, it simplifies the
developer/QA job of testing Web Services, REST, JSON and HTTP. It is a useful
tool for your daily job of HTTP header tampering and hacking.
Features:
Making/Replaying an HTTP call directly from Eclipse IDE
Visual Editors for HTTP headers, parameters and body
Tabbed browsing (allowing replaying different RESTful, HTTP calls on
separate tabs)
History support (persisting your valuable REST calls)
One-click HTTP code generation to Java, PHP, C#, Flex/ActionScript,
Cocoa/Objective-C, Ruby, Python and Visual Basic
One-click JMeter script generation
Import and export HTTP4e replay script
Export HTTP sessions as HTML report
Import raw HTTP packets and Firefox’s Live HTTP headers
rest 기반의 웹 서비스를 쉽게 만들기 위한 framework 도입을 위해서 대충 알아보니, 아래와 같은 framework들이 존재하네요.. 흠, 몰 써야 할까요?? 모르겠넹.. ^^;;
* Restlet is a lightweight REST framework for Java
* Jersey is the open source (under dual CDDL+GPL license), production quality, JAX-RS (JSR 311) Reference Implementation for building RESTful Web services. But, it is also more than the Reference Implementation. Jersey provides an API so that developers may extend Jersey to suite their needs.
* JAX-RS: CXF has an implementation of JAX-RS 1.0 (JSR-311): Java API for RESTful Web Services. This provides a more standard way to build RESTful services in JAVA.
* JBoss RESTEasy is a JBoss project that provides various frameworks to help you build RESTful Web Services and RESTful Java applications. It strives to be standards based wherever possible, but to also innovate when appropriate.
코드를 개발하고 테스트를 하기 위해서 보통 xUnit 시리즈의 프레임웍을 많이 이용하고 있습니다..
추가로 테스트를 완료하고, 테스트한 범위가 개발한 코드의 몇 %를 했는지에 대한 척도도 매우 중요하겠지요..
Test Coverage 혹은 Code Coverage 라고 일컫는데요..
자바에서 Code를 테스트한 후에, 테스트한 범위(Coverage)에 대한 리포팅을 해주는 툴이 바로 Coverage Tool 인데요..
아래는 2개의 Coverage Tool에 대한 소개입니다.
EclEmma is a free Java code coverage tool for Eclipse, available under the Eclipse Public License.
EclEmma는 eclipse에서 plug-in 해서 버튼 실행으로도 쉽게 사용할 수 있고, JaCoCo Library를 다운로드 받아서 Ant로 리포팅(http://www.eclemma.org/jacoco/trunk/doc/ant.html)을 받을 수 있네요.. 라이브러리 보다는 어플리케이션에서 쉽게 사용하고 바이너리를 내보낼때 좋을듯 하네요..
Cobertura is a free Java tool that calculates the percentage of code accessed by tests. It can be used to identify which parts of your Java program are lacking test coverage. It is based on jcoverage.
당장 시작하는 회사들 혹은 서비스들을 위해서 Twitter나 Facebook에서 사용하고 있는 NOSQL 분류의 Cassadra같은 DB가 필요한가?? 필요하다고 생각하는 것은 정말로 중규모 이상으로 서비스가 될 것으로 예측을 하게 되면 필요하게될 것이다. 하지만, 그래도 약간의 불확실성과 성능/비용의 두마리 토끼를 잡기위한 구성으로는 아래의 조합이 가장 좋지 않나 생각합니다.