반응형 Java24 IntelliJ Spring boot 2.x project Java 설정 방법 IntelliJ 를 설치하고 Spring boot 2.x 를 오픈하면 Java 설정을 해줘야 합니다. 물론 JAVA HOME 과 같은 컴파일러를 사용한다면 자동 설정이 되지만 실행 했을 때 문제가 있다면 2군데 혹은 3군데를 수정해 주어야 합니다. 1. Project Struecture 단축키는 ctrl + alt + shift + s 입니다. Project 메뉴에서 SDK를 원하는 버전으로 선택합니다. 2. settings -> gradle gradle project의 경우 Gradle JVM 버전을 변경해 줍니다. settings의 단축키는 ctrl + alt + s 입니다. settings에서 gradle을 검색하여 하단에 Gradle JVM 을 원하는 버전으로 선택합니다. 1,2 번을 수정해도 실.. Programing/JAVA 2023. 7. 31. Java List<?> 정렬, 다중조건정렬, 오름, 내림차순 Comparator java.util.Comparator 를 사용하여 List 를 정렬하는 방법을 알아보도록 하겠습니다. 아래와 같은 VO Class가 있습니다. import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString public class signalVO{ private String link_id; private String signal_id; private int dir; private String intersec_no; private String result; } 1. 단일조건 정렬 (오름차순) 위 VO를 link_id로 정렬한다고 하면 아래와 같이 활용합니다. ArrayList list = new Arra.. Programing/JAVA 2023. 1. 25. 자주 실수하는 시큐어 코딩 이슈 정리 자주 실수하는 시큐어 코딩 이슈 정리 1. SQL 삽입 (Mybatis) 원인 Mybatis를 활용한 쿼리문에 '$'를 사용할 경우 발생 이유 개발자가 의도하지 않은 동적 쿼리 작성으로 SQL Injection 공격 가능 해결방안 '$' 대신 '#' 을 사용, 또는 $ 제거 예시 SELECT A FROM ${TABLE} => SELECT A FROM A_TABLE 2. 부적절한 자원 해제 (Java IO) 원인 Stream 자원을 활용하고 반환하지 않은 경우 발생 이유 Open File Descriptor, Heap Memory, Socket, DB 등 유한 자원을 반환하지 않은 경우 메모리 이슈 발생 가능 해결방안 Reader/Writer, BufferReader/BufferWriter, PipedRe.. 알짜정보 2022. 2. 16. Java 대용량 데이터 DB 처리 방법, batch Java 대용량 데이터 DB 처리 방법, batch 많은 양의 데이터를 insert 하거나 update 해야 할 때 mybstis dynamic query를 사용하게 되면 메모리 에러가 발생할 수 있습니다. 이럴 때 사용할 수 있는 방법이 batch를 활용한 방법인데요. 이번 포스팅에서는 그 사용법과 mybatis dynamic query와 비교를 해보도록 하겠습니다. 우선 프론트에서 Json Array로 다량의 데이터를 받아 데이터를 update 한다고 하면 아래와 같이 dynamaic query를 활용할 수 있습니다. UPDATE 테이블명 SET 컬럼 = #{item.column} WHERE 테이블키 = #{item.key} 이 방법은 반복문을 돌면서 update 쿼리를 붙여 PL/SQL 문을 만들어.. Programing/JAVA 2021. 10. 8. 자바 선택정렬 알고리즘, Java Selection Sort Algorithm 자바 선택정렬 알고리즘, Java Selection Sort Algorithm 선택정렬이란, 데이터의 갯수-1 만큼 반복하면서 가장 작은 값을 찾아 현재 반복되는 인덱스의 값과 변경하는 정렬입니다. 1. 데이터 내 가장 작은 값을 찾는다. 2. 현재 반복되는 인덱스의 값과 가장 작은 값을 변경한다. 3. 1~2의 작업을 반복한다. 장점 데이터양이 적을 때 효율이 좋다. 단점 데이터양이 많은 때 효율이 떨어진다. 즉, 적은 데이터를 정렬할 때 사용하시면 됩니다. 테스트 코드를 보도록 하죠. import java.util.Arrays; public class SelectionSortTest { public static void sort(int array[]) { for(int i=0; i Programing/Algorithm 2020. 1. 7. Springboot RESTFul API 서버 20분만에 환경설정 끝내기 Springboot RESTFul API 서버 20분만에 환경설정 끝내기 보다 쉽고! 보다 간편하게! RESTFul API 환경을 설정해보겠습니다. Java Version : 1.8 Springboot Version : 2.2.1 DB Version : Oracle 12c 우선 Springboot Gradle 프로젝트 생성은 아래의 Link를 참고하세요. Link : Eclipse Spring boot Gradle 프로젝트 간단 생성 방법 Eclipse Spring boot Gradle 프로젝트 간단 생성 방법 Eclipse Spring boot Gradle 프로젝트 간단 생성 방법 원래는 간단 합니다. 이클립스 좌측 Project Explorer 에서 오른쪽 마우스 클릭. New > Other... >.. Programing/Springboot 2019. 11. 8. SceneBuilder JavaFX 연동하기. 보다 편한 GUI 생성 SceneBuilder JavaFX 연동하기. 보다 편한 GUI 생성 앞선 포스팅에서 JavaFX 설치 방법을 알아보았습니다. Link : JavaFX java GUI 라이브러리 이클립스 설치방법 JavaFX java GUI 라이브러리 이클립스 설치방법 JavaFX java GUI 라이브러리 이클립스 설치방법 윈도우용 GUI 응용프로그램을 만들기 위한 라이브러리인 JavaFX 플러그인 설치방법을 알아보겠습니다. 기존에 있던 AWT 나 Swing 보다 편리하고 뛰어납니다. 이클립.. aljjabaegi.tistory.com 이제 GUI 작업을 보다 편리하게 하기위해서 SceneBuilder와 연동해보겠습니다. 아래 사이트로 이동해 SceneBuilder 를 다운받습니다. https://www.oracle... Programing/JAVA 2019. 10. 22. Java Thread 사용방법, Thread에 대해 알아보자 자바 스레드 Java Thread 사용방법, Thread에 대해 알아보자 자바 스레드 Thread에 대해서 알아보기 전에 프로그램과 프로세스의 개념을 잡고 넘어가겠습니다. 프로그램이란 사용자가 실행할 어플리케이션, 즉 하드디스크에 저장된 파일입니다.(실행 전) 프로세스는 이 프로그램을 실행해 메모리에 적재된 인스턴스를 말합니다.(실행 후) 이해가 쉽게 예를 들어보겠습니다. 지금 이 화면을 보고 있는 브라우져도 하드디스크 내 어떠한 경로에 설치되어 있습니다. 브라우저를 실행하기 전엔 이것은 프로그램입니다. 그런데 아이콘을 더블클릭하거나 실행을 하게 되면 프로세스가 되는 것이죠. 그렇다면 쓰레드는 무엇일까요? 쓰레드는 프로세스가 어떠한 작업을 할때 할당 받은 자원(메모리)를 이용하는 작업의 단위를 말합니다. 이제 이 작.. Programing/JAVA 2019. 10. 21. Java 필수 라이브러리 Lombok 사용, 적용방법 Java 필수 라이브러리 Lombok 사용, 적용방법 Lombok 라이브러리는 VO(Value Object) 나 DTO(Data Transfer Object) 생성 시 혁신적으로 코드를 줄여주는 라이브러리 입니다. 얼마나 혁신적으로 코드를 줄이는지 한번 보겠습니다. public class lombokTestVO { private String a; private int b; private boolean c; . . . public String getA() { return a; } public void setA(String a){ this.a = a; } public int getB(){ return b; } public void setB(int b){ this.b = b; } public boolean g.. Programing/JAVA 2019. 10. 17. Java Message Passing 의 개념. 메시지 패싱이란? Java Message Passing 의 개념. 메시지 패싱이란? Java에서 클래스 코딩을 할 때 지켜야 할 가장 기본적인 원칙이 '메시지 패싱(Message Passing)' 입니다. 이는 간단히, '클래스 내부에 선언된 변수는 클래스 내부의 메서드로만 핸들링 한다' 입니다. 메시지 패싱을 하는 이유는 클래스의 변수에 대한 결과가 틀리게 나올 경우 코드 전체를 디버그 하는 것이 아니라 해당 변수를 핸들링 하는 메서드만 디버그 하면 되는 이점을 갖고있기 때문입니다. 정확히 맞는 개념은 아니지만 Java 개발자들이 흔히 사용하는 DTO(Data Transfer Obejct), VO(Value Object)를 예로 들 수 있습니다. DTO나 VO 클래스를 생성할때, 변수를 생성하고 getter/setter.. Programing/JAVA 2019. 10. 14. Java Redis, Jedis 데이터 조회, 입력 list, set, map, key value Java Redis, Jedis 데이터 조회, 입력 list, set, map, key value Redis를 사용하기 위한 방범은 아래의 Link를 참고하세요! Link : SpringBoot Redis(Jedis) 활용 Publish/Subscribe pub/sub 구현 방법 SpringBoot Redis(Jedis) 활용 Publish/Subscribe pub/sub 구현 방법 SpringBoot Redis(Jedis) 활용 Publish/Subscribe pub/sub 구현 방법 [Spec] IDE : Eclipse Mars.2 Release (4.5.2) SpringBoot : 2.0.2.RELEASE Jedis : 2.9.0 Dependency Tool : Gradle 참고! Redis는 특정.. Programing/JAVA 2019. 9. 27. Java 클래스 변수명과 값 출력하기 how to get name and value of class Java 클래스 변수명과 값 출력하기 how to get name and value of class Jave class의 변수명과 값을 출력하는 방법을 알아보도록 하겠습니다. class 의 값이나 변수명을 활용해야 할때 사용합니다. private void voToStringArray(AA vo){ try{ for(Field field :vo.getClass().getDeclaredFields()){ field.setAccessible(true); String name = field.getName(); Object value = field.get(vo); System.out.println(name+" : "+value.toString()); } }catch(Exception e){ LOGGER.error(.. Programing/JAVA 2019. 9. 2. Java String 에 대해 깊게 파고들어 보자~! Java String 에 대해 깊게 파고들어 보자~! 갑자기 훅! String에 대해 파고들어볼까 합니다. String이 파고들 것이 뭣이 있나? 하시겠지만, 생각보다 깊고 깊습니다.. 그럼! 삽을 들고 파고들어보도록 하죠! (^^;;;) String의 생성 우선 String은 우리가 알고 있듯이 문자열을 저장 하는 변수 입니다. 보다 정확하게 설명을 하면 문자열 객체의 인스턴스 주소를 담고 있는 참조형 변수이죠. 그렇습니다. 아래 그림과 같이 값이 아니라 메모리 주소를 담고 있죠. 하지만 String은 생성 방식에 따라 생성되는 메모리 영역은 달라지게 됩니다. String str = "Hello"; 위와같이 리터럴로 생성하게 되면 str 변수는 stack 메모리에, "Hello" 라는 값은 Heap 메.. Programing/JAVA 2019. 8. 1. Java 자바 UNIX Timestamp 변환 timestamp to date String Java 자바 UNIX Timestamp 변환 timestamp to date String Unix timestamp 를 Date String으로 변환하는 함수 private static String getTimestampToDate(String timestampStr){ long timestamp = Long.parseLong(timestampStr); Date date = new java.util.Date(timestamp*1000L); SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.setTimeZone(java.util.TimeZone.getTimeZone("GMT+9")); String format.. Programing/JAVA 2019. 7. 17. Java Exception 처리 예외 처리 try catch 알짜만 빼먹기 Java Exception Handler 예외 처리 try catch 알짜만 빼먹기 예외 처리 방법을 알아보기에 앞서, 예외는 뭐고 왜 처리 해야 하는지에 대해 알아보도록 하겠습니다. 예외(Exception) 이란 프로그램 코드를 수정하여 수습할 수 있는 다소 미약한 오류를 말합니다. 하지만 이런 예외를 간과했다간 프로그램이 다운될 수 도 있죠. 그래서 우리는 예외처리(Exception Handling)를 하여, 프로그램이 정상실행상태를 유지하도록 해야합니다. 예외처리(Exception Handling)란 위에서 말한 프로그램을 다운시킬 수도 있는 다소 미약한 오류들을 JVM (Java Virtual Machine) 에게 알려주는 방법입니다. 그리고 Java 에서는 이 예외처리를 하기 위해 try ..... Programing/JAVA 2019. 7. 11. 이전 1 2 다음 💲 추천 글 반응형