
1. AOP란?💡 관점 지향 프로그래밍(Aspect Oriented Programming)중복되는 공통 코드를 분리하고 코드 실행 전이나 후의 시점에 해당 코드를 삽입함으로써 소스 코드의 중복을 줄이고, 필요할 때마다 가져다 쓸 수 있게 객체화하는 기술객체지향 프로그래밍(OOP, Object Oriented Programming)을 보완하기 위해 사용📌 JoinPoint 들 중에서 Point Cut 을 선정해서 Advice를 적용! cf. 횡단 관점애플리케이션 로직은 핵심기능과 부가기능으로 나뉜다.- 핵심 기능 : 해당 객체가 제공하는 고유의 기능- 부가 기능 : 핵심 기능을 보조하기 위해 제공되는 기능(ex. 로그 추적 기능, 트랜잭션 기능)일반적으로 기존 프로젝트에 부가 기능을 추가하게 되면 하나..

1. Stream 개요1-1. Stream 이란?💡 컬렉션에 저장된 엘리먼트들을 하나씩 순회하면서 처리할 수 있는 기능.람다식과 함께 사용할 수 있으며 컬렉션에 들어있는 데이터에 대한 처리를 간결하게 표현또한 내부 반복자를 사용하기 때문에 병렬처리가 쉽다는 장점.package com.ohgiraffers.section01.intro;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Application1 { public static void main(String[] args) { /* 수업목표. Stream에 대해 이해하고 활용할 수 있다. */ /* 설명. ..
1. 열거타입(enum)이란?1-1. 열거타입 정의💡 관련이 있는 상수의 집합의 클래스.각각의 열거 상수는 열거 객체로 생성된다.상수란?상수는 변하지 않는 수이다. 예를 들어 하루는 24시간이고 한 시간은 60분이다. 이런 변하지 않는 것을 상수라고 하고 자바에서는 final 이라는 키워드로 선언한다.상수는 값이 한번 정해지면 변경할 수 없다.변수와 다르게 상수명은 모든 문자를 영어 대문자로 작성해야한다.2. enum 의 등장 배경2-1. 정수 열거 패턴 단점정수 열거 패턴은 타입 안전을 보장할 방법이 없으며 에러 디버깅이 어렵다.자바에서 별도의 namespace를 지원하지 않아 접두어를 붙여 상수 명을 구분하였어도 실제 프로그램이 기동할 때에 MEAL_AN_BUTTER_KIMCHI_STEW 와 DRI..

1. Map 개요1-1. Map 이란?💡 키와 값을 하나의 쌍으로 저장하는 자료구조.키는 실제 데이터를 찾기 위한 역할.Map 이란 Collection 인터페이스와는 다른 저장 방식.Map의 종류로는 HashMap, HashTable, TreeMap 등이 있다. 2. HashMap 개요2-1. HashMap 이란?💡 Map 인터페이스를 구현하고 있는 클래스 중에 가장 자주 쓰이는 클래스.Key-Value 쌍으로 데이터를 저장하며 다양한 value를 가질 수 있지만 Key는 중복이 안된다.2-2. HashMap 특징저장은 느리지만 Hashing 이라는 해시 함수를 이용해서 데이터를 해시 테이블에 저장하기 때문에 검색 측면에서 뛰어나다.Key는 중복이 불가능하지만, value는 중복이 가능하다.중복된 키..

1. Set 개요💡 집합처럼 중복되지 않는 데이터를 저장하는 자료구조.중복을 허용하지 않는다 → 중복 저장을 허용하지 않는다.null도 하나의 null만 저장.Set 에는 크게 TreeSet, HashSet, LinkedHashSet 이 있다.2. HashSet 개요2-1. HashSet 이란?💡 해시 테이블 구조를 이용하여 데이터를 저장하는 구조.Set의 특징을 가지고 있으며 중복된 값이 저장되지 않는다.2-2. HashSet 특징HashSet은 해시 테이블 구조를 이용한 HashMap을 이용하여 만들어져 있다. 즉, Map의 특성 중 중복 키 값이 있을 수 없다는 특징을 계승한다.인덱스가 아닌 키 값을 이용하여 데이터에 저장과 접근을 한다.삽입 삭제가 빈번한 경우 사용할 수 있다.package c..

1. List 개요1-1. List 인터페이스란?💡 순서가 있는 데이터의 집합으로 같은 데이터의 중복 저장을 허용.ArrayList, LinkedList, Vector, Stack이 있다.1-2. List 특징List 인터페이스를 구현한 모든 클래스는 저장 순서가 유지된다.List 계열의 클래스는 중복 저장을 허용한다.2. ArrayList 개요2-1. ArrayList 란?💡 자바에서 제공하는 기본 배열보다 느릴 수 있지만 동적 배열이 구현되어 있다.2-2. ArrayList 특징ArrayList는 인스턴스를 생성하게 되면 내부적으로 10칸짜리 배열을 생성해서 관리한다.배열의 단점을 보완하기 위해 만들어졌기 때문에 크기 변경, 요소 추가/삭제/정렬 기능들을 메소드로 제공하고 있다.자동적으로 수행되는..

1. 컬렉션 개요1-1. 컬렉션이란?💡 많은 데이터들을 효과적으로 처리할 수 있는 방법을 제공하는 클래스들의 집합.Collection 인터페이스는 List, Set, Queue 로 크게 3가지 상위 인터페이스로 분류.List와 Set, Queue는 Collection 인터페이스르 상속 받지만, 구조 상의 이유로 Map은 따로 구현되어 있다.📌 ArrayList와 HashMap 무조건 쓸 줄 알아야 한다!! 1-2. Collection 사용하는 이유일관된 APICollection 에서 제공하는 규격화된 메소드를 사용→ 일관된 사용과 유지보수 가능프로그래밍 비용 감소이미 제공된 자료구조를 활용 (low-level의 알고리즘을 고민할 시간과 노력을 아낄 수 있다.)프로그래밍 속도 및 품질 향상필요한 자료구..

1. 제네릭스1-1. 제네릭스(Generics)란?💡 데이터의 타입을 일반화한다는 의미를 가진다.제네릭 클래스는 제네릭 타입(T, E, K, V)을 활용하여 하나의 클래스로 해당 제네릭 타입에 변화를 줘서 제네릭 클래스의 인스턴스를 다양한 타입을 지닌 인스턴스로 활용public class GenericTest { private T value; public T getValue() { return value; } public void setValue(T value) { this.value = value; }}// 제네릭 클래스의 T(타입)에 해당하는 부분이 모두 Integer로 변환된다.GenericTest gt = new GenericTest();1-2. 제네릭스를 사용하는 이유💡 구현의 편의..