본문 바로가기
728x90

Java14

[Kotlin] 코틀린이란? (feat. Java) Kotlin은 JetBrains에서 개발한 신속하고 안전하며 실용적인 프로그래밍 언어로, 2011년 처음 공개되었다. Java 가상 머신 (JVM) 위에서 실행되며, Android 앱 개발을 비롯한 다양한 영역에서 사용되고 있다. 코틀린은 JetBranins에서 개발하는 크로스 플랫폼 범용 프로그래밍 언어로, 자바와 완벽하게 호환되도록 설계되었다. 일반적으로 JVM(Java Virtual Machine)에서 사용되나 Javascript, LLVM(Low Level Virtual Machine), Data Science 영역에서도 사용 가능하다. 파일 확장자는 일반적으로 .kt를 사용하며, 코틀린 스크립트는 .kts를 사용한다. 코틀린은 간결하고 실용적이며, 자바 코드와의 상호운용성(interoperabi.. 2023. 10. 15.
[Java] Thread와 MultiThread이란? Java에서 Thread 클래스는 하나의 실행 흐름을 나타내는 것이다. 즉 하나의 프로그램이 여러 작업을 동시에 수행할 수 있게 해준다. Thread 사용 분야 GUI 응용 프로그램: UI업데이트와 동시에 백그라운드 작업 수행. (file down, data processing) 웹 서버: 각각의 클라이언트 요청을 별도의 스레드에서 처리하여 다중 사용자 지원. 게임 프로그래밍: 게임에서는 화면 업데이트, AI계산, 사운드 처리 등의 작업을 별도의 스레드에서 병렬로 처리해야 부드러운 동작을 유지할 수 있다. 네트워크 프로그래밍: 여러 클라이언트와 서버 간의 동시 통신을 처리해야 한다. 데이터베이스 작업: 데이터 연산 시간이 오래 걸릴 경우 별도의 스레드에서 처리 가능. 자연어 처리: 대용량 텍스트 데이터를.. 2023. 9. 24.
[Java] Quartz 스케줄러 Quartz는 Java로 작성된 오픈소스 스케줄링 라이브러리이다. Quartz를 사용하여 Java 애플리케이션에서 작업을 예약하고 관리할 수 있으며, 복잡한 작업 예약 및 스케줄링을 간편하게 처리할 수 있도록 도와준다. 라이브러리 추가. org.quartz-scheduler quartz 2.3.2 구조 Job - 실행할 작업을 나타내는 인터페이스로 execute 메서드를 구현하여 작업 내용을 정의한다. JobDetail - Job을 실행하기 위한 상세 정보를 가진 객체로, Job 클래스와 그룹명, JobData 등을 포함한다. Scheduler - 작업의 실행과 관리를 담당하는 핵심 컴포넌트로, JobDetail과 Trigger를 관리하여 작업을 스케줄링한다. Trigger - Job을 실행하는 시점을 .. 2023. 9. 24.
[Java] Gson이란? 💡Gson은 Java 객체를 Json 형식으로 변환하는데 사용할 수 있는 Java 라이브러리 이다. Gson은 Google에서 제공하는 java용 Json 라이브러리로, Java 객체를 Json 형식으로 직렬화(serialize), Json 형식의 데이터를 Java 객체로 역직렬화(deserialize)를 간단하게 할 수 있게 해준다. Gson을 사용하기 위해서는 라이브러리를 추가해줘야 한다. # Gradle dependencies { implementation 'com.google.code.gson:gson:2.10.1' } # Maven com.google.code.gson gson 2.10.1 Java 객체 -> Json 형식 직렬화 import com.google.gson.Gson; public .. 2023. 9. 24.
[CS] Garbage Collection. 가비지 컬렉션 💡가비지 컬렉션(Garbage Collection) 이란? 프로그램에서 동적으로 할당된 메모리 중에서 더 이상 사용하지 않는 메모리를 탐지하고 해제하는 자동화된 메모리 관리 기술이다. 사용 이유 프로그램에서 메모리를 사용하다보면, 메모리를 해제하는 코드를 작성하지 않으면 사용되지 않는 메모리가 계속 쌓여서 메모리 누수(Memory leak)가 발생할 수 있다. 이러한 문제를 해결하기 위해서 가비지 컬렉션은 필수적이다. 가비지 컬렉션은 프로그램에서 사용 중인 메모리 영역에서 더 이상 사용하지 않는 객체(인스턴스)를 탐지하고, 자동으로 해당 객체가 차지하고 있는 메모리를 해제한다. 이 과정에서 프로그램이 일시 중단되는 시간(Stop the World)이 발생할 수 있으며, 이 시간이 길어지면 성능 문제가 발.. 2023. 9. 23.
[Java] JVM - JRE - JDK 📌JVM, JRE, JDK의 이해와 관계 JVM (Java Virtual Machine) jvm이란 자바 가상 머신으로 자바 프로그램 실행환경을 만들어주는 소프트웨어이다. 프로그램을 실행하기 위해서는 개발자가 작성한 코드를 컴파일을 통해 컴퓨터가 이해할 수 있는 기계어로 번역하는 과정을 거쳐야 한다. 만약 C언어로 개발한 프로그램을 윈도우에서 사용하려면 .exe 로 컴파일하여 실행시킬 수 있다. 하지만 해당 프로그램을 리눅스나 맥 등 다른 운영체제에서 사용하려면 다시 실행할 운영체제에 맞는 파일로 컴파일 해줘야 한다. Example > 하지만 Java는 코드를 자바 컴파일러를 통해 Java Bytecode로 .class 확장자를 가지는 파일로 변환하여 각 운영체제에 설치되어 있는 JVM에 전달하기만 하면.. 2023. 9. 17.
[Java] Optional 클래스 java.util.Optional은 Java 8에서 도입된 클래스로, 값이 존재하지 않을 수 있는 상황에 사용하면 NullPointerException을 방지하고 코드를 더 안전하게 만들 수 있다. 즉, 값이 존재하는 상태(NOT NULL)와 값이 존재하지 않는 상태(NULL)를 체크하며 에러를 발생시키지 않고 예외처리를 통해 코드의 안전성을 높인다. Optional 문법 사용 방법 1. Optional 객체 생성 : Optional.of(value): 만약 값이 null이라면 NullPointerException이 발생. Optional.ofNullable(value): 값이 null인 경우 빈 Optional을 반환. Optional optionalWithValue = Optional.of("Hell.. 2023. 9. 11.
[Java] Builder Pattern과 Method Chaining 빌더 패턴 (builder pattern) Java에서의 빌더 패턴(Builder Pattern)은 객체 생성 과정을 더 직관적이고 유연하게 만들기 위한 디자인 패턴이며, 주로 객체의 생성 과정이 복잡하거나 매개변수가 많을 때 사용된다. 특징 객체의 생성과 구성을 분리한다. 가독성이 높아진다. 메서드 이름을 통해 생성되는 객체의 구성 요소를 명확히 알 수 있다. 필수적인 매개변수와 선택적인 매개변수를 구분할 수 있다. 객체의 불변성을 보장할 수 있다. 메서드 체이닝 (method chaining) Method chaining은 객체의 메서드를 연이어 호출하는 프로그래밍 패턴을 말한다. 이 패턴을 통해 한 줄에 여러 메서드를 호출하여 객체를 설정하거나 조작할 수 있다. Method chaining은 코드의.. 2023. 9. 11.
[Java] 디자인 패턴의 개념과 종류 💡 디자인 패턴이란? 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용할 할 수있는 훌륭한 해결책 “바퀴를 다시 발명하지 마라(Don’t reinvent the wheel)” 라는 말이 있듯이 이미 만들어져서 잘 되는 것을 처음부터 다시 만들 필요가 없다는 의미이다. 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결책 사이에도 공통점이 있다. 이러한 유사점을 패턴이라 한다. 패턴은 공통의 언어를 만들어주며 팀원 사이의 의사 소통을 원활하게 해주는 아주 중요한 역할을 한다. 💡 디자인 패턴 구조 콘텍스트(context) 문제가 발생하는 여러 상황을 기술한다. 즉, .. 2023. 8. 20.
728x90