728x90
반응형

JAVA 23

자바 예외 처리 완전 정복

1. 예외(Exception)란 무엇일까?프로그램을 작성하다 보면, 정상적인 흐름을 방해하는 상황이 발생할 수 있어요. 예를 들면,0으로 나누기 (ArithmeticException)없는 파일을 읽으려 할 때 (FileNotFoundException)배열의 범위를 초과할 때 (ArrayIndexOutOfBoundsException)이런 상황을 자바에서는 예외(Exception) 라고 부르고, 이런 일이 발생하면 JVM은 프로그램을 멈추고 예외 정보를 출력해요.하지만 우리가 이런 예외를 잘 처리하면, 프로그램이 멈추지 않고 안정적으로 흐름을 이어갈 수 있어요.2. 예외 처리의 기본 구조 (try-catch-finally)예외가 발생할 수 있는 코드를 try 블록으로 감싸고, 문제가 생기면 catch 블록에..

JAVA 2025.06.05

Java Collection과 Stream 개념 정리

📌 자바 Collection이란?자바에서 데이터를 저장하고 관리하기 위한 기본적인 틀을 Collection이라고 해요. 대표적으로는 다음 3가지가 있어요:List: 순서가 있는 데이터 저장 (ex. ArrayList)Set: 중복 없는 데이터 저장 (ex. HashSet)Map: 키-값 쌍으로 저장 (ex. HashMap)이들 각각은 저장 방식이 다르기 때문에, 데이터를 꺼내는 방식도 달라요. 그래서 코드가 길어지고 복잡해질 수 있죠.💡 그래서 등장한 게 Stream!자바 8부터는 Stream과 Lambda가 도입되면서, 이 복잡한 데이터를 다루는 방식을 훨씬 간결하고 직관적으로 바꿔줬어요.Stream은 쉽게 말해, "데이터의 흐름"이에요. 반복문 없이도 원하는 데이터를 걸러내고 가공하고 모을 수 있..

JAVA 2025.05.16

람다식, 함수형 인터페이스, Collection Stream

1. 🔹 람다식(Lambda Expression)이란?자바 8부터 등장한 람다식은 한마디로 말해서**"이름 없는 함수(익명 함수)"**를 만드는 방식이야.원래 자바에서는 메서드를 만들려면 클래스나 인터페이스가 필요했지.근데 람다식을 쓰면 그럴 필요 없이, 코드를 훨씬 짧고 간결하게 작성할 수 있어!✅ 기존 방식 vs 람다식// 기존 방식: 메서드 정의int add(int x, int y){ return x + y;}// 람다식: 이름 없이 바로 사용(x, y) -> x + y📌 람다식에서는메서드 이름 ❌, 반환형 ❌, 중괄호 ❌, return ❌전부 생략 가능하다! 단, 상황에 따라 생략이 불가능한 경우도 있어.2. 🔹 함수형 인터페이스(Functional Interface)람다식은 혼자서 쓸..

JAVA 2025.05.14

자바에서 객체 생성의 원리 이해하기

자바에서 클래스를 이용해 객체를 생성하는 과정을 메모리 관점에서 이해하면, 코드가 어떻게 작동하는지 훨씬 명확하게 보입니다.📌 클래스는 ‘설계도’, 객체는 ‘실제 제품’ Shirt longT = new Shirt();Shirt shortT = new Shirt();Clothing t = new Shirt(); // ✅ 가능 (상위 타입으로 선언)Car t1 = new Shirt(); // ❌ 오류 (일반화가 안 되는 경우) Shirt는 클래스이며, 이는 여러 개의 서로 다른 객체를 만들 수 있는 타입(Type) 역할을 합니다.Shirt longT와 Shirt shortT는 각각 독립적인 객체입니다.다형성(polymorphism) 덕분에 Shirt 객체를 상위 클래스 타입인 Clothing으로 ..

JAVA 2025.05.12

생성자 오버로딩, MVC 구조, 서비스 클래스와 싱글톤

1. 생성자 오버로딩 (Constructor Overloading)생성자 오버로딩은 동일한 클래스에서 다수의 생성자를 정의하는 기법으로, 각 생성자는 매개변수의 개수나 타입에 따라 다르게 동작합니다. 이는 객체를 생성할 때 필요한 값들이 다를 수 있기 때문에 유용하게 사용됩니다.예시:public class Employee { private int empno; private String name; private double salary; private String address; // 기본값 설정 public static final String DEFAULT_NAME = "홍길동"; public static final double BASIC_SALARY = 100.0;..

JAVA 2025.05.08

상속과 메모리, 메서드 오버라이딩, Object 클래스 이해

이번 수업에서는 자바 객체지향 프로그래밍의 핵심 주제인 상속(inheritance),생성자와 메모리 구조, 그리고 오버라이딩(Overriding),자바의 조상 클래스인 Object 클래스에 대해 다뤘습니다.✅ 1. 상속이란? (Inheritance)📌 정의"부모 클래스가 가진 필드와 메서드를 자식 클래스가 물려받는 것"자식은 부모의 것을 확장해서 사용부모는 일반화, 자식은 구체화 class Employee { String name; double salary; MyDate birthDay;}class Manager extends Employee { String dept;}→ Manager is a Employee, Engineer is a Employee 관계가 성립해야 올바른 상속..

JAVA 2025.05.07

배열의 한계와 다형성(Polymorphism)의 강력함

오늘은 객체지향 프로그래밍의 핵심 키워드인 **다형성(Polymorphism)**과,배열의 한계를 극복하기 위한 설계 기법들을 학습했습니다.실무에서 클래스 설계를 할 때 자주 마주치게 되는 개념들이니 꼭 정리해둬야 합니다.✅ 1. Homogeneous vs Heterogeneous Collection📌 배열의 한계ReSizing 불가: 배열의 크기는 고정. 늘이거나 줄이려면 새로운 배열 필요동일한 타입만 저장: int[], String[], Employee[] → Homogeneous Collection (동종 집합체) Engineer[] engineers = new Engineer[10];Manager[] managers = new Manager[10];Secretary[] secretaries = ..

JAVA 2025.05.07

예외 처리 & 추상 클래스의 진짜 의미

✅ 1. Exception이란?**예외(Exception)**이란 프로그램 실행 중 발생하는 예기치 못한 상황입니다.단순히 “버그”가 아니라, 의도적으로 예외를 발생시켜 프로그램의 흐름을 제어하는 제어문처럼 활용할 수도 있습니다.💡 예외 처리 = 코드의 안전장치이자 흐름 제어 도구📌 Compile 계열 Exception컴파일 시 반드시 처리해야 하는 예외대표적으로 입출력 예외 (IOException), 파일 관련 예외 등✅ 2. 사용자 정의 예외와 예외 처리 원칙서비스 클래스에서는 직접 try-catch 하지 말고 반드시 throws로 던질 것!예외는 테스트 클래스에서 받아서 처리하는 구조로 만들자. // 잘못된 방식public void readFile(String fileName) { try ..

JAVA 2025.05.07

TreeSet, 예외처리, 로또 번호 생성기 만들기

✅ 1. 팀 프로젝트 준비: 구조와 협업 툴Jira Tool: 팀 협업에 사용. 이슈 등록, 역할 분담, 일정 관리에 효과적!클래스 구조 전체 파악: 어떤 클래스들이 있고, 어떤 역할을 하는지 큰 그림부터 잡기기능 단위로 작게 구현 → 테스트 → 확장: 하나의 서비스 기능을 완성한 후 전체 구조로 확대해나가기✅ 2. Collection API 복습: Set 방식으로 객체 관리🔸 Set 특징중복 ❌순서 ❌ (HashSet), 정렬 ❌객체만 저장 가능Set set = new HashSet();set.add(11); // 실제론 set.add(new Integer(11)); → AutoBoxing 덕분에 편하게 사용 가능🔸 HashSet중복 허용 안함순서 보장 안함객체 비교는 equals()와 hashCo..

JAVA 2025.05.06

Collection, 예외처리, 추상클래스

🧺 1. Collection API - 자바에서 자료를 저장하는 방식다른 언어에서 '자료형'이라고 부르는 것과 비슷하지만, 자바에서는 컬렉션(Collection) API라고 해요.컬렉션은 데이터를 효율적으로 저장하고 꺼내기 위한 '도구 세트'입니다. Set, List, Map은 모두 interface(설계도) 이고, 각각의 특성에 맞는 다양한 클래스가 존재합니다.🔸 List (순서 있음, 중복 허용)대표 클래스: ArrayList특징: 인덱스(index)로 순서를 관리예: 대기자 명단처럼 순서대로 저장할 때 사용🔸 Set (순서 없음, 중복 허용 X)대표 클래스: HashSet특징: 중복 제거 필터링에 좋음!예: 출석 체크, 좋아요 누른 사용자 등🔸 Map (Key-Value 쌍으로 저장)대표 클..

JAVA 2025.05.06
728x90
반응형