728x90
728x90
이전에 작성한 easy rules 사용 [9] 포스팅의 응용에 대하여 작성해보겠다. MVEL Rule을 사용하면서, 여러 조건을 하나의 Rule에 등록하는 것과, Rule을 거치며 return 하고자하는 변수를 담는 것에 집중하고자 한다. MVEL Rule 응용 방식 우선 아래의 소스코드를 확인하자. 필자가 포스팅한 가장 기본적인 형태의 MVEL Rule의 형태이다. public static void main(String[] args) { // facts 정의 Facts facts = new Facts(); facts.put("position", true); // rules 정의 Rule testMVELRule = new MVELRule() .name("MVEL rule") .description("MV..
Swagger Annotation (1) ← 본문 링크 Swagger Annotation (2) ← 본문 링크 Swagger Annotation (3) ← 작성 예정 이전 포스팅에서 Swagger의 기본 개념 및 JAVA Spring Boot 환경에 사용하는 방법에 대하여 알아보았다. 이번에는 Annotation에 대하여 알아보고자 한다. Swagger Annotation을 이용하여 API 명세 화면(swagger-ui.html)을 보다 쉽게 Control 할 수 있다. Swagger Annotation(간략) @ApiIgnore class에 붙여 사용하는 Annotation ui 화면에서 보이지 않도록 ignore 설정을 가능케한다. @Api class에 붙여 사용하는 Annotation ui 화면에 ..
Swagger Swagger란 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태계의 지원을 받는 오픈 소스 소프트웨어 프레임워크이다. 필자가 직접 사용해본 결과, 사용방법이 무척이나 간단하며 편리하게 API 문서화를 진행할 수 있다. 단점이라고 한다면, 이미 어느정도 개발이 완료된 프로젝트에 대해서는 적용이 다소 어려울 수 있다는 점이다. 이미 생성해놓은 모든 API에 별도 적용을 거쳐야 하기 때문이다... 신규 프로젝트에 도입할 때에는, 개발자들이 API Annotation 양식을 지켜가며 작성을 하게 함으로써 아주 간단하게 API 문서화를 할 수 있겠지만 말이다. 하단 출처에 적혀있는 Swagger 홈페이지에서 Demo 및 사용방법 등과 같은 정보를 확인할 ..
SSL ignore - URL Connection - File Download [2]URL Connection을 이용한 File Download [1]에서는, Stream을 이용하여 진행하였다.URL Connection을 이용한 File Download [2]에서는, Resource를 이용하여 진행할 것이다. 이전에 작성한 URL Connection을 이용한 File Download [1]을 참고하도록 하자. 해당 게시물을 보면 다음과 같이 구성이 되어있음을 알 수 있다.SSL ignoreHttpsURLConnectionFile Download 1번과 2번까지는 같은 내용을 다룰 것이다. File Download 방식을 변경할 것이기에, 이전 포스팅에서 1번과 2번까지 테스트를 마치고 아래의 내용을 보..
SSL ignore - URL Connection - File Download [1] URL Connection을 이용한 File Download [1]에서는, Stream을 이용하여 진행할 것이다. URL Connection을 이용한 File Download [2]에서는, Resource를 이용하여 진행할 것이다. URL Connection을 이용한 일종의 GateWay 역할을 담당하는 서비스를 구축해보고자 한다. 최종적으로는 URL Connection으로 특정 URL의 data를 읽어와, File Download를 JAVA가 대신하도록 할 것이다. 포스팅을 쓰는 까닭은, 필자가 해당 업무를 진행하며 기본적으로 URL Connection을 사용하는 방법부터, 해당 URL의 자체 SSL 인증으로 인해 J..
반복문 반복문이란, 말 그대로 특정 조건을 만족할 때까지 반복하는 구문을 일컫는다. 쉽게 생각해보자. 당신은 숫자를 헤아리고자 한다. 10번을 헤아린다고 컴퓨터에게 명령을 내리는 것, 그것이 바로 반복문이다. 기본 개념 for ( int i = 0; i < 10; i++ ) { System.out.println(i); } for ( int i = 0; i < 10; i++ ) for : for문을 사용하겠다는 선언 int i = 0 : 얼마나 반복할지, 최초 숫자 i < 10 : 얼마나 반복할지, 최대 숫자 - 범위를 설정(10번 미만까지 반복하겠다) i++ : 얼마나 반복할지, 최초 숫자로 부터 증가값(1씩 늘리겠다) 위의 반복문 예시를 실행할 경우, console 창에는 0부터 9까지 찍힐 것이다. ..
mybatis를 사용할 때, parameterMap 및 parameterType, resultMap 및 resultType을 선언하여 사용한다. 이 친구들에 대해 알아보도록 하자. 간단하게 정리하면 다음과 같이 정리할 수 있다. parameterMap : 비즈니스 로직으로부터 전달 받은, SQL 구문에 사용될 매개변수를 담은 객체 parameterType : 비즈니스 로직으로부터 전달 받은, SQL 구문에 사용될 매개변수의 자료형 resultMap : 비즈니스 로직으로 반환할, 결과값을 담은 객체 resultType : 비즈니스 로직으로 반환할, 결과값의 자료형 [ parameterMap ] 정해진 형태를 갖춰 매개변수를 전달받을 때 필자는 VO를 사용하여 정해진 형태의 값들을 SQL 구문에 전달하여 사..
mybatis를 통하여 data의 존재 유무를, count를 통해 반환하도록 작성하였다. 그랬더니 다음과 같은 오류가 발생하는 것을 확인하였다. 원문 : attempted to return null from a method with a primitive return type (int). 번역 : 원시 반환 형식(int)을 사용하여 메서드에서 null을 반환하려고 했습니다. 말 그대로, null 값을 처리할 수 없는 int type에 null 값(혹은 공백)이 들어간다는 오류이다. 해결 방법은 간단하다. return 되는 과정을 int 에서 Integer로 치환만 시켜주면 된다.
MVEL Rule 환경 설정 MVEL Rule을 이용하여 easy rules 응용을 진행해보겠다. 우선 easy rules 및 MVEL Rule을 사용하기 위한 maven 추가를 진행하겠다. org.jeasy easy-rules-core 4.1.0 org.mvel mvel2 2.4.12.Final MVEL Rule 사용을 위한 component를 생성하도록 하자. easy rules 사용 [3] MVEL Rule 게시물의 'MVELRule을 이용한 규칙 생성에 필요한 Component' -를 참고하면 된다. 다음의 class 파일들을 적당한 위치에 놔두도록 하자. MVELAction.java MVELCondition.java MVELRule.java MVEL Rule 응용 방식 이전 포스팅에서 필자가 M..
예시 [1] 단일 조건 이전에 작성한 easy rules 사용 [1] 게시물의 예시를 작성해보겠다. 메인이 되는 class를 다음과 같이 수정하겠다. 이번 예시에서는 다른 controller의 method를 가져다 쓰는 테스트를 진행하기에, main method 상단에 test method를 생성하도록 하겠다. 규칙을 정의하는 controller를 import 하는 것도 잊지말자. import org.jeasy.rules.api.Facts; import org.jeasy.rules.api.Rules; import org.jeasy.rules.api.RulesEngine; import org.jeasy.rules.core.DefaultRulesEngine; import easyRulesTest.contro..