분류 전체보기 850

mysql 외부접속 허용하기

mysql이 외부로도 서비스가 가능하게 하려면,몇 가지의 확인사항과 그 외에 추가적인 설정을 해야 할 필요가 있습니다. mysql이 설치된 서버의 운영체제를 명시해주시지 않아서,유닉스 계열 운영체제라 가정하고 설명드리겠습니다. #1.우선, 기본적으로 mysql 은 tcp 3306 번 포트를 통해 서비스를 제공합니다.따라서, 외부에서 DB에 접근할 수 있도록 하기 위해서는서버의 tcp 3306 번 포트가 방화벽에 막혀 있지는 않은지 확인해야 하며만약 막혀 있을 경우 열어주어야 합니다. iptables -L 명령으로 차단/허용 리스트 조회가 가능합니다. 만약 포트가 막혀 있을 경우, # iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 명령으로 열어주시면 됩니다. #2.그..

데이터베이스 2014.05.28

proxy joinPoint 확장

//이놈은 좀 확장된놈임, around에 알맞는놈. 따로따로 만들필요가읍어 //트랜젝션은 이런 형태가 될것임. public Object aroundLogging(ProceedingJoinPoint joinPoint) { Object obj = null; //proceed() 타켓을 호출하라! try { //before //여기서 리턴하면 그 이후가 안됨.타겟이 실행안됨.. //매개변수가 잘못됐으면 그냥 실행하지 않게 할수있다 obj = joinPoint.proceed(); //after-returning } catch (Throwable e) { //after-throwing e.printStackTrace(); } finally { //after } return obj; }//end aroundLogg..

공통로직 @Aspect위에 @Order를 넣어서 순서를 줘보자

@Order(1)@Aspect@Component 숫자가 클수록 핵심로직에 가깝게 돈다여러개의 공통로직이 들어가야할경우, 그 순서가 중요할때가있다퍼포먼스체크 로직일경우, 최대한 가깝게 돌아야 제대로 체크할수있기때문이다.이를 컨트롤 하기위해 Order를 크게주면 된다. .proceed()는 다음 모듈을 시작하라는뜻인데,이게 바로 타겟이 있으면 타겟으로 갈텐데, 다음에 공통로직이 있으면 글로 갈것이다.

@Aspect로 매개변수 체크를 해보자

@Aspect@Componentpublic class ParameterCheckAspect { @Before("execution(* com.gorakgarak.sample2.annotation.GreetingService.*(*))") public void checkNull(JoinPoint joinpoint) { if(joinpoint.getArgs()[0] == null){ throw new IllegalArgumentException("매개변수가 null입니다."); } } }//end public class //이건 아예 에러가 뜨게 만들어준다.//이 처리가 없다면 그냥 메인에서 null이 출력될것이다 걍 에러뜨기 싫다면 @Aspect@Componentpublic class ParameterChe..

직관적이고 간단한 Spring MVC구조

Spring MVC View-------------------------------(Boundary)동기 (html, JSP)비동기 (xml,JSON) Model---------------------------------------Service계층 - XXXServiceDAO계층 - XXXDAODomain(Value) - VO Controller--------------------------------------View와 Model(Service) 사이의 중계자 역할을 하는 놈!1. parameter를 조회하고2. Service호출3. 결과Data저장4. 페이지 이동(View) 바뀌지않는 요청처리절차는 Spring에서 DispatcherServlet이 해줌.