| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- string
- vscode
- Visual Studio Code
- Java
- java테스트
- math
- Array
- 인텔리제이
- json
- junit5
- 단위테스트
- CSS
- 테스트자동화
- 자바
- 배열
- Eclipse
- IntelliJ
- junit
- list
- HashMap
- 이클립스
- input
- 정규식
- js
- html
- 자바문법
- ArrayList
- javascript
- 자바스크립트
- 문자열
- Today
- Total
목록Java (283)
어제 오늘 내일
Java에서 Immutable 객체(불변 객체)란한 번 생성되면 내부 상태가 절대로 변경되지 않는 객체를 말합니다.즉, 객체의 필드 값을 수정할 수 없으며 오직 읽기(Read)만 가능합니다.불변 객체는 안전하고 예측 가능한 동작을 제공하기 때문에멀티스레드 환경, 캐싱, 값 객체(Value Object) 설계에서 매우 유용합니다. 1. Immutable 객체의 정의Immutable 객체는 다음 특징을 만족합니다:객체 생성 후 상태가 절대 변경되지 않는다.모든 필드는 final이며, 외부에서 변경할 수 없다.setter 메서드가 존재하지 않는다.변경이 필요한 경우 새로운 객체를 생성한다.대표적인 예: String, Integer, LocalDate, LocalTime 등 2. Immutable 객체가 필요한..
Java의 Lambda(람다식)은 메서드를 하나의 표현식(식)으로 간단하게 작성할 수 있게 하는 기능입니다.코드를 짧고 간결하게 만들어 주며, 특히 Stream API, 익명 클래스, 함수형 인터페이스와 함께 사용할 때 매우 유용합니다.람다식은 Java 8에서 도입되었으며, “함수를 간단하게 표현하는 문법”이라고 이해하면 쉽습니다. 1. 람다식이란?람다식은 메서드를 단순한 식(Expression) 형태로 표현한 것입니다.형식:(매개변수) -> { 실행문 }예:(int x, int y) -> { return x + y; }더 간단히:(x, y) -> x + y 2. 왜 람다식을 사용할까?✔ 코드가 짧아짐익명 클래스를 일일이 작성할 필요 없음.✔ 가독성 향상의도만 남기고 불필요한 코드 제거.✔ 함수형 프로..
Java의 Stream API는 컬렉션이나 배열의 요소를선언적(Declarative)이고 간결한 방식으로 처리할 수 있도록 도와주는 기능입니다.반복문 없이도 데이터를 필터링, 변환, 집계할 수 있어 코드 가독성과 생산성이 크게 향상됩니다.Stream은 Java 8에서 추가된 기능이며, “데이터 흐름”을 한 번 흘려보내며 처리하는 구조라고 이해하면 쉽습니다. 1. Stream이란?Stream은 데이터 컬렉션을 다루기 위한 연속된 작업 흐름입니다.특징은 다음과 같습니다.데이터를 변경하지 않음 (원본 불변)중간 연산(filter, map 등)과 최종 연산(sum, collect 등)으로 구성내부 반복(Internal Iteration)을 사용해 반복문을 자동 처리작업을 체이닝하여 선언적으로 작성예:list.s..
Java의 Optional은 값이 있을 수도 있고 없을 수도 있는 객체를 표현하는 래퍼(wrapper) 클래스입니다.주로 NullPointerException을 방지하고, null 체크를 더 안전하고 명확하게 처리하기 위해 사용됩니다.Optional은 Java 8부터 도입되었으며, “null 대신 사용할 수 있는 타입”이라고 이해하면 쉽습니다. 1. Optional 기본 생성1-1. 값이 있는 Optional 생성Optional opt = Optional.of("Hello");주의: of(null)은 예외 발생 → 값이 null일 가능성이 없다면 이 방식 사용.1-2. 값이 null일 수도 있는 경우Optional opt = Optional.ofNullable(str);특징: str이 null이면 빈 O..
Java에서는 기본 제공 예외(Exception) 외에도 개발자가 직접 새로운 예외 클래스를 정의할 수 있습니다.이를 사용자 정의 예외(Custom Exception)라고 하며, 비즈니스 로직에서 의미 있는 예외를 명확하게 표현할 때 매우 유용합니다.Custom Exception은 기존 예외로 상황을 설명하기 어렵거나,코드 가독성과 유지보수성을 높이고 싶을 때 사용됩니다. 1. 사용자 정의 예외를 만드는 기본 원칙사용자 정의 예외 클래스는 반드시 Exception 또는 RuntimeException을 상속해야 합니다.✔ Checked Exception 만들기→ Exception 상속✔ Unchecked Exception 만들기→ RuntimeException 상속 2. Checked Custom Exce..
Java에서 throw와 throws는 모두 예외 처리와 관련된 키워드이지만,역할과 사용 위치, 의미가 완전히 다릅니다.헷갈리기 쉬운 개념이지만 차이를 정확히 알면 예외 처리 구조를 훨씬 명확하게 이해할 수 있습니다. 1. 핵심 차이 요약구분throwthrows의미예외를 직접 발생시킴메서드가 예외를 던질 수 있음을 선언위치메서드 내부메서드 선언부대상단일 예외 객체여러 예외 타입 가능실행 시점코드 실행 중(Runtime)컴파일러에게 예외 가능성 알림사용 목적의도적으로 예외 발생호출자에게 예외 처리 위임 2. throw: 예외를 직접 발생시키기throw는 특정 상황에서 의도적으로 예외 객체를 던지는 키워드입니다.형식:throw new 예외클래스("메시지");예제public void checkAge(int a..
Java에서 try-catch-finally는 실행 중 발생할 수 있는 예외(Exception)를 안전하게 처리해프로그램이 갑자기 종료되지 않도록 돕는 구조입니다.예외 상황이 발생해도 안정적인 흐름을 유지하는 데 필수적인 문법입니다. 1. 기본 구조try { // 예외가 발생할 수 있는 코드} catch (ExceptionType e) { // 예외가 발생했을 때 실행되는 코드} finally { // 예외 발생 여부와 상관없이 항상 실행}각 블록의 의미try: 예외가 발생할 가능성이 있는 코드 실행catch: 특정 예외가 발생했을 때 처리finally: 예외 발생 여부와 관계없이 무조건 실행 (자원 정리용) 2. try-catch 기본 예제try { int result = 10 /..
Java에서 예외(Exception)와 오류(Error)는 모두 프로그램 실행 중 발생하는 문제를 표현하지만,두 개념은 원인·처리 가능 여부·목적이 완전히 다릅니다.예외는 개발자가 적절히 처리할 수 있지만, 오류는 시스템적 문제로 처리하기 거의 불가능합니다. 1. 예외(Exception)란?예외는 프로그램 실행 중 발생할 수 있는 문제 상황으로,개발자가 코드로 예측하고 처리할 수 있는 오류입니다.예:파일이 존재하지 않음배열 인덱스 범위 초과null 접근네트워크 연결 실패예외는 적절하게 try-catch로 처리할 수 있습니다.예제try { int result = 10 / 0; } catch (ArithmeticException e) { System.out.println("0으로 나눌 수 없습니다..
Java의 제네릭(Generic)은 클래스나 메서드에서 데이터 타입을 미리 지정하지 않고,사용하는 시점에 타입을 결정하도록 만드는 기능입니다.제네릭을 사용하면 타입 안정성이 높아지고, 캐스팅이 필요 없어 코드가 더 깔끔해집니다. 1. 제네릭이란?제네릭은 타입을 파라미터처럼 전달하는 문법입니다.형식:클래스명예:List list = new ArrayList();설명String 타입만 저장할 수 있는 리스트다른 타입을 넣으면 컴파일 단계에서 오류 발생 → 타입 안정성 확보 2. 제네릭을 사용하는 이유✔ 타입 안정성(Type Safety) 향상잘못된 타입을 넣는 실수를 방지할 수 있습니다.List list = new ArrayList();list.add(10); // ❌ 컴파일 오류✔ 캐스팅 불필요제네릭을 사용..
Java에서 패키지(package)는 클래스를 논리적으로 묶어 관리하는 디렉터리 구조이며,import는 다른 패키지에 있는 클래스를 현재 코드에서 사용할 수 있도록 가져오는 문법입니다.코드를 체계적으로 관리하고 충돌을 방지하며 유지보수성을 높이는 데 필수적인 개념입니다. 1. 패키지(package)란?패키지는 Java 클래스들을 폴더 구조로 그룹화한 논리적 단위입니다.예:com.example.project문법:package com.example.project;패키지를 사용하는 이유클래스 이름 충돌 방지관련된 클래스들을 쉽게 그룹화프로젝트 구조 정리접근 제어자와 함께 캡슐화 강화프로젝트가 커질수록 패키지를 잘 나누는 것이 매우 중요합니다.패키지 구조 예src/ └─ com/ └─ example/ ..
