Dandy Now!
  • [ 언어·프레임워크/Java ]
    [Java] 람다식, 일급 객체 그리고 문과 식의 이해
    2025-06-21 21:17:31
    자바 람다식, 일급 객체 그리고 문과 식의 이해자바 8에 도입된 람다식은 익명 함수를 간결하게 표현하는 방식이다. 이는 코드를 더 효율적이고 가독성 있게 만들 뿐만 아니라, 자바에서 함수형 프로그래밍 스타일을 적용할 수 있게 해준다. 람다식을 제대로 이해하기 위해서는 일급 객체의 개념과 프로그래밍 언어의 기본 구성 요소인 **문(Statement)**과 **식(Expression)**의 차이를 아는 것이 중요하다.1. 람다식이란 무엇인가람다식은 단 하나의 추상 메서드를 가진 함수형 인터페이스의 인스턴스를 간결하게 생성하는 방법이다. 기존의 장황한 익명 클래스 대신 짧고 명확한 코드로 함수를 정의하고 사용할 수 있게 한다.코드 간결성: 불필요한 보일러플레이트 코드를 줄여, 코드의 핵심 로직에 집중하게 한다..
  • [ 언어·프레임워크/Java ]
    [Java] Wrapper 클래스를 사용하는 이유와 실제 예제
    2025-06-15 18:34:58
    자바 Wrapper 클래스를 사용하는 이유와 실제 예제자바에서 Wrapper 클래스는 기본 데이터 타입(primitive data type)을 객체 형태로 다루기 위해 사용한다. 이는 여러 상황에서 유용하며, 특히 제네릭(Generics)이나 컬렉션(Collection) 프레임워크와 함께 사용될 때 그 필요성이 더욱 부각된다.1. Wrapper 클래스 사용의 주요 이유기본 타입을 객체로 다룰 필요가 있을 때:자바의 많은 프레임워크나 API는 객체를 기반으로 동작한다. 예를 들어, java.util 패키지의 컬렉션(List, Set, Map 등)은 객체만을 저장한다. 따라서 int, double과 같은 기본 타입을 컬렉션에 저장하려면 해당 기본 타입의 Wrapper 클래스(Integer, Double 등)..
  • [ 언어·프레임워크/Java ]
    [Java] 자바의 컬렉션은 왜 '프레임워크'라고 불릴까? 라이브러리와의 결정적 차이!
    2025-06-15 18:29:31
    자바의 컬렉션은 왜 '프레임워크'라고 불릴까? 라이브러리와의 결정적 차이!자바 개발자라면 누구나 컬렉션(Collection)을 사용한다. List, Set, Map 등 데이터를 다루는 데 필수적인 존재이기 때문이다. 그런데 우리는 이들을 '컬렉션 라이브러리'가 아닌 '컬렉션 프레임워크'라고 부른다. 일부 개발자들은 "단순히 데이터 구조의 모음인데 왜 프레임워크라고 하지?"라고 의문을 제기하기도 한다. 이 글에서는 라이브러리와 프레임워크의 근본적인 차이를 살펴보고, 자바 컬렉션이 진정한 '프레임워크'로 불리는 이유를 명확하게 설명하고자 한다.1. 라이브러리 vs. 프레임워크: 제어권의 차이가장 핵심적인 차이는 바로 '제어권(Control)'에 있다.라이브러리 (Library)개발자가 필요할 때 직접 호출하..
  • [ 언어·프레임워크/Java ]
    [Java ] `System.identityHashCode()`와 `hashCode()` 메서드의 차이점
    2025-06-14 23:17:01
    System.identityHashCode()와 hashCode() 메서드의 차이점자바에서 객체의 해시 코드를 얻는 두 가지 방법으로 System.identityHashCode()와 hashCode() 메서드가 존재한다. 이 두 메서드는 기능과 목적에서 명확한 차이를 가진다.1. hashCode() 메서드hashCode() 메서드는 Object 클래스에 정의되어 있으며, 모든 자바 객체가 상속받는 메서드이다.목적: 이 메서드의 주된 목적은 컬렉션(예: HashMap, HashSet)에서 객체를 효율적으로 저장하고 검색하는 데 사용되는 해시 코드를 제공하는 것이다.오버라이딩 가능: 개발자는 필요에 따라 이 메서드를 오버라이드하여 객체의 동등성 비교 로직(equals() 메서드와 일관되게)에 맞춰 커스텀 해..
  • [ 언어·프레임워크/Java ]
    [Java] 인터페이스 개념을 USB로 이해하기
    2025-06-08 21:23:03
    Java 인터페이스 개념을 USB로 이해하기Java에서 인터페이스는 객체지향 프로그래밍의 핵심 개념 중 하나이다. 하지만 추상적인 개념이라 처음 배우는 개발자들에게는 이해하기 어려울 수 있다. 이번 포스팅에서는 우리가 일상적으로 사용하는 USB를 통해 인터페이스의 개념을 쉽게 설명해보고자 한다.USB가 인터페이스를 설명하기 좋은 이유USB(Universal Serial Bus)는 컴퓨터와 주변 장치들을 연결하는 데 사용되는 표준 인터페이스이다. USB가 인터페이스 개념을 잘 보여주는 이유는 USB 포트라는 하나의 통일된 형태를 통해 마우스, 키보드, USB 메모리, 프린터 등 다양한 종류의 장치를 연결하고 사용할 수 있기 때문이다.각 장치는 USB 포트에 연결되면 자신의 고유한 기능을 수행하지만, 이들은..
  • [ 언어·프레임워크/Java ]
    [Java] 정보 은닉과 캡슐화: 객체 지향 프로그래밍의 핵심 원칙
    2025-06-08 21:08:53
    정보 은닉과 캡슐화: 객체 지향 프로그래밍의 핵심 원칙객체 지향 프로그래밍(OOP)에서 정보 은닉과 캡슐화는 자주 함께 언급되는 핵심 원칙이다. 두 개념은 서로 밀접하게 연결되어 있지만, 그 의미와 목적은 다르다. 이 글에서는 캡슐화와 정보 은닉을 명확히 구분하고, 이를 구현하는 실제 사례를 통해 OOP의 원칙을 올바르게 이해해보자.1. 캡슐화(Encapsulation)1.1 정의캡슐화는 객체 지향 설계에서 관련된 데이터(속성)와 이 데이터를 다루는 메서드(행동)를 하나의 논리적 단위인 클래스로 묶고, 외부에는 필요한 기능만을 인터페이스 형태로 제공하는 설계 원칙이다. 단순히 변수와 함수를 물리적으로 한 클래스 안에 넣는 것만을 의미하지 않으며, 내부 구현은 감추고, 필요한 기능만 제공하는 명확한 경계를..
  • [ 언어·프레임워크/Java ]
    [Java] 자바에서 Iterator를 사용하는 이유
    2025-03-01 21:40:00
    1. 자바에서 Iterator를 사용하는 이유1. 컬렉션 순회 표준화자바의 다양한 컬렉션(List, Set, Map 등)은 내부 구조가 다르기 때문에, 각 컬렉션에 맞는 순회 방식이 필요하다.Iterator는 이러한 다양한 컬렉션을 일관된 방식으로 순회할 수 있도록 표준화된 인터페이스를 제공한다.즉, 컬렉션의 종류에 상관없이 hasNext()와 next() 메서드를 사용하여 요소에 접근할 수 있다.✅ 예제 코드Iterator를 사용하면 List, Set 등 다양한 컬렉션을 일관된 방식으로 순회할 수 있다.import java.util.*;public class IteratorExample1 { public static void main(String[] args) { List list =..
  • 게시글 대표 이미지 썸네일 주소
    [ 언어·프레임워크/Java ]
    [Java] 윈도우에서 여러개의 Java 버전 관리 하기
    2024-07-26 09:47:24
    1. Java 버전 스크립트 작성여기서는 Java 11, 17 버전을 각각 사용할 수 있게 해 주는 스크립트를 작성하였다. 다른 버전도 얼마든지 적용할 수 있다. "JAVA_HOME"에 실제 해당 버전의 Java가 설치된 경로를 지정해야 한다. 1) Java 11 버전 적용 스크립트 작성@echo offset JAVA_HOME=C:\Program Files\Java\jdk-11set Path=%JAVA_HOME%\bin;%Path%echo Java 11 activated.java -version메모장에서 위 스크립트를 작성한 후 "C:\Program Files\Java" 경로에 "java11.bat"라는 형식으로 저장한다. 2) Java 17 버전 적용 스크립트 작성@echo offset JAVA_HOM..