본문 바로가기

Java13

Spring JPA 예약어 컬럼 이슈 SpringJPA_ReservedWords_Issue (DB 예약어 컬럼 이슈.) 현재 버전 : Spring Boot 2.1.7.RELEASE / Maria DB 10.2 (MySQL 5.6) 테이블 모델링을 하다보면 데이터베이스에서 이미 사용하는 예약어를 컬럼명으로 사용할 때가 있다. 해당 컬럼명을 그대로 SpringJPA 에서 사용하면 Query 실행 중에 Syntax Error 가 발생하게 된다. DB 예약어 목록 MariaDB Doc : https://mariadb.com/kb/en/reserved-words/ 해당 Issue 해결방법 Entity 정의 할 때 컬렁 명을 추가한다. AS-IS @Entity @Getter @NoArgsConstructor(access = AccessLevel.PRO.. 2023. 2. 6.
OpenJDK_VM_Warning 제거하기 OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release. 프로젝트 환경 Java17 (Amazon Corretto JDK version 17) Spring boot 2.7.0 IntelliJ 2021.3.2 하위 사진 처럼 Spring Boot 프로젝트 실행시 빨간색으로 경고가 뜨는경우가 있다 (불편) Intellij 에서 SpringBoot 실행시 Option 정보가 JDK13 이후로 제거될 가능성이 있다고 하는 경고창. 해결 방법 Edit configurations (프로젝트 설정 창) 클릭 해당 창에서.. 2023. 2. 6.
프로세스(Process)와 스레드(Thread) 차이 프로그램이란 사전적 의미 : 어떤 작업을 위해 실핼할 수 있는 파일 프로세스(process)란 사전적 의미 : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적개체) 운영체제로부터 시스템 자원을 할당받는 작업의 단위 동적인 개념으로는 실행된 프로그램을 의미 할당 받는 시스템 자원의 예 CPU 시간 운영되기 위해 필요한 주소 공간 code, data, stack, heap 구조로 되어 있는 독립된 메모리 영역 특징 프로세스는 각각 독립된 메모리 영역(code, data, stack, heap)을 할당 받는다. 기본적으로 프로세스 당 최소 1개의 스레드(메인 스레드)를 가지고 있다. 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 .. 2022. 4. 18.
직렬화(Serialization)와 역직렬화(Deserialization) 클래스를 만들 때, 해당 특정 클래스에서 사용될 객체를 만들 수 있으며 프로그램을 실행 / 종료하면 가비지 수집기 스레드를 통해 객체가 자체적으로 수거됩니다. 객체를 다시만들지 않고 해당 클래스를 호출하려는 경우 어떻게 될까요?? 이럴때 데이터를 바이트 스트림으로 변환하여 직렬화 개념을 사용합니다. 객체 직렬화는 객체의 상태를 바이트 스트림으로 변환하는데 사용되는 프로세스로, 디스크 / 파일로 유지되거나 네트워크 통신을 통해 실행중인 다른 Java 가상머신으로 전송될 수 있습니다. 역직렬화란 이러한 바이트 스트림을 다시 객체형태로 변환하는 작업을 말합니다. 생성된 바이트는 플랫폼에 독립적입니다. 그래서 한 플랫폼에서 직렬화된 객체는 다른 플랫폼에서 역직렬화를 통해 데이터를 받아올 수 있습니다. 자바클래스.. 2022. 4. 18.
자바 Generic Generic이란? 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식 파라미터 타입이나 리턴 타입에 대한 정의를 외부로 미룬다. 타입에 대해 유연성과 안정성을 확보한다. 타입 캐스팅을 하지 않기 때문에 성능상으로도 이점을 얻을 수 있다. 런타임 환경에 아무런 영향이 없는 컴파일 시점의 전처리 기술이다. Generic의 특징 클래스 혹은 메소드에 선언 할 수 있다. 동시에 여러 타입을 선언할 수 있다. 와일드카드를 이용하여 타입에 대하여 유연한 처리를 가능케 한다. 제네릭 선언 및 정의서에 타입의 상속관계를 지정할 수 있다. 출처 https://jehuipark.github.io/java/java-generic .. 2022. 4. 17.
상속(extends) vs 구현(implements) 상속(Extends) 사실 extends가 상속의 대표적인 형태다. 부모의 메소드를 그대로 사용할 수 있으며 오버라이딩 할 필요 없이 부모에 구현되있는 것을 직접 사용 가능하다. class Vehicle { protected int speed = 3; public int getSpeed(){ return speed; } public void setSpeed(int speed){ this.speed = speed; } } class Car extends Vehicle{ public void printspd(){ System.out.println(speed); } } public class ExtendsSample { public static main (String[] args){ Car A = new Ca.. 2022. 4. 17.