Spring 3.2 부터 이 @ControllerAdvice가 생겼다고 한다.컨트롤러 서비스 퍼시스턴스 단에 발생할 수 있는 예외를 이 어노테이션을 지정한 클래스에서 공통적으로 관리 해 줄 수 있다. 사용 방법은 간단하다.(세부적으로 들어가면 간단하지 않음.) 보는 것처럼 스프링 빈을 정의해주는 config파일에 구문을 넣어준다.context:component-scan이라는 것은 bean엘리먼트를 정의하지 않아도 자동으로 해당 패키지에 있는 @compoenet, @service, @controller 등을 알아서 스캔해 인스턴스를 생성해준다. 안에 있는 context:include-filter는 스프링이 제공하는 기본필터를 사용하지 않고 @ControllerAdvice의 클래스를 사용하겠다는 뜻.. 다음..
Thread 쓰레드는 프로세스에 포함되는 자원이다.프로세스란 실행중인 프로그램이며, 프로그램을 실행할 때 필요한 자원이 하나 이상의 쓰레드이다. 하나의 프로세스에 하나의 쓰레드만 있다면 싱글 쓰레드 프로세스라 부르고, 하나의 프로세스에 하나 이상의 쓰레드가 있다면 멀티 쓰레드 프로세스라고 부른다.옛날에 쓰던 DOS환경을 보통 싱글쓰레드, 요즘 쓰는 windows환경을 멀티쓰레드로 이해하면 되겠다. 자바에서 콘솔 프로그램을 짤 때 public staitc void main(String[] args)라는 메서드가 있는데 이것조차도 하나의 쓰레드이다. 아래의 쓰레드 예제는 쓰레드를 생성하는 두가지 방법을 코딩한 것이다.쓰레드를 생성하는 방법은 Runnble인터페이스를 구현하는 방법과 Thread클래스를 상속하..
소스코딩을 하면서 JDBC연결에 필요한 username, password, url 같은 접속 정보나 로컬호스트와 서버의 파일 저장 경로같은 설정을 기존에는 MessageSource기능을 이용해서 사용하였는데..이 방법의 단점은 자바의 controller단에서 request객체를 이용하여 서버의 url을 가져온 다음에 조건문으로 localhost나 127.0.0.1, 192.168.x.x 같은 호스트가 포함되어 있으면 로컬이라하고 아니면 서버로 구분한 문자열을 service단으로 넘겨서이문자열을 플래그 값으로 해서 실서버 환경인지 로컬작업 환경인지를 구분하는 조금 복잡한 구조를 가지고 있었는데.. 어떻게 다른 방법이 없나 하다가 profile이라는 기능을 발견하게 되었다. 사용방법은 의외로 간단하면서 유용..
본인은 닷네임 코리아에서 네임서버를 신청했다. 닷네임코리아 - 도메인관리 - DNS 설정 - 네임서버 변경 보시다시피 네임서버 정보에 1차,2차,3차,4차에 카페24의 웹호스팅 네임서버를 적어주었다.(네임서버는 카페24의 홈화면 왼쪽 하단에 있으며, 위의 경우는 웹호스팅일 경우이고, 서버호스팅일 경우에는 네임서버가 다르니 참고.) 그리고 카페24의 나의서비스관리 - 호스팅관리 - 도메인연결관리 - 도메인 직접 입력하기 에서 닷네임코리아에 신청한 도메인명(위의 사진 예 : a.net) 을 입력한다. 적용은 내 경우엔 신청한지 꽤 지나서 그런지 몰라 바로(10분 이내) 되었지만, 처음 설정할 때는 24시간이 걸릴 수도 있다고 했으니 알아두자.
본인의 OS : centos 6.X 설치 ### 필수 패키지 설치 ### # yum install gcc gcc-c++ make automake unzip zip xz kernel-devel-`uname -r` iptables-devel ### perl-Text-CSV_XS 설치 (2가지) ### 1) 직접 rpm으로 설치하는 방법 http://pkgs.repoforge.org/perl-Text-CSV_XS/ 에서 최신 버전을 확인하고 설치해준다. # rpm -Uvh http://pkgs.repoforge.org/perl-Text-CSV_XS/perl-Text-CSV_XS-0.80-1.el6.rf.x86_64.rpm 2) rpmforge repo 를 추가하여 yum으로 설치하는 방법 # rpm -i ht..
DNS 서버의 잘못된 설정을 이용한 분산 반사 서비스 거부 공격 (DRDoS 공격)의 형태인증 절차가 존재 하지 않는 DNS 서버의 경우 Reflector로 사용되어 공격에 사용될 수 있습니다. 방법(vi /etc/named.conf) recursion no;additional-from-auth no; additional-from-cache no;Then restart named so that it will use the new secure options:/etc/init.d/named restart
메이븐 의존 라이브러리 주입 javax.validation validation-api 1.1.0.Final org.hibernate hibernate-validator 5.2.2.Final org.hibernate hibernate-validator-annotation-processor 5.2.2.Final @Valid를 사용하기 위하여 스프링 컨테이너에 빈 등록 모델클래스에 어노테이션 기반의 검증 코드 작성 컨트롤러단에 적용@ModelAttribute 로 받은 모델 객체가 @Valid 적용이 되어 있다면 수행BindingResult 타입으로 성공 실패 여부 판단
몇일전에 디도스 공격을 당해서 클라우드 호스팅중인 업체에서 하룻동안 서버를 정지시켰다. 공부겸 사이트를 만드는 것이라 누가 접속할 것이라고는 생각도 못했다. 그래서 톰캣에 로그를 남기고 비정상적으로 많은 접속을 하는 아이피를 차단하기 위해 톰캣차원에서 로그를 남기기로 했다. centos 기준...톰캣에 로그기록을 남기기 위한 설정은 다음과 같다./etc/tomcat6/server.xml 파일 내용 중 아래 부분(Valve엘리먼트)의 주석을 제거한 후 Tomcat을 재시작하면 된다. (초기에는 주석처리가 되어있다.) 아래와 같이 수정했다.(아래의 엘리먼트가 위치할 곳은 Engine엘리먼트 내부이다.) 참조: http://tomcat.apache.org/tomcat-5.5-doc/config/valve.ht..
File newFile = new File(path, fileName); if(!newFile.exists()){ newFile.mkdirs(); newFile.createNewFile(); } 리눅스에서는 파일에 생성에 대한 기본권한이 644 이다. (폴더의 기본 권한은 755) umask 라는 커맨드에서 초기값이 022로 되어있는데..이것을 토대로 폴더(디렉토리)는 777-022 = 755파일은 666-022 = 644파일이 666인 이유는 etc쪽의 설정파일에서 설정 값을 잡고 있는 듯 하다. 644란100의 자리 숫자인 6은 root사용자의 권한을 나타내고10의 자리 숫자인 4는 그룹에 속한 사용자를 나타낸다.그리고 1의 자리 숫자인 4는 그 외의 사용자를 지칭한다. 파일이나 폴더에 대한 허가권으..
cnetos를 사용중인데 사이트를 배포하고 접속해서 로그인을 해보니 처음엔 글자가 깨지더니 두번째로한글을 인서트하니 데이터베이스 에러를 내뿜었다. show create table 테이블이름;테이블의 정보를 보는 것으로 결과의 마지막에 charset이 라틴어로 되어있어서 한글을 처리하지 못한 것이다. 테이블을 생성할 때 디폴트 캐릭터셋을 설정하기 위해서는 다음 경로의 파일을 수정한다.# vi /etc/my.cnf 파일을 열었으면 아래와 같이 수정한다.[client]default-character-set = utf8 [mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recomm..
1. 우선 구글 계정 가입을 한다. 2. https://www.google.com/settings/u/1/security/lesssecureapps 이곳에 가서 보안 수준을 사용으로 한다. 3. spring에서 메일 관련 라이브러리를 pom.xml에 의존성 주입 - javax.mail mail - org.springframework.integration spring-integration-mail 4. 스프링 컨테이너인 root-context.xml에 관련 빈을 정의한다. helpMailSendableJavaMailSenderImpl을 주입받고 실제로 메일을 보내는 일을 담당하는 사용자 정의 인터페이스 JavaMailSenderImpl메일을 보내기 위하여 여러가지 값을 설정, 제공하는 인스턴스 smtp.g..
테이블에 새로운 칼럼 추가 alter table 테이블명 add column 추가칼럼명 타입선언 not null; 테이블의 칼럼타입 변경 alter table 테이블명 modify column 칼럼명 변경할타입선언 ; 테이블의 칼럼이름 변경 alter table 테이블명 change column 기존칼럼명 변경칼럼명 타입; 테이블 칼럼 삭제 alter table 테이블명 drop column 칼럼명; 칼럼에 인덱스 선언 alter table 테이블명 add index 부여하고싶은인덱스명( 칼럼명1, 칼럼명2, ........ ); 칼럼 인덱스 삭제 alter table 테이블명 drop index 인덱스명; 테이블명 변경 alter table 원본 테이블명 rename 새로운 테이블명; 테이블 엔진 및 ..
먼저 yum 패키키 설치 명령어로 svn 패키지를 설치합니다.# yum -y install subversion 저장소로 사용할 디렉토리를 생성합니다. (저는 root경로에 web디렉토리를 저장소로 하겠습니다.) # mkdir /svn# cd /svn# svnadmin create 만들저장소명저장소를 위치시킬 디렉토리를 하나 만들고, 만든 디렉토리로 이동 후 svnadmin 명령으로 저장소를 만듭니다. 이제 /svn/저장소명 경로에 svn에 설정 폴더들이 생기게 됩니다.그중에서 conf디렉토리에 있는 svnserve.conf 파일을 vi로 열어서 다음항목의 주석을 해제합니다,anon-access=readauth-access=writepassword-db=passwd여기서 중요한 부분은 각 항목의 앞부분에 ..