[Spring] PDFBox 로 텍스트 추출시 null 값이 추출될 때
·
개발 ━━━━━/Spring(boot)
문제PDFBox 를 이용해서 이력서 형식의 PDF (잡코리아, 사람인) 에 있는 텍스트를 출력하는데public String extractPDF(MultipartFile file) { try (PDDocument document = PDDocument.load(file.getInputStream())) { PDFTextStripper stripper = new PDFTextStripper(); stripper.setSortByPosition(true); String content = stripper.getText(document); } catch { } 잡코리아는 null 문자 없이 정상적으..
[Java] Input 값 입력 받는 방법 ② - BufferedReader 클래스
·
개발 ━━━━━/Java
BufferedReader BufferedReader 클래스는 버퍼를 이용한 대표적인 I/O 클래스로, 입력된 데이터를 바로 전달하지 않고 버퍼에 저장해두었다가 전달하는 방식이기 때문에 속도 측면에서 빠르고, 많은 양의 데이터를 처리할 때 유리하다. 사용 방법 import java.io.BufferedReader; import java.io.InputStreamReader; 를 우선 import 해주어야 한다. BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); // 선언 String s = bf.readLine(); // String 으로 입력 받기 (기본) int i = Integer.parseInt(bf.readLine..
[AWS EC2] nohup: failed to run command 'java': No such file or directory
·
개발 ━━━━━/Troubleshoot
새로운 EC2 서버에 Github Actions 로 프로젝트를 올리는 중에 deploy 자체는 성공적으로 뜨지만 뭔가 잘못됨을 감지하고 로그를 보는데 nohup: failed to run command 'java': No such file or directory 라는 에러 문구가 마지막에 떠있었다. ubuntu 에 Java 를 설치하지 않아서 발생한 문제 터미널에 sudo apt-get update sudo apt-get install openjdk-17-jdk 원하는 Java 버전으로 설치해주면 된다.
프레임워크 (Framework) 란
·
개발 ━━━━━/Definition
Framework 란 정의 프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임 목적에 필요한 것을 고민할 필요 없이 이용할 수 있도록 일괄로 가져다 쓰도록 만들어 놓은 구조화된 틀 라이브러리, API 및 코드 구성을 위한 규칙등을 제공하여 일반적인 프로그래밍 작업을 보다 쉽게 수행 가능 종류 Spring Java 의 웹 프레임워크 Django Python 의 웹 프레임워크 Flask Python 의 마이크로 웹 프레임워크 Ruby on Rails Ruby 의 웹 프레임워크 Laravel PHP 의 웹 프레임워크 Bootstrap 트위터의 JavaScript 기반 웹 프레임워크 Express.js Node.js 의 meteor 프레임워크 NestJS Node...
[Java/Algorithm] List 오름차순
·
개발 ━━━━━/Java
// 주어진 arr 에 요소들을 주어진 정수 n 번째 글자를 기준으로 오름차순 정렬 // n 번째 글자가 같을 경우 사전순으로 정렬한다. import java.util.*; public class Main { public String[] solution(String[] arr, int n) { // 중복이 되었는지 안되었는지 판별하기 위한 플래그 int flag = 0; // 기준 요소와 같으면 "" 빈 문자열로 초기화, 중복이 발견되었으니 flag = 1 for(int i=0; i
[Java] 객체 지향 - 상속, 오버라이딩
·
개발 ━━━━━/Java
상속 (Inheritance) 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 class Parent { ... } class Child extends Parent { ... } Parent : 조상 클래스 (부모 parent, 상위 super, 기반 base 클래스) Child : 자손 클래스 (자식 child, 하위 sub, 파생된 derived 클래스) - 생성자와 초기화 블럭은 상속되지 않고 멤버만 상속된다. - 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. 포함관계 (Composite) 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것 class Circle{ Point c = new Point(); // int x; // int y; int r; } cl..
[WIL] 항해 본과정 1주차 - 프로그래밍 기초 1, 2
·
개발 ━━━━━/항해
16기 항해는 23년 8월 14일 월요일날 시작되었다. 우선 이 글은 항해 시작 후 일주일이 넘은 시점에서 작성하는 글이지만 첫 날부터의 일을 떠올리려니 굉장히 오래 전 일을 다루는 것 같이 기억이 가물가물하고 이제 일주일이 지났다는 것이 믿기지가 않는다. 그만큼 많은 일들이 있었던 것 같다. 우선 첫 날 월요일부터 목요일까지는 항해에서 지급받은 Java 강의를 듣는 시간을 가졌었다. 1 ~ 5주차까지가 있었는데 나는 4번째 날까지 3주차까지만 수강을 하였고 굉장히 좌절을 했던 기억이 난다. (좌절했던게 3, 4일 전이라니 믿기지 않는다.) 3주차 과정은 Java 의 객체 지향적인 특징을 다루는 강의로 클래스, 객체, 생성자 등등... 본격적인 Java 의 특징에 대한 내용이었는데 결론적으로 나는 3주차..
[Java] 기초 문법 - 배열
·
개발 ━━━━━/Java
배열 배열은 참조형 변수로 실제 값이 아닌 실제 값의 주소 값을 저장한다. 기본형 변수 참조형 변수 소문자로 시작함 대문자로 시작함 Wrapper class 에서 기본형 변수를 감싸줄 때 (boxing), int -> Integer 값 자체를 저장함 별도의 공간에 값을 저장 후, 그 주소를 저장함 (주소형 변수) • 배열 선언 // 일반적인 선언방식 int[] intArray; // 정수 배열 long[] longArray; double[] doubleArray; // 실수 배열 char[] charArray; // 문자 배열 String[] stringArray; // 문자열 배열 // 2번째 선언방식 int intArray[]; // 정수 배열 long longArray[]; double double..