Java 멀티스레딩 소개

스레드는 프로세스 내에서 독립적으로 실행되는 하위 작업입니다. 멀티스레딩 기술 사용 시나리오 블로킹(Blocking): 시스템에 블로킹 현상이 발생하면 멀티스레딩 기술을 사용하여 실행 효율을 높일 수 있습니다. 종속성(Dependency): 비즈니스 로직이 두 개의 실행 과정 A와 B로 나뉘는데, A 과정이 블로킹될 때 B 과정은 A 과정의 실행 결과를 필요로 하지 않는다면, ...

7월 24일 00:36에 게시됨

Java 객체 지향 프로그래밍 핵심 개념 정리

클래스 (Class) 클래스는 객체를 생성하기 위한 설계도로, 속성과 동작을 함께 정의합니다. 예를 들어 자동차의 색상과 문의 개수를 필드로 갖고, 주행 기능을 메서드로 구현할 수 있습니다. public class Automobile { String paintColor; int doorCount; public Automobile(String paintColor, int doorCount) { this.paintColor = paintColor; ...

7월 24일 00:34에 게시됨

Docker를 활용한 Java 개발 환경 필수 소프트웨어 설치 가이드

본 문서는 Java 개발 환경 구축에 필요한 다양한 소프트웨어를 Docker 컨테이너를 사용하여 설치하는 방법을 안내합니다. 1. JDK 설치 AdoptOpenJDK 8 버전을 Docker 이미지로 설치합니다. docker pull adoptopenjdk/openjdk8 docker run -di --name=jdk1.8 adoptopenjdk/openjdk8 docker exec -it jdk1.8 /bin/bash 2. MySQL 설치 MySQL 8.0 버전을 설치하고, ...

7월 23일 22:00에 게시됨

Android BlockedNumberProvider를 통한 수신 차단 시스템 커스터마이징

Android 환경에서 전화는 누구나 접근 가능한 개방형 통신 채널입니다. 이로 인해 원치 않는 스팸 전화나 메시지로부터 사용자를 보호하는 기능은 필수적입니다. Android 7.0(Nougat) 이전에는 표준 API의 부재로 인해 서드파티 앱들이 수신 차단을 구현하는 데 한계가 있었으나, 7.0 버전부터 BlockedNumberProvider가 도입되면서 시스템 차원의 통합 관리가 가능해졌습니 ...

7월 23일 20:02에 게시됨

Java 멀티스레딩 기초와 동시성 제어 핵심 요약

멀티스레드의 이해와 구현 방법 멀티스레딩은 하나의 프로세스 내에서 여러 실행 흐름을 동시에 처리하는 기술입니다. Java에서 스레드를 생성하고 실행하는 방법은 크게 세 가지로 나뉩니다. 1. Thread 클래스 상속 가장 기본적인 방법으로, Thread 클래스를 상속받아 run() 메서드를 오버라이드합니다. public class WorkerThread extends Thread { @Override ...

7월 23일 09:30에 게시됨

Java 메서드의 개념과 구조 및 활용 가이드

Java 메서드란 무엇인가 Java에서 메서드(Method)는 특정 기능을 수행하기 위해 모인 일련의 문장들의 집합입니다. 프로그래밍에서 메서드는 다음과 같은 특징을 가집니다. 특정 문제를 해결하기 위한 절차를 논리적으로 결합한 단위입니다. 클래스 내부에 존재하며 객체의 동작을 정의합니다. 한 번 작성하면 프로그램 내 어디서든 호출하여 재사용할 수 있 ...

7월 23일 07:40에 게시됨

Jackson 라이브러리 핵심 가이드

Jackson은 Java 진영에서 가장 널리 채택되는 JSON 처리 엔진으로, FasterXML이 관리하고 있다. 단순한 JSON 파싱을 넘어 XML, YAML, CSV 등 다양한 포맷을 지원하며, 뛰어난 성능과 유연한 확장성으로 Spring 생태계의 사실상 표준이 되었다. 이번 글에서는 Jackson의 내부 메커니즘과 실무 활용법을 살펴본다. 핵심 모듈 구성 모듈명 Maven Artifact 역할 jackson ...

7월 23일 07:37에 게시됨

자바 I/O 스트림: 파일 데이터 처리의 기초

자바 애플리케이션에서 파일이나 네트워크를 통해 데이터를 교환하는 것은 매우 흔한 작업입니다. 이러한 데이터 교환은 '입력(Input)'과 '출력(Output)'이라는 두 가지 주요 흐름을 통해 이루어지며, 자바에서는 이를 I/O(Input/Output) 스트림이라는 개념으로 추상화합니다. I/O 스트림은 데이터의 원천(Source)과 목적지(Destination)를 연결하는 파이프라인과 같다고 ...

7월 23일 04:55에 게시됨

Java 상속과 다형성 핵심 정리

상속(Inheritance) 기본 개념 여러 클래스에 공통으로 존재하는 속성이나 기능이 있다면, 이를 별도의 클래스로 분리하여 다른 클래스에서 재사용할 수 있다. 이것이 상속의 핵심 목적이다. 접근 제한자 활용 멤버 변수는 일반적으로 private으로, 메서드는 public으로 선언하는 것이 관례이다. 패키지 내에서만 접근 가능한 default와 상속 관계에서만 접근 가능한 pro ...

7월 23일 02:57에 게시됨

Java Stream API와 람다 표현식 활용 가이드

중복 제거 두 개의 리스트 객체 조건에 따른 중복 제거 List<Member> memberList와 List<Employee> employeeList // memberList의 Member id가 employeeList의 Employee id와 일치하지 않는 객체 제거 List<Member> filteredList = memberList.stream() .filter(member -> !employeeList.stream().map(emp -> emp.getEmployeeId()).collect ...

7월 23일 01:21에 게시됨