본문 바로가기

BE

[JAVA] 자바 컬렉션 프레임워크(List/Set/Map) 이해 목차 1. 컬렉션 프레임워크(Collection Framework) 2. List 인터페이스(List Inteface) 3. Set 인터페이스(Set Inteface) 4. Map 인터페이스(Map Interface) 📌 1. 컬렉션 프레임워크(Collection Framework) Collection Framework 란 무엇일까요? 말 그대로 컬렉션(Collection) 과 프레임워크(Framework)를 합한 말입니다. 첫번째로, 컬렉션(Collection) 의 사전적 의미는 '한 공간에 여러가지 물건을 모아 넣은 것'을 의미합니다. JAVA에서도 사전적 의미와 비슷하게 비슷한 데이터들을 한 공간에 모아 넣은 것을 의미합니다. 두번째로, 프레임워크(Framework)의 사전적 의미는 '어떤 목적을 .. 더보기
[JAVA] 자바 예외 처리(Exception Handling) 목차 1. 예외 처리란 ? 2. 예외 VS 에러 3. 예외 클래스 4. Checked VS Uncheckd Exception 5. 예외 처리 기법 📌 1. 예외 처리란? 예외 처리란, 예외나 에러가 발생 가능한 상황을 미연에 방지하기 위해서 개발자가 코드 상으로 미리 예외를 처리하는 것을 말합니다. 📌 2. 예외 VS 오류 ⚡ 1) 예외(Exception)란 ? 예외(Exception)란 에러보다 심각도가 낮으며 프로그램의 정상적인 흐름을 방해하는 상황의 원인을 에러라고 합니다. 예를 들어 프로그램의 예외가 발생하는 경우는 파일을 읽으려고 하는데 빈 파일이거나(FileNotFoundException), 클래스를 로딩해야 하는데 해당 클래스가 없는 경우(ClassNotFoundException)등 입니다... 더보기
[JAVA] 자바 제네릭(Generic) 기본 및 활용 목차 1. 제네릭이란? 2. 제네릭 타입이란? 3. 제네릭을 사용하는 이유 4. 제네릭 타입 예제 📌 1. 제네릭이란? 제네릭(Generic)이란 "타입을 일반화"하는 것을 의미하며 클래스 내부에서 정하는 것이 아닌 사용자 호출에 의해 타입이 지정되는 것을 의미합니다. 즉, 특정 타입의 변수형에 지정되는 것이 아닌 필요에 의해 여러 가지를 타입(Integer, String 등)을 사용하고 싶을 경우 사용합니다. 제네릭 타입 클래스는 자바5부터 추가된 개념으로 자바 API 문서에도 간간히 볼 수 있는데요. 주로 우리가 쓰는 컬렉션 프레임워크의 List 인터페이스도 제네릭 타입입니다. 📌2. 제네릭 타입이란? 제네릭 타입은 타입(Type)을 파라미터로 가지는 클래스와 인터페이스를 말합니다. 즉 제네릭 타입은.. 더보기
[JAVA] 자바 인터페이스(Interface) 기본 및 활용 목차 1) 인터페이스란? 2) 인터페이스 특징 3) 인터페이스 구현 📌1 ) 인터페이스란? 인터페이스는 추상 메서드만을 가질 수 있고 구현메서드는 가질 수 없는 일종의 추상 클래스입니다. 위의 추상 클래스와 다른 점은 자식 클래스들의 기능 유사도인데요. 추상클래스는 서로 비슷한 기능을 하는 클래스들을 묶을 때 사용하며, 인터페이스는 서로 다른 기능을 하는 클래스들을 묶을 때 인터페이스를 사용합니다. ⚡ 인터페이스는 100% 다형성 보장 부모 클래스가 인터페이스이면 자식 클래스가 무조건 구현되어야 합니다. 즉 부모 인터페이스의 모든 메서드들을 자식 클래스에서 반드시 재정의되어야 하기 때문에 다형성이 보장됩니다. ⚡ 인터페이스 멤버 변수 인터페이스 멤버 변수는 public static final 로만 지정가.. 더보기
[JAVA] 자바 추상 클래스 기본 및 활용 목차 1) 추상화란? 2) 추상 클래스란? 3) 추상 클래스 상속 📌 1) 추상화란? 추상화란 말 그대로 추상적인데요. 추상화의 일반적인 의미는 "여러가지 사물/개념에서 공통되는 특성을 묶어 이름을 붙이는 것"입니다. 자바에서 프로그래밍적으로 추상화는 공통된 행동, 필드를 묶어 하나의 클래스를 만드는 것을 의미합니다. 예를 들어 강아지,고양이 등의 "펫"은 먹기/걷기 등의 행동을 하기 때문에 "펫"이라는 추상 클래스를 만들 수 있습니다. 📌 2) 추상 클래스란? 추상클래스란, 하나 이상의 추상 메소드를 포함한 클래스를 추상 클래스(abstract class)라고 합니다. 단 하나 이상의 추상 메서드만 포함하면 되며 생성자, 일반 메서드도 포함 가능합니다. 추상클래스와 인터페이스의 다른 점은 인터페이스는 .. 더보기
[JAVA] 자바 다형성 기본 및 활용 목차 1. 다형성이란? 2. 다형성의 이점 3. 다형성 필수 조건 4. 다형성 구현 방법 5. 예제 6. 객체 타입 확인 : instanceof 📌 1. 다형성이란? 다형성(polymorphism)이란 부모-자식 상속 관계에 있는 클래스에서 상위 클래스가 동일한 메시지로 하위 클래스들을 서로 다르게 동작시키는 객체 지향 원리입니다. 다형성을 활용하면 부모 클래스가 자식 클래스의 동작 방식을 알수 없어도 오버라이딩을 통해 자식 클래스를 접근할 수 있습니다. 그렇다면 어떻게 부모가 자식이 어떤 일을 하는 지 몰라도, 자식 멤버 함수를 호출시킬 수 있을 까요? 이유는 동적 바인딩 때문입니다. 동적바인딩이란, 메서드가 실행 시점에서 성격이 결정되는 바인딩인데요. 프로그램의 컴파일 시점에 부모 클래스는 자신의 멤.. 더보기
[JAVA] 자바 상속 기본 및 활용 목차 1. 상속 2. 오버라이딩 3. 객체 생성 방법 (자기자신, 형변환) 📌1. 상속(Inheritance) 객체지향 프로그래밍에서 '상속' 관계란 부모 클래스와 자식 클래스가 주체가 되어 자식클래스가 부모의 변수 및 메서드를 상속받아 활용할 수 있는 것을 말합니다. 즉, 부모가 자녀에게 변수/메서드 상속해주게 되면 자식은 부모가 가지고 있는 상태/동작을 모두 활용할 수 있습니다. 자바에서 extends 를 활용해 상속받는데, 자녀 클래스는 extends 키워드를 통해 부모 클래스를 상속받습니다. 부모 클래스는 상위 클래스(슈퍼 클래스, super class) 라고 하며, 자식 클래스는 하위 클래스(서브 클래스, sub class) 라고 합니다. ⚡ 클래스 생성자 호출 순서 (부모 -> 자식) 클래스의.. 더보기
[JAVA] 객체 지향 프로그래밍 기본 및 활용 (SOLID) 목차 1. 객체지향프로그래밍이란? 2. 객체지향 프로그래밍의 유연성 3. 클래스/객체/인스턴스란? 4. 객체 지향 프로그래밍 : 역할과 구현을 분리 (SOC) 5. 좋은 객체 지향 설계의 5가지 원칙 (SOLID) 📌 1. 객체지향프로그래밍이란? 자바는 객체 지향 프로그래밍 언어입니다. 객체 지향 프로그래밍은 기존의 절차 지향 프로그래밍에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것입니다. 객체란, 물리적/추상적으로 독립된 단위로서 고유의 속성을 가지고 있고 식별 가능한 것을 말합니다. 우리 현실에 있는 차, 냉장고, 고객, 배송 등을 객체라고 부릅니다. 객체지향프로그래밍의 대표적 특징에는 상속,캡슐화(은닉),다형성,추상화가 있습니다. 📌 2. 객체지향 프로그래밍의 유연.. 더보기