본문 바로가기

java24

[Java] var 키워드란? (간단예제포함) Java - Var 키워드 java의 var 키워드는 java 10 부터 도입된 키워드 이다. 해당 키워드는, 지역 변수의 타입 추론을 위한 키워드 이다. 변수 선언시, 타입을 생략 가능하게 한다. var 키워드의 경우 Compile 시점에 타입을 추론하게 된다. 즉 Compile 시점에 타입이 이미 결정된다. 이때 컴파일러가 타입을 추론할 수 없을 경우, Compile Error 가 발생하게 된다. 즉 이걸 반대로 생각한다면, RunTime 시점에 타입에 대한 연산이 일어나지 않는다는 말이다. var 키워드의 장단점 장점 가독성 향상: 코드가 간결해지고, 중복된 타입 선언을 제거하여 가독성이 향상된다. 유지 보수성 증가: 코드의 변경이 있을때, 변수의 타입을 모두 변경하지 않아도 되어, 유지보수성이 증.. 2023. 9. 26.
[JPA]JpaRepository 원리 및 내부 분석(EntityManager 자동주입, 상속관계) JpaRepository 원리 및 내부 분석(EntityManager 자동주입, 상속관계) 1. 서론(찾아보게된 계기) - 얼마전 QueryDsl 적용을 하던 도중, 기존에 Spring Data JPA 에서 사용하던 JpaRepository 를 extends 받는 방식과 QueryDsl 을 동시에 적용하던 도중, 대다수의 블로그나 예제에서는 QueryDsl 을 사용하는 Repository에 Entity Manaer를 적용하는 방식을 사용하고 있었다. 하지만 기존에 사용하던 JpaRepository 는 EntityManager 를 자동주입을 해주어서 extends 를 받는것만으로도 EntityManager 를 별도로 설정하지 않고 사용 할 수 있었다. 그래서 기존의 JpaRepository 의 Entity.. 2023. 8. 30.
[SpringBoot] QR코드 생성 & Test(링크이동) - zxing 1. 서론 몇년전 시작된 COVID19의 여파로 비대면, 비접촉 관련된 시스템들이 많이 생겨났다. (QR인증, QR결제 ...) 심지어 QR코드는 2000년 6월에 표준이 되었을 정도로, 오래된 기술이지만, COVID19 로 인해 사용범위, 활용성이 높아진것 같다. 더불어 옥외광고, 모바일 앱, 웹사이트 내부링크 등등 활용되는곳도 점점 많아지고, 생활에 점점더 밀접해지고 있다. 1-1. 바코드 vs QR 코드? 사실 일반인의 입장에서 보면, "바코드와 QR코드가 다른점이 뭐야? 둘다 똑같은거 아니야?" 라는 말을 하게된다. 왜 일상에서는 QR 코드를 더 많이 사용할까? 바코드 레이저(스캔물체)를 수평방향으로 인식해야 한다. 최대 20자의 정보 저장 가능. 바코드의 "I" 높이 중 일부분이 훼손되어도 인식.. 2023. 3. 24.
[SpringBoot] RestTemplate - 카카오 openAPI 연동하기(Translation, 번역기) 서론 - Spring Boot 기반의 RestTemplate 공부를 하며 local에 서버를 2개 띄워서 테스트 하는것 보다는, openAPI를 적용해보고 싶던 와중 kakao 에서 제공하는 Translate (번역) API 를 찾게 되었고 연동해보았다. - 예전에는 단순히 카카오 개발자 사이트에서, Test용 어플리케이션 등록 + Api Key로 사용이 가능했지만, 2023.03.13일 현재 kakao i cloud라는 시스템을 사용하는것으로 조금 바뀌어 있다. (호출 방식, key 같은것들이 다름.) 혹시나 하는 마음에 이전버전의 API 호출 방식을 적용해봤는데 정상적으로 동작이 되었다. 목적은 어디까지나 RestTemplate를 사용한 API호출 이었기 때문에, 예전방식으로 진행했다. * 시작전 유.. 2023. 3. 13.
[Java] ThreadLocal이란? - (ThreadLocal, InheritableThreadLocal) 설명 및 예제(테스트) Spring Boot로 Log 추적기를 구현하던 도중, '동시성 문제'에 대해서 접하게 되었고, 여러가지 많은 해결 방법중 ThreadLocal 이라는 Class를 알게 되었다. ThreadLocal 이 무엇인지, 어떤 경우에 사용하는지에 대해서 알아보자. 1. ThreadLocal 이란? - JDK 1.2부터 등장한 클래스이며, Thread 단위로 로컬 변수를 사용할 수 있다.(각 스레드에 할당된 변수를 각각 전역변수 처럼 활용가능) 하지만 사용시 잘못 사용하게 되면, 부작용이 발생한다 (아래에서 다룰예정.) 종류에는 ThreadLocal, InheritableThreadLocal 2가지가 존재한다. - 공식문서 - 번역기를 통한 해석 이 클래스는 스레드 로컬 변수를 제공합니다. 이러한 변수는 (get.. 2023. 3. 7.
[Java] Java 메모리 영역(stack, heap, static), JVM, JAVA 변수 종류 목차 JVM 이란? Java의 메모리 영역 Java 변수 종류 Static(Method) 영역 Heap 영역 Stack 영역 JVM 메모리 구조중, (Stack, Heap, Static)메모리 영역과 JVM, Java 변수 종류에 대해서 알아보자. JVM 이란? - 메모리 영역을 공부하기전 간단하게 JVM에 대해서 알아보자. JVM 이란 Java Virtual Machine의 약자이며, 자바 가상 머신이라고 불리운다. Java의 바이트 코드를 해석하고 실행하는 역할을 한다. OS에 상관없이 실행할 수 있는것이 장점이다. (JVM 설치만 하면 어떤 운영체제에서든 java 파일을 실행할 수 있다.) ○ JVM 실행 순서 .java 파일을 컴파일러(Compiler)를 통해 .class 파일로 변환한다. .cl.. 2023. 2. 7.