| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- Java
- ArrayList
- SpringBoot
- 테스트자동화
- 단위테스트
- Eclipse
- list
- 자바스크립트
- js
- 인텔리제이
- vscode
- 배열
- Visual Studio Code
- 정규식
- HashMap
- 자바
- CSS
- string
- 자바문법
- junit5
- junit
- java테스트
- html
- Array
- 문자열
- input
- 스프링부트
- math
- IntelliJ
- javascript
- Today
- Total
목록IT/Java (320)
어제 오늘 내일
Java 개발을 하다 보면 로직은 한 줄인데, 그 데이터를 담기 위한 클래스(DTO) 코드가 수십 줄이 되는 경험, 다들 있으시죠? 롬복은 이 "지루한 반복 작업(Boilerplate Code)"을 어노테이션 하나로 해결해 줍니다.Java 개발자라면 피해 갈 수 없는 고통이 있습니다.바로 Getter, Setter, 생성자, toString... 같은 '보일러플레이트(Boilerplate)' 코드들입니다.의미 없이 반복되는 이 코드들은 클래스 파일을 길게 만들고 가독성을 떨어뜨립니다.오늘은 이 고통에서 해방시켜 줄 Lombok(롬복)에 대해 알아봅니다.1. 롬복(Lombok)이란?Lombok은 Java 라이브러리로, 반복되는 메서드를 컴파일(Compile) 시점에 자동으로 생성해 주는 도구입니다.우리가 ..
자바 개발을 하다 보면 final static String... 처럼 상수를 정의해서 쓰는 경우가 많습니다. 하지만 단순히 값을 나열하는 것보다 Enum(열거형)을 사용하면 코드의 안전성과 가독성을 획기적으로 높일 수 있습니다.오늘은 자바 Enum을 단순한 목록이 아닌, 데이터와 로직을 가진 강력한 객체로 활용하는 방법을 단계별로 정리해 드립니다.1. 왜 Enum을 써야 할까요?과거에는 상수를 이렇게 정의했습니다.public static final int MONDAY = 1;public static final int TUESDAY = 2;// ...int today = 1; // 1이 월요일인지, 1월인지 코드로만 봐선 알 수 없음Enum의 장점: 코드가 명확해집니다: 1 대신 Week.MONDAY를 ..
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으로 나눌 수 없습니다..
