java 47

[Java] Checked, Unchecked Exception

Checked Exception✅ 정의컴파일 타임(Compile-time)에 체크되는 예외반드시 try-catch로 처리하거나 throws로 명시해야 함🔎 예제 : IOException (Checked Exception)public static void copy(String source, String target) throws IOException { Files.copy(new File(source).toPath(), new File(target).toPath(), StandardCopyOption.REPLACE_EXISTING);} ➡️ 설명Files.copy()는 파일이 존재하지 않거나 읽을 수 없는 경우 IOException을 던질 수 있음IOException은 Checked Exceptio..

[Java 문법] @Builder

@Builder✅ @Builder란? • 생성자나 Setter를 사용하지 않고, 체인 형식으로 객체를 생성하는 패턴 • 객체가 불변(Immutable)하도록 설계 가능 • 필요한 값만 선택적으로 설정 가능예제📍 기존 방식 : 생성자 사용public class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; }}User user = new User("Alice", 25); 🚨 문제점✔ 매개변수 순서를 기억해야 함✔ 필드를 선택적으로 설정하기 어려움✔ 코드 가독성이 떨어짐📍 @Builder 적용..

[Java 문법] 불변 객체(Immutable Object)란? ft. 가변 객체

가변 객체(Mutable Object)가변 객체는 상태를 변경할 수 있는 객체입니다.✅ 가변 객체(Mutable Object) 예제public class MutableUser { private String name; private int age; public MutableUser(String name, int age) { this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; }}// 객체 생성 및 변경 가능MutableUse..

[프로그래머스 / Java] Lv.0 최댓값 만들기(1)

Question https://school.programmers.co.kr/learn/courses/30/lessons/120847 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krCode방법 1) 오름차순 정렬 → 마지막 -1 인덱스 접근import java.util.*;class Solution { public int solution(int[] numbers) { // 배열을 오름차순으로 정렬 Arrays.sort(numbers); // 정렬된 배열에서 가장 큰 두 수를 곱해서 반환 return numbers[numbers.length-1..

Gradle VS Maven

Gradle? Maven?Gradle와 Maven은 소프트웨어 개발 과정에서 사용하는 빌드 도구입니다. 빌드 도구는 소스 코드 작성 후 프로그램 실행 파일로 변환하거나, 라이브러리를 추가하는 과정을 자동화하는 데 사용됩니다. 특히 Gradle과 Maven은 Java와 같은 프로그래밍 언어의 프로젝트에서 주로 사용됩니다.빌드 도구가 필요한 이유코드 작성 후 프로그램을 실행 가능한 상태로 만드는 과정은 단순히 “코드 실행”을 넘어 여러 단계를 포함합니다.  * 예시 • 컴파일(Compile) : 사람이 읽는 코드를 컴퓨터가 이해할 수 있는 형태로 변환 • 패키징(Packaging) : 프로그램의 모든 파일을 하나로 묶어 배포 가능하게 만듦 • 테스트(Test) : 코드가 제대로 동작하는지 자동으로 검증 • ..

[Java] 영속성 컨텍스트(Persistence Context)

영속성 컨텍스트(Persistence Context)영속성 컨텍스트는 JPA 계층에서 작동하는 중간 저장소로, 애플리케이션과 데이터베이스 사이에서 데이터를 임시로 보관하고 관리하는 가상의 데이터베이스라고 생각하면 됩니다.마치 우리가 물건을 바로 창고(DB)에 넣지 않고 장바구니(영속성 컨텍스트)에 담아두는 것처럼 데이터를 임시로 보관하고 관리하는 공간입니다.영속성 컨텍스트는 엔티티(Entity, 데이터베이스에 저장될 데이터)를 저장하는 가상의 데이터베이스입니다. 실제 데이터베이스에 저장하기 전에 임시로 데이터를 보관하고 관리하는 공간으로, 메모리에 존재합니다.Java 웹 어플리케이션 계층 구조 1. 애플리케이션 프레임워크 계층Spring Boot : Java 애플리케이션을 쉽게 설정하고 실행할 수 있도록..

단언 메서드 (assertion methods)

단언 메서드 (assertion methods)단언 메서드(assertion method)란, 테스트 프레임워크에서 소프트웨어 테스트 코드가 예상한 대로 동작하는지 확인하기 위해 사용하는 메서드입니다.단언 메서드는 테스트 실행 중 예상값(기대한 값)과 실제값(실행 결과)을 비교하여, 테스트가 성공했는지 실패했는지를 판단합니다.만약 비교 결과가 예상과 다르면 테스트는 실패로 간주되고, 에러 메시지가 출력됩니다.테스트 프레임워크 (Test Framework)테스트 프레임워크는 소프트웨어가 제대로 동작하는지 자동으로 확인하기 위한 도구와 라이브러리의 집합입니다. 테스트를 작성하고 실행하며 결과를 관리하는 데 도움을 줍니다.주요 테스트 프레임워크로는 JUnit이 있고, JUnit의 단언 기능을 확장해 가독성을 ..

[Java 문법] I/O Stream

I/O Stream자바(Java)는 파일 읽기와 쓰기, 네트워크 통신 등 데이터를 다룰 때 I/O Stream(입출력 스트림)을 사용합니다.I/O는 "Input/Output"의 약자로, 데이터를 입력하거나 출력하는 작업을 뜻합니다.Stream은 데이터를 한 방향으로 흐르게 하는 통로라고 생각하면 쉽습니다. 예를 들어, 수도관을 통해 물이 흐르듯, 데이터도 스트림을 통해 한쪽에서 다른 쪽으로 이동합니다. 1. Input Stream외부로부터 데이터를 읽어오는 통로ex. 파일에서 텍스트 읽기, 키보드 입력받기2. Output Stream 데이터를 외부로 내보내는 통로ex. 파일에 데이터 쓰기, 화면에 텍스트 출력하기특징스트림은 순차적으로 데이터 처리스트림은 데이터를 순차적으로 한 바이트 또는 한 문자씩 처리..

[Java 문법] Overloading VS Overriding

Overloading VS OverridingJava는 객체지향 프로그래밍 언어로, 여러 메서드를 정의하거나 재정의할 수 있는 기능이 매우 중요합니다.특히 Overloading(오버로딩)과 Overriding(오버라이딩)은 코드의 유연성과 재사용성을 극대화하기 위해 자주 사용됩니다. 특징OverloadingOverriding정의메서드 이름은 동일하지만 매개변수가 다름부모 클래스의 메서드를 재정의적용 대상동일 클래스상속 관계결정 시점컴파일 시점실행 시점주요 목적메서드의 다양성 제공메서드의 동작 변경다형성 유형컴파일 타임 폴리모피즘런타임 폴리모피즘OverloadingOverloading은 같은 이름의 메서드를 매개변수(parameter)의 형태만 다르게 하여 여러 개 정의하는 것을 말합니다.하나의 메서드 이..