| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바문법
- CSS
- java테스트
- IntelliJ
- string
- Java
- Eclipse
- js
- math
- Array
- list
- input
- vscode
- html
- javascript
- 인텔리제이
- 배열
- Visual Studio Code
- 자바
- 문자열
- ArrayList
- HashMap
- 단위테스트
- 테스트자동화
- junit
- json
- 정규식
- 자바스크립트
- 이클립스
- junit5
- Today
- Total
목록2025/12 (49)
어제 오늘 내일
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/ ..
Java의 enum(열거형)은 한정된 값들의 집합을 표현할 때 사용하는 특별한 타입입니다.예를 들어 요일, 상태값, 권한 등 “정해진 값만 존재해야 하는 상황”에서 매우 유용합니다.enum을 사용하면 코드 안정성이 높아지고, switch문이나 상수 처리도 훨씬 직관적입니다. 1. enum 기본 사용법enum은 클래스처럼 파일에 선언할 수 있으며, 여러 상수를 나열합니다.public enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}사용:Day today = Day.MONDAY;특징각 값은 객체처럼 취급됨상수명을 모두 대문자로 작성하는 것이 관례 2. enum을 사용하는 이유✔ 문자열/숫자 상수보다 안전String da..
Java의 익명 클래스(anonymous class)는 이름이 없는 클래스이며,일회성 동작을 만들 때 매우 유용합니다.특히 인터페이스 구현, 추상 클래스 상속, 콜백 처리, 이벤트 핸들러 등에서 널리 사용됩니다.익명 클래스는 “클래스를 만들고 → 객체 생성”의 과정을 한 번에 처리할 수 있는 간결한 방식입니다. 1. 익명 클래스 기본 형태익명 클래스는 보통 인터페이스나 추상 클래스의 구현을 즉석에서 정의할 때 사용합니다.형식:타입 변수 = new 타입() { // 메서드 재정의(오버라이딩) 필요}; 2. 인터페이스 구현 예제가장 일반적인 사용 방식입니다.interface Greeting { void hello();}public class Main { public static void ma..
Java의 내부 클래스(inner class)는 클래스 내부에 선언된 클래스로, 외부 클래스와 밀접한 연관이 있는 로직을 함께 묶어 관리할 때 사용됩니다.내부 클래스는 외부 클래스의 멤버에 쉽게 접근할 수 있고, 구조를 논리적으로 그룹화하는 데 유용합니다. Java에서는 내부 클래스를 네 가지 형태로 제공합니다. 1. 멤버 내부 클래스 (Member Inner Class)외부 클래스의 멤버 위치에 선언된 일반적인 내부 클래스입니다.외부 클래스의 인스턴스 멤버에 자유롭게 접근할 수 있습니다.예제class Outer { private int value = 10; class Inner { void print() { System.out.println("value = "..
메서드 오버라이딩(Overriding)은 자식 클래스에서 부모 클래스의 메서드를 재정의하여자식 클래스에 맞는 동작을 구현하는 기능입니다.다형성의 핵심 요소이며 객체지향에서 매우 중요한 개념입니다.이 글에서는 오버라이딩을 사용할 때 반드시 지켜야 하는 규칙을 명확하게 정리합니다. 1. 메서드 이름이 같아야 한다부모 메서드와 동일한 메서드 이름을 가져야 오버라이딩이 성립합니다.class Parent { void hello() {}}class Child extends Parent { @Override void hello() {} // 이름 동일} 2. 매개변수(파라미터) 타입과 개수가 같아야 한다메서드 시그니처(이름 + 매개변수)가 완전히 같아야 오버라이딩입니다.조금이라도 다르면 오버로딩(O..
Java에서 객체지향 설계를 할 때 중요한 선택 중 하나는“상속(Inheritance)을 사용할 것인가, 합성(Composition)을 사용할 것인가?” 입니다.두 개념은 모두 객체 간 관계를 표현하지만, 구조적 차이와 설계 철학에서 큰 차이를 보입니다.이 글에서는 합성과 상속의 개념, 특징, 차이점, 언제 사용해야 하는지 명확하게 정리합니다. 1. 상속(Inheritance)상속은 부모 클래스의 기능을 자식 클래스가 물려받는 관계입니다.is-a 관계라고도 부릅니다.예:class Animal { void eat() { System.out.println("먹습니다"); }}class Dog extends Animal { void bark() { System.out...
Java를 비롯한 객체지향 프로그래밍(OOP)에서는 4대 핵심 원칙이 존재합니다.바로 상속(Inheritance), 추상화(Abstraction), 캡슐화(Encapsulation), 다형성(Polymorphism)입니다.이 네 가지가 객체지향의 구조와 설계를 이루는 기본 뼈대이며, 서로 유기적으로 연결되어 동작합니다. 1. 상속(Inheritance)상속은 기존 클래스(부모)의 속성과 기능을 새로운 클래스(자식)가 물려받는 것입니다.특징부모 클래스의 필드와 메서드 재사용코드 중복 감소자식 클래스에서 기능 확장 가능예제class Animal { void eat() { System.out.println("먹습니다"); }}class Dog extends Animal { void..
Java의 캡슐화(Encapsulation)는 객체지향 프로그래밍(OOP)의 핵심 개념 중 하나로,객체의 데이터(필드)를 외부에서 직접 접근하지 못하도록 숨기고, 필요한 경우 메서드를 통해서만 접근하도록 만드는 것을 의미합니다.이를 통해 데이터 보호, 잘못된 접근 방지, 유지보수성 향상 등의 효과를 얻을 수 있습니다. 1. 캡슐화의 핵심 개념캡슐화는 크게 두 가지 원칙으로 구성됩니다.필드(변수)를 private으로 감추기 (정보 은닉)getter/setter 같은 공개된 메서드를 통해 접근하도록 제한하기예:private int age; // 외부에서 직접 접근 불가public int getAge() { // 메서드를 통해서만 접근 return age;}public void setAge(..
