본문 바로가기

Language11

[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.