Java에서 필드와 프로퍼티의 차이점 이해하기

Java에서 필드(field)와 프로퍼티(property)는 서로 다른 개념으로, 혼동하지 않도록 명확히 구분해야 한다. 필드(Field) 필드는 클래스 내부에 선언된 변수로, 객체의 상태를 저장하는 데이터 멤버이다. 일반적으로 다음과 같이 정의된다: public class Person { private String email; private int age; } 위 예제에서 email과 age는 Person 클래스의 필드이다. ...

8월 14일 02:42에 게시됨

Spring Boot Quartz를 활용한 동적 스케줄링 및 DB 영속화 구현

Quartz는 Java 환경에서 널리 사용되는 강력한 작업 스케줄링 프레임워크입니다. Spring Boot와 통합하면 단순한 반복 작업을 넘어, 실행 중에 스케줄을 변경하거나 작업 상태를 데이터베이스에 저장하여 서버 재시작 후에도 작업을 유지하는 영속화 기능을 쉽게 구현할 수 있습니다. 1. 의존성 설정 Spring Boot 프로젝트에서 Quartz를 사용하기 위해 다음의 의존성을 po ...

8월 13일 16:46에 게시됨

day04-java-반복 구조(while, do-while, for)

반복 구조(while, do-while, for) 어떤 복잡한 프로그램 로직도 세 가지 기본 구조를 통해 표현할 수 있습니다: 순차 구조: 위에서 아래로 한 줄씩 실행되며 모든 문장이 반드시 실행됩니다. 분기 구조: 조건에 따라 특정 문장을 한 번 실행하며, 모든 문장이 실행되는 것은 아닙니다. 반복 구조: 조건에 따라 특정 문장을 여러 번 반복 실행하며, 모든 문장이 실행되는 ...

8월 12일 08:21에 게시됨

Java 클래스 구현 및 설계

본 문서는 Java를 이용한 클래스 구현 및 설계 연습을 다룹니다. 첫 번째 연습에서는 은행 계좌를 나타내는 Account 클래스를 완성하고, 두 번째 연습에서는 주민등록번호를 기반으로 생년월일과 나이를 계산하는 IdentityCard 클래스를 설계합니다. 연습 1: 은행 계좌 클래스 구현 1. Account 클래스 완성 Account.java 파일은 은행 계좌를 표현하는 클래스입니다. 다음 ...

8월 12일 04:39에 게시됨

Java 객체 지향 프로그래밍 핵심: 클래스, 캡슐화 및 메모리 구조 분석

클래스와 객체의 개념 및 정의 클래스(Class)는 현실 세계의 사물이나 개념을 프로그래밍적으로 추상화한 설계도입니다. 클래스는 크게 두 가지 요소로 구성됩니다. 속성(Attribute): 사물의 특징을 나타내는 데이터 (예: 전자기기의 제조사, 가격) 행동(Behavior): 사물이 수행할 수 있는 기능 (예: 전화 걸기, 메시지 전송) 객체(Object)는 클래스라는 설계도 ...

8월 11일 10:18에 게시됨

이진 검색 트리(Binary Search Tree)의 구조와 Java를 활용한 구현

이진 검색 트리의 기본 개념 이진 검색 트리(Binary Search Tree, BST)는 데이터의 빠른 탐색을 위해 설계된 계층형 자료구조입니다. 원본 글에서는 이를 'B-tree'로 지칭했으나, 설명된 특성(최대 2개의 자식 노드, 좌우 크기 규칙)은 정확히 이진 검색 트리의 정의에 부합합니다. BST는 다음과 같은 핵심적인 제약 조건을 가집니다. 각 노드는 최대 두 개의 자식(Left, ...

8월 10일 20:00에 게시됨

Java QR 코드 생성 및 텍스트/이미지 삽입

QR 코드를 생성하고 텍스트 또는 이미지를 추가하는 Java 예제를 소개합니다. 스트림으로 QR 코드를 출력하는 방법도 포함됩니다. 기본 QR 코드 생성 및 로고 삽입 다음 코드는 QR 코드 생성 라이브러리(Google ZXing)를 사용하여 QR 코드를 만들고, 지정된 경로에서 로고 이미지를 읽어 QR 코드 중앙에 삽입하는 방법을 보여줍니다. package com.example.qr ...

8월 10일 09:25에 게시됨

SpringBoot와 Vue.js 기반의 고전 명작 독서 플랫폼 설계 및 구현

시스템 아키텍처 및 주요 기술 스택 본 프로젝트는 현대적인 웹 개발 표준을 따르기 위해 백엔드는 SpringBoot, 프론트엔드는 Vue.js 아키텍처를 채택하였습니다. 이를 통해 개발 효율성을 높이고 유지보수가 용이한 구조를 설계했습니다. 1. 백엔드 프레임워크: SpringBoot SpringBoot는 Tomcat, Jetty와 같은 내장 서버를 포함하고 있어 별도의 WAS 설정 없이 독립적인 ...

8월 10일 03:47에 게시됨

분산형 블룸 필터 설계 및 구현

블룸 필터 기초 개념 블룸 필터는 비트 배열과 해시 함수를 결합한 확률적 데이터 구조로, 원소 존재 여부를 효율적으로 판단합니다. 핵심 원리: 크기 m의 비트 배열 초기화 k개의 해시 함수를 통해 원소를 k개의 비트 위치에 매핑 삽입 시 해당 위치 비트를 1로 설정 검색 시 모든 위치가 1인지 확인하여 존재 여부 판단 장점 및 한계 효율성 측면에서 다음과 같은 특 ...

8월 10일 01:26에 게시됨

Java NIO Scatter/Gather를 활용한 효율적인 데이터 입출력

Java NIO의 핵심 기능 중 하나인 Scatter/Gather는 대용량 데이터나 구조화된 데이터를 처리할 때 매우 유용한 입출력 방식입니다. 이 기술은 여러 개의 버퍼를 사용하여 단일 채널에서 데이터를 분산하여 읽거나(Scatter), 여러 버퍼의 데이터를 모아서 하나의 채널로 쓰는(Gather) 작업을 수행합니다. Scatter와 Gather의 개념 Scatter (분산): 채널로부터 데이터 ...

8월 10일 00:27에 게시됨