본문 바로가기
반응형

전체 글1072

Java File 존재여부 체크 자바에서 파일을 읽다가 파일 존재 여부를 체크하는 방법에 대해서 정리를 해둔다. 크게 2가지가 있다. Try Catch 문FileReader fr;try{    fr = new FileReader(path);}catch (FileNotFoundException e) {    logger.debug("찾을 수 없는 파일");}   파일을 읽고 없을시 FileNotFoundException 으로 처리를 하였다. File 객체의 exists()private boolean checkFile(String filePath) {        File file = new File(filePath);        return file.exists();    }exists 함수를 사용하여 존재 여부를 판단할수 있다. 2022. 11. 23.
Java 에서의 Apache POI 아파치 POI(Apache POI)는 아파치 소프트웨어 재단에서 만든 라이브러리로서 마이크로소프트 오피스 파일 포맷을 순수 자바 언어로서 읽고 쓰는 기능을 제공한다. 주로 워드, 엑셀, 파워포인트와 파일을 지원하며 최근의 오피스 포맷인 Office Open XML File Formats [1] (OOXML, 즉 xml 기반의 *.docx, *.xlsx, *.pptx 등) 이나 아웃룩, 비지오, 퍼블리셔 등으로 지원 파일 포맷을 늘려가고 있다. -> 위키 백과 마이크로소프트 오피스 파일 포맷을 순수 자바 언어로서 읽고 쓰는 기능을 제공 사용법 먼저 라이브러리를 사용하기 위해서는 maven dependency 를 pom.xml 에 추가해줘야한다. org.apache.poi poi 4.1.2 org.apach.. 2022. 11. 22.
Spring AOT 란? Sprint AOT 란? Spring AOT 엔진은 빌드 시 스프링 애플리케이션을 분석하고 최적화하는 도구이다. 또한 AOT 엔진은 GraalVM Native Configuration이 필요로 하는 reflection configuration을 생성해준다. 이것은 Spring native 실행 파일로 컴파일 하는데 사용되고 이후에 애플리케이션의 시작 시간과 메모리 사용량을 줄일 수 있게 된다. 위 그림에서 보면 AOT가 Spring Boot 환경에서 하는 일들과 순서를 알 수 있다. AOT 적용시 효과 런타임 시 검증할 조건 수 감소 런타임시 Spring 인프라를 적게 사용 리플렉션을 줄이고 프로그래밍적 Bean 등록 방식 사용 신규 Spring 버전의 AOT 부분 2022. 11. 21.
Spring 6.0 / SpringBoot3.0 에 대해 스프링 5.X 버전과 SpringBoot 2.X 이 나온지 얼마 전 같은데 벌써 다음 릴리즈가 준비가 되었고 이에 대한 내용을 포스팅 써본다. 현재의 상황을 정리해보면 스프링 공식 홈페이지에서 이렇게 설명들이 올라와 있다. 위 두사진 처럼 spring6에 대한 설명과 이와 같은 springboot3 에 대한 얘기도 있다. 궁극적으로 이전 버전들과의 차이점이 결국 제일 중요한데 그것들에 대해 정리를 해보면 다음과 같다. 차이점 Spring 5.x -> 6.0 달라지는 점 Java 17기반으로 변경 일부 Java EE API 지원 종료 (아래 참고 포스팅 참조 Jakarta) XML이 점차적으로 Spring에서는 사라지게 될 것 RPC 지원 종료 새로운 AOT 엔진 도입 (밑에 설명 추가) @Inject 같.. 2022. 11. 20.
공백 제거 trim() / strip() 자바에서는 스트링의 공백을 제거 하기 위해서는 java.lang.String 클래스 안의 trim() 과 strip() 메서드를 사용할수 있다. 둘의 차이는 다음과 같다. String text = " abc "; String trimStr = text.trim(); String stripStr = text.strip(); 이렇게 하고 둘을 출력해보면 trim -> "abc"; stip -> "abc"; 결과는 동일하다. 둘 모두 앞뒤의 공백을 제거 하였다. 그렇다면 궁극적인 차이는 무엇일까? 바로 다음이다. trim() 은 '\u0020' 이하의 공백들만 제거 strip() 은 유니코드의 공백들을 모두 제거 유니코드에는 우리가 일반적으로 많이 사용하는 스페이스('\u0020'), 탭('\u0009) 등 .. 2022. 11. 19.
[Oracle] Decode 함수 Procedure 같은 곳을 보거나 일반적인 select 시에 if else나 case 함수를 사용해도 되지만 가볍게 분기를 하는 조건으로 oracle 에서 지원하는 함수인 Decode 함수가 있다. 사용법은 다음과 같다. select gender, decode(gender, "M", "남자", "W", "여자", "기타") from table; DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3.........., else) 이런식으로 조건, 결과 순서로 작성해주고 맨 앞은 컬럼명을 쓴다. 짝이 안맞게 맨 뒤에 하나의 파라미터가 더 있다면 해당 파라미터는 자동으로 else 에 대한 결과를 내뱉게 된다. 실전 테이블에서 활용 예제는 다음과 같다. 2022. 11. 18.
eclipse Git Author, Committer 변경 방법 형상 관리를 위해서는 다양한 방법이 있는데 그중 하나의 방법이 git을 사용하는것이다. 그러면 누가 commit을 했고 어떤 기록을 남겼는지 알아야하는데 그럴때 Author , Committer 를 설정할수가 있다. preferences > git > Configuration > add Entry 를 해서 user.name / user.email을 설정해주면 된다. 그럼 자동으로 git staging에서 설정이 되게된다. 2022. 11. 17.
JpaRepository 관련 쿼리메서드 JPA 를 사용하게 되면 repository 에서 JpaRepository 를 상속 받아서 해당 repository의 메서드를 사용할수 있다. 대표적으로 findById 가 있는데 비슷한 메서드 들을 좀더 알아보기 위해 포스팅을 작성해본다. 설명 Query JPA 컬럼 1개 조회 select * from Table where id = 1; findById 컬럼 여러개 조회 select * from Table where id = 1 and name = "name"; findByIdAndName 중복제거 조회 select distinct * from Table; findDistinctBy 상위 10개 조회 select * from Table where rownum = ?1 After findByStartDa.. 2022. 11. 16.
[Beacon] 근거리 데이터 통신 > 비콘 비콘이란 ? 근거리 스마트 기기를 자동으로 인식하여 데이터를 전송할 수 있는 무선 통신 장치 NFC가 10cm 근거리 작동인 반면, 비콘은 최대 50m 거리에서 작동 가능하다. WPAN Bluetooth 4.0부터 BLE(Bluetooth Low Energy) 방식을 사용하며 애플에서는 iBeacon이라는 기술로 소개되고 현재 사용 중에 있다. BLE communication mode Advertise Mode(= Broadcast mode) broadcast 방식, 모든 디바이스에 signal을 보내고 Advertising type으로 일정 주기마다 전송한다. 한 번에 보내야 하는 데이터 크기가 작다면, 굳이 오버헤드가 큰 Connection 과정을 거쳐서 데이터롤 보내기 보다는, Advertise를.. 2022. 11. 15.
반응형