본문 바로가기

Language13

[Java] POJO - Cache 구현 Java(POJO) Cache 구현개발을 하다보면 Cache, Caching 과 같은 단어들을 들어보고는 했을것이다.Spring framework 의 경우 기본적으로 캐싱을 지원하는 기능들을 지원한다, 또한 다양한 캐시 구현체들을 제공한다(Redis, Encache, Caffenine) 해당 구현체들로 더 많은 기능들을 사용할 수 있다. 1. Cache(캐시)란?그렇다면 Cache(캐시)란 무엇일까? Cache 는 데이터에 빠르게 접근하기위해 빠른 저장공간(Memory)을 활용하는 기술이다.Application 에서 자주 사용하는 데이터를 Memory 와 같이 빠른 저장소에 데이터를 임시로 저장하고,이후 데이터가 필요할 때 캐시 데이터에 접근하여 바로 사용한다. 캐시에서 데이터를 가져오는 이유는 DB나,.. 2025. 1. 8.
[Java & Spring] Version 비교 방법 - version4j Spring (Java) Version 비교 방법 - version4j다양한 상황에서 버전 체크, 비교를 해야하는 경우가 존재한다. git, 앱 버전, java, 자체 프로그램 버전 등등,,  1. Version 이란? version 은 특정 매체에서 제작, 또는 수정이 이루어질때의 제작되거나, 수정된 각각의 판본을 뜻한다.소프트웨어에서의 버전은 수정사항, 기능의 추가사항, 버그수정 등 다양한 작업이후 배포될때 각각의 의미에 맞는 버전을 올리고 배포 작업이 이루어 지게 된다.  Version 은 (.) dot(점) 을 기준으로 구분되며, 다음과 같은 순서에 의해 정의되어있다.Major Version . Minor Version . Build or Maintenance Version = 1.0.1 Majo.. 2024. 6. 25.
[Java] var 키워드란? (간단예제포함) Java - Var 키워드 java의 var 키워드는 java 10 부터 도입된 키워드 이다. 해당 키워드는, 지역 변수의 타입 추론을 위한 키워드 이다. 변수 선언시, 타입을 생략 가능하게 한다. var 키워드의 경우 Compile 시점에 타입을 추론하게 된다. 즉 Compile 시점에 타입이 이미 결정된다. 이때 컴파일러가 타입을 추론할 수 없을 경우, Compile Error 가 발생하게 된다. 즉 이걸 반대로 생각한다면, RunTime 시점에 타입에 대한 연산이 일어나지 않는다는 말이다. var 키워드의 장단점 장점 가독성 향상: 코드가 간결해지고, 중복된 타입 선언을 제거하여 가독성이 향상된다. 유지 보수성 증가: 코드의 변경이 있을때, 변수의 타입을 모두 변경하지 않아도 되어, 유지보수성이 증.. 2023. 9. 26.
[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.
[Java] Java 컬렉션(Collection) Java 컬렉션(Collections Framework) - Java 컬렉션(Collection)은 데이터를 쉽고 효과적으로 처리할 수 있는 집합, 그룹을 뜻한다. -> 데이터를 저장하는 자료구조와 처리하는 알고리즘을 구조화 하여 클래스화 시킨것이다. - Java Interface 를 통해 구현된다. - Collection의 상속 구조이다. - Map 은 Collection이 아니지만 같이 묶어서 표현된다. Collction Interface 인터페이스 구현 클래스 특징 Set HashSet(대표) TreeSet LinkedHashSet 순서X, 데이터 중복X List ArrayList LinkedList Vector 순서가 존재하고, 데이터의 중복을 허용 Queue LinkedList PriorityQ.. 2023. 2. 1.
[Java] Multi Thread를 이용한 간단 게임 구현(구구단) Java Multi Thread를 이용한 간단 게임 구현하기 - 곱셈(구구단) 맞추기 - Java Thread를 공부 하던 중 간단한 입력을 통해 시간내에 많은 문제를 풀어보는 구구단 게임을 만들게 되었다. - Scanner 와 Thread만을 사용하여 간단하게 구현 해보자. 동작 방식 및 게임 룰 설정 문제 제한시간 60초 안에 많은 문제를 맞추자. 2자리 * 1자리 숫자가 문제로 주어진다. 맞추면 "정답입니다", 틀리면 "틀렸습니다. 정답은: xxx" 출력. 정답, 오답의 각 개수 체크하여 게임 종료시, (문제 갯수, 정답, 오답 갯수) 출력. 구현 Timer 기능과 문제를 발생시키는 Thread 생성(GuguTimer.class) 문제를 내고, 입력을 받아 정,오답을 검증하는 Thread 생성(Ga.. 2023. 1. 26.
[Java] Lombok 실제 사용법(2) Lombok 라이브러리 실제 사용법 및 적용법을 코드를 통해 알아보자! 롬복의 기본 개념과 어노테이션들에 대한 자세한 설명은 아래 링크에서 확인하세요! https://lucas-owner.tistory.com/26 [Java] LomBok이란? & 어노테이션 정리 (1) Java 라이브러리 Lombok이란? + 자주 사용 어노테이션 정리! ○ LomBok 이란? LomBok이란 어노테이션 기반으로 코드 자동완성 기능을 제공하는 라이브러리이다. Spring, Spring Boot 로 Web 개발을 하다보면 반 lucas-owner.tistory.com - 해당 코드 사용법은 필자의 개인적인 코딩 스타일이 적용되어 있고, 정답이 아닐수 있습니다! (상황에 따라 사용하세요!) ○ Code - 우선 아래와 같은.. 2023. 1. 17.
[Java] LomBok이란? & 어노테이션 정리 (1) Java 라이브러리 Lombok이란? + 자주 사용 어노테이션 정리! ○ LomBok 이란? LomBok이란 어노테이션 기반으로 코드 자동완성 기능을 제공하는 라이브러리이다. Spring, Spring Boot 로 Web 개발을 하다보면 반복되는 코드가 자주 등장하며 가독성을 떨어트린다. 예를 들어보면 Getter, Setter, ToString, Constructor(생성자)가 대표적인 예제일 것이다. - 간단 예시 예시를 간단히 설명해 보자면, 필자의 경우 Legacy 시스템(AS-IS)을 TO-BE로 개선하는 작업을 진행했었다. Legacy 코드를 처음보고 적잖이 당황했었다. 왜냐하면 DTO혹은 VO Class 의 경우 필드의 갯수가 많게는 30-50개 정도 (혹은 그이상)이었기 때문이다. 만약 이.. 2023. 1. 17.