Springframework 기반에서 개발할 때 자주 사용되는 MockMVC를 활용하여 URL을 호출하고, 그 결과를 검증하는 코드 예제입니다. 이 코드는 MockMVC를 사용한 기본적인 REST API 테스트 방법을 보여주며, URL에 대한 응답을 검증하는 방식으로 작동합니다. import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.MediaType;import org.springframework.test.context.ContextConfiguration;im..
일전에 외부 시스템에게 요청을 받아 처리하는 시스템에서 제어문자로 인한 오류가 발생했었습니다.시스템 폰트를 이용해 문서 파일을 자동으로 생성하는 시스템에 (U+0008) 문자가 포함된 데이터가 수신되면서이 문자를 시스템 폰트에서 처리할 수 없어 발생한 오류였습니다.이 문자는 백스페이스(BS) 제어 문자로, 텍스트를 삭제하는 동작을 나타내는 특수문자입니다. 일부 시스템이나 에디터에서는 공백처럼 보일 수 있지만, 다른 시스템에서는 실제로 표시되지 않거나 특수 기호로 표시될 수 있습니다.송신 시스템에 제어문자를 걸러서 전송해달라고 요청할 수 있지만, 송신 시스템이 한 곳이 아니기에 일단 수신 시스템인 우리 시스템에서 해당 문자를 제거하고 내부적으로 데이터를 사용해야겠다 생각으로 다음과 같이 제어문자를 제거..
app.getProgress().getStudyDuration()과 같이 호출 할 때 progress가 null인 경우 NullPointerException가 발생하는 것이 흔한 일이었음그래서if (progress ≠ null) {}과 같이 null 체크를 해줘야했음.public Progress getProgress() { if (this.progress != null) { throw new IllegalStateException(); } return progress;}위와 같이 null 인 경우 에러를 throw 하기도 했었으나 좋은 사용 예는 아님Java8에서 부터는 비어있는 값이 있을 경우 Optional을 이용해서 처리할 수 있음public Optional getProgresS() { retur..
함수를 파라미터로 넘겨 활용할 수 있다?Function값을 하나 받아서 하나의 값을 리턴하는 형태R apply(T t)package learn;import java.util.function.Function;public class Plus10 implements Function { @Override public Integer apply(Integer integer) { return integer + 10; }}//이렇게 클래스를 만들어서 사용할 수도 있고Plus10 plus10 = new Plus10();System.out.println(plus10.apply(1));//아래와 같이 람다식으로 요약해서 사용할 수 있음.Function plus10 = (i) -> i + 10;함..
StreamStream은 데이터를 담고 있는 저장소(컬렉션)가 아니다.Functional in nature, 스트림이 처리하는 데이터 소스를 변경하지 않는다.스트림으로 처리하는 데이터는 오직 한번만 처리한다.무제한일 수도 있다. (Short Circuit 메소드를 사용해서 제한할 수 있다.)중개 오퍼레이션은 근본적으로 lazy하다.손쉽게 병렬 처리할 수 있다..parallelStream()을 사용하면 JVM이 병렬처리parallelStream을 사용한다고 무조건 빨라지는 것이 아니니 적절히 사용해야함스트림 파이프 라인0 또는 다수의 중개 오퍼레이션 (intermediate operation)과 한개의 종료 오퍼레이션 (terminal operation)으로 구성한다.스트림의 데이터 소스는 오직 터미널 오..
4월에 만지작 거리던 프로젝트를 11월 말에야 다시 열어보게 되었는데.. pdf 파일 내 텍스트 추출은 https://blog.taeseong.me/394에서 했던 대로 처리를 했지만 표 같은 양식이 있는 파일들은 텍스트를 파싱하기에 좀 어려움이 있어서 어떻게 해야하나 하다가 아래 방법으로 해결했습니다. File source = new File(filePath); PDDocument pdfDoc = PDDocument.load(source); PDFTextStripper pts = new PDFTextStripper() { @Override protected void writeString(String text, List textPositions) throws IOException { writeString..
같은 라이브러리를 이용해서 PDF를 바로 XLS로 변환하는 방식도 있는데 XML로 변환 후 XLSX로 변환하는 방식을 추천하길래 따라서 해봤습니다. 간단한 텍스트가 있는 PDF는 꽤 괜찮게 변환이 되는데 아쉬운점은 표가 삽입되어있다거나 하는 경우는 변환이 원활하지 않았습니다. 일단은 참고로 남겨두기 위해 작성해두는 것이니 만약 이 글을 보시는 분이 계시다면 참고로만 봐주세요. 변환을 위해서는 aspose pdf, cells 라이브러리가 필요합니다. 해당 라이브러리의 다른 버전이나 추가 정보가 필요하신 분들은 아래 링크를 참고하세요. https://mvnrepository.com/artifact/com.aspose/aspose-pdf/20.3 https://mvnrepository.com/artifact/..
개인적으로 만들고 있는 프로그램에서 PDF 파일 내 텍스트를 가져와야하는 일이 있어서 사용했던 소스를 간략하게 정리해봅니다. pdfbox를 사용해서 PDF 파일을 읽어올 것이기 때문에 pdfbox dependency를 추가하거나 jar를 받습니다. https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox/2.0.19 org.apache.pdfbox pdfbox 2.0.19 사용법은 아주 간단합니다. String fileName = "2020_03.pdf"; File source = new File(fileName); PDDocument pdfDoc = PDDocument.load(source); String text = new PDFTextStripper..
- Total
- Today
- Yesterday
- Programming
- iOS 개발
- Objective-C
- oracle
- 자바
- tomcat
- Spring Framework
- IT
- Objective C
- zero
- jQuery
- Spring
- 자바스크립트
- JavaScript
- 오블완
- MySQL
- 티스토리챌린지
- JSP
- 아이폰
- MAC OSX 10.7
- 아이폰 개발
- Java
- iPhone
- 오브젝티브 C
- iBATIS
- SQL
- 제이쿼리
- Object C
- 아이폰 어플리케이션
- 오브젝트 C
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |