솔찍히 조금만 구글링을 하면 보다더 자세히 설명해주고 있는곳이 많지만 제가 필요할때 마다 참조하려고 개인적정리입니다. (즉 대충... 자세한 설명은 생략)

1. redmine DB 백업
mysqldump -uroot -p비밀번호 redmine디비명 | gzip > /백업경로/redmine_`date +%y_%m_%d`.gz

2. redmine 첨부파일백업
rsync -avz --delete /redmine설치경로/files /백업경로
or
rsync -avz --delete -e ssh /redmine설치경로/files 사용자계정@서버아이피:/원격의백업경로

-a : 심볼릭 링크, 속성, 퍼미션, 소유권 등 보존
-v : 자세한 정보출력
-z : 전송시 압축
-r : 하위디렉토리포함
-e ssh : ssh를 이용한 rsync 동기화
-- 서버동기화후 원본에서 파일이 삭제되면 백업에서도 파일을 삭제

3. 일정날짜가 지난 백업파일을 삭제
find /백업경로 -name *.gz -mtime +90 -delete

4. 위의 과정을 진행하는 sh 파일작성
vim bkscript.sh

5. crontab 을 사용하여 주기별로 sh 파일을 실행
#분 시 일 월 요일(월=1 화=2 ... 일=7)
0 6 * * 6 /백업경로/bkscript.sh

참조
http://khtinsoft.egloos.com/379902
http://blog.nul.kr/246
저작자 표시
Posted by 빨강토끼
maven 으로 jar 를 생성하여 배포할때 종속적인(dependency) 라이브라리들이 실행시 필요합니다.

war 프로젝트는 WEB-INF 라는 폴더아래로 필요한것들을 넣어주지만 jar에서는 일일히 dependency로 추가된
라이브러리들을 처리하는것이 무척 귀찮고 막막합니다.

하나씩 잡아줘보지만 한두개도 아니고....
이럴땐 2가지 방법이 있습니다.

첫번째는 dependency를 따로 폴더안으로 모두 복사해오는 것입니다.
아래와 같이 플러그인을 추가하고 goal로 install을 실행하면 모든 dependency 들이 lib안으로 복사되어 모입니다.



두번째방법은 jar 안에 모든 dependency를 포함시키는 것입니다. jar하나로 모든 라이브러리들이 포함되어 실행이 되는 구조입니다. 당연히 파일크기가 커지겠지요.



그리고
maven assembly:assembly 라고 콘솔에서 실행하면
abc-0.0.1-SNAPSHOT.jar
abc-0.0.1-SNAPSHOT-jar-with-dependencies.jar

위와 같이 라이브러리가 포함된 jar와 일반 jar 가 생성된것이 보입니다.

참조

http://entireboy.egloos.com/4615383
http://redrebel.tistory.com/entry/maven-으로-생성한-jar-파일이-실행이-안될때-NullPointerException
저작자 표시
Posted by 빨강토끼


좋은 코드의 정의
-유지보수성이 높다
-신속하고도 효율적으로 동작한다.
-정확하게 동작한다.
-불필요한 부분이 없다.

코드를 분할 하는 이유
-가독성의 향상 : 매소드의 사이즈가 100행이 넘으면 가독성이 떨어짐, 30행이 적당함.
-유지보수성의 향상
-재이용성의 향상

내부클래스의 장점
-실제로 사용되는 장소 바로근체에 클래스가 있으므로 알기 쉽다.
-원래 클래스와의 의존관계(dependencies)를 static으로 제어할 수 있다.
-새로운 파일을 늘리지 않아서 좋다.

추상화의 예
-공통적인 처리를 정리하여 부모클래스를 작성하기
-데이터베이스의 접속 정보를 설정파일로 외부 추출하기
-비슷한 행동( 메소드)을 인터페이스로 추출하기

추상화란 '비슷한 것을 동일하게 취급함으로써 프로그램을 간단하게 하는것' 이다.


저작자 표시
Posted by 빨강토끼