본문 바로가기
728x90

📚Framework & Library21

[Junit] Jasper Report PDF 문서 검증하기 (feat. JpdfUnit) JasperReport 라이브러리를 사용하여 PDF형식의 보고서를 생성할 때 데이터가 제대로 가공되어 보고서가 정상적으로 생성 되는지 테스트 하기 위해 JpdfUnit을 사용하게 되었다. *JasperReport에 대한 내용은 해당 글 참조. https://inbeom.tistory.com/entry/JasperReports-JasperReports%EB%9E%80-feat-Jaspersoft-Studio 기존 Java에서는 Junit을 사용하여 데이터를 검증하고 서비스 로직 등을 테스트 하지만 JasperReport를 사용하여 생성한 PDF형식의 보고서의 데이터를 검증하기 위해서는 다른 방법이 필요하여 리서치를 통해 여러 개발자들이 PDF 데이터 검증에 활용하고 있는 JpdfUnit이라는 오픈소스 프레.. 2024. 1. 23.
[Junit] Elasticsearch Unit(Integration) Test Code 작성하기 Spring에서 Junit을 사용하여 Elasticsearch 테스트 코드를 작성하는 방법 Spring 프로젝트에서 Junit으로 Test Code를 작성할 때 RDB(Mysql, Postgresql, Orcle 등)는 JPA나 MyBatis의 Queyr(method)를 사용하여 결과값을 간단히 검증할 수 있지만 Elasticsearch의 경우 org.elasticsearch에서 제공하는 Library를 활용하여 TEST CODE를 효율적으로 작성할 수 있다. 기존에는 ES 임베디드 환경을 사용하여 테스트가 가능했지만 7.0 버전부터 사용이 불가능해진 것으로 보이며 ES의 개발자가 대안으로 RestHighLevelClient를 사용한 In Memory 테스트 방법을 추천한다. https://discuss.. 2024. 1. 23.
[Junit] Test 종류. Test Case (feat. 전자정부 프레임워크) 테스트는 소프트웨어 개발 생명주기에서 매우 중요한 부분을 차지한다. 테스트를 잘 하면 버그 감소와 유지보수 용이성, 코드 문서화, 개발 생산성 향상 등의 측면에서 유리하다. White Box Test (구조 기반 테스트) 소프트웨어의 내부 구조와 동작을 검증하는 테스트로 개발자가 코드의 내부 로직, 제어 흐름, 데이터 흐름 등을 이해하고 테스트 케이스를 작성하는 방법이다. 코드의 모든 경로와 조건을 확인할 수 있어 Code Coverage가 높지만, 개발자의 시각에 의존하므로 완전한 테스트는 힘들다. Black Box Test (기능 기반 테스트) 소프트웨어의 내부 구현을 알지 못하고 기능에만 초점을 맞춘 테스트로 시스템이 요구 사항을 만족하는지 여부를 확인하는 것이 목표이다. 사용자의 관점에서 테스트하.. 2023. 11. 17.
[Junit] TypeReference, JsonPath - Json 다루기 (feat. ObjectMapper) Junit을 사용하여 Integration Test Case 작성 중 데이터 검증로직을 구현할 때 유용하게 사용할 수 있다. TypeReference란? TypeReference는 Jackson 라이브러리에서 제공하는 클래스로, 제네릭 타입을 사용하는 경우에 JSON 데이터를 해당 제네릭 타입으로 역직렬화할 때 유용하다. Jackson은 제네릭 타입 정보를 유지할 수 없기 때문에 이러한 경우에 TypeReference를 사용하여 타입 정보를 보존한다. Example > List list = new ObjectMapper().readValue(responseContent, new TypeReference(){}); @Test //Todo. User 리스트 조회 테스트 @Transactional public.. 2023. 11. 17.
[Junit] Junit4 다양한 라이브러리 활용 (feat. AssertJ, Unitils, RestAssured) Test Code를 작성하려면 Junit만 사용해도 되지만 Test Code에 대한 가독성이나 편리성을 높여주는 라이브러리들을 활용하면 더 쉽고 편하게 코드를 작성할 수 있다. Junit에 대한 기본적인 내용은 이전 글 참고! https://inbeom.tistory.com/entry/JUnit-JUnit%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EA%B8%B0%EB%B3%B8-%EC%A0%95%EB%A6%AC Junit 기반 테스트 코드를 작성할때 활용할 수 있는 여러 라이브러리가 있지만 가장 많이 사용되는 것은 AssertJ, Unitils, RestAssured 3가지가 있다. AssertJ AssertJ는 Java기반의 객체 지향적인 방식으로 테스트 코드를 작성할 수 있.. 2023. 11. 17.
[JasperReports] 05. Java) JasperPrint Export. 보고서 출력 JasperSoft Studio로 생성한 Report(.jrxml)파일을 출력하는 방법 1. Library Setting 1. Library 의존성 추가: net.sf.jasperreports jasperreports 6.4.0 2. jasper File Directory 생성: jasper studio에서 common directory를 경로로 잡았기 때문에 studio에서 .jrxml 파일을 수정하고 저장하면 자동 반영된다. 2. Report 요청 - Controller @ResponseBody @RequestMapping(value = "/searchReport01", method = RequestMethod.GET) public void searchReport01(Model model, HttpS.. 2023. 10. 20.
[JasperReports] 04. Parameter, Variable, Dataset (Style) JasperReports에 데이터를 삽입하는 방법 1. Parameter Parameter: 외부에서 값을 전달받아 사용할 수 있는 변수로 동적으로 값을 생성하거나 보고서의 동작을 제어하는 데 사용된다. // 3. java) parameter 전달: Map parameters = new HashMap(); parameters.put("ReportTitle", "Sales Report"); JasperPrint jasperPrint = JasperFillManager.fillReport("YourReport.jasper", parameters, dataSource); 2. Variable Variable: 데이터를 계산하고 저장하기 위한 요소로 이를 통해 보고서에서 다양한 계산을 수행할 수 있다. // 3.. 2023. 10. 19.
[JasperReports] 03. Elements 구성요소 JasperSoft Studio에서 사용하는 Elements설명 Elements 목록 Properties 지정 *Element 선택 시 나오는 Properties 창에서 font, color, size 등 Style을 지정할 수 있다 (source화면에서 code로 작성 가능) Elements 구성 Text Field: 문자, 숫자 등 작성. (변수) 주로 parameter를 받을 때 사용한다. Variable, Paramter를 선택하여 삽입 가능 ex> $P{reportTitle1} Static Text: 문자, 숫자 등 작성. (상수) Table: 표 형식의 테이블. Table Column에 TextField, StaticText등 요소를 삽입하여 테이블 구조 세팅 $F{Field_name}을 사용.. 2023. 10. 19.
[JasperReports] 02. Report Design / Source JasperSoft Studio의 주요 화면에 대해 알아보자 Design화면: GUI로 직관적으로 확인하며 보고서를 수정하는 화면이다. - Elements를 추가, 수정하고 작업한 내용은 Source code로 자동으로 생성된다. Source화면: Design 화면에서 작업한 것을 코드로 확인하는 화면이다. (.jrxml) - Code를 사용하여도 Elements, Style등을 구성할 수 있지만 Design화면을 활용하는 것을 좋다.. 주요 Tag .jrxml 파일에서 주로 사용하는 tag 설명 : report를 정의하는 최상위 요소 : report의 속성 설정 : style을 정의하고 재사용 : sub dataset을 정의하여 report의 sub report에 데이터 제공 (table, chart .. 2023. 10. 19.
728x90