목록JAVA (15)
코딩 이래요래

1. IoC (Inversion of Control) - 제어의 역전 즉, 객체의 생성, 초기화 등 개발자가 직접 제어하는 것이 아닌, 컨테이너가 대신 관리하는 개념 1-1. IoC 구조 ☑️ 기존의 의존성 주입// controllerpublic class UserController { UserService userService = new JCFUserService(); // 객체를 직접 생성}// servicepublic class UserService { private final UserRepository userRepository; public UserService(UserRepository userRepository) { this.userRepository = user..

✅ 트리(Tree) 자료구조트리(Tree)는 계층적 구조를 표현하는 비선형 자료구조임노드(Node)들이 간선(Edge)으로 연결된 형태로 구성되어 있음최상단 노드를 루트(Root)로 하고, 아래로 계층적으로 뻗어 나감부모-자식 관계가 존재하며, 순환 구조를 가지지 않음 (비순환 그래프)📌 1-1 트리 구조의 특징루트 노드(Root Node)트리의 최상단에 위치한 노드부모 노드(Parent Node), 자식 노드(Child Node)하나의 부모는 여러 개의 자식을 가질 수 있음하나의 자식은 오직 하나의 부모만을 가질 수 있음부모에서 자식으로 향하는 단방향 구조를 가짐 (순환 구조 없음)단말 노드(Leaf Node)자식 노드를 갖지 않는 노드📌 1-2 트리 순회(Tree Traversal)트리를 일정한 ..

🥞 1. StackJava에서 Stack 클래스는 Vector 클래스를 상속받아 만들어짐구조는 LIFO (Last-In-First-Out)가장 마지막에 삽입된 데이터가 가장 먼저 제거됨📌 LIFO 특징삽입과 삭제는 항상 Top에서만 일어남중간 요소 접근은 불가능하며, 꺼내려면 위부터 모두 제거해야 함✅ Stack 사용 사례웹 브라우저의 뒤로가기(Back) 기능함수 호출 시 호출 스택 관리괄호 짝 맞추기, 수식 계산🚚 2. Queue구조는 FIFO (First-In-First-Out)가장 먼저 들어간 데이터가 가장 먼저 나옴일반적으로 LinkedList 또는 ArrayDeque로 구현함한쪽은 enqueue(삽입), 다른 한쪽은 dequeue(삭제)만 담당함📌 FIFO 특징Front에서 삭제, Rea..

📦 1. ArrayList1) ArrayList의 특징과 동작 원리ArrayList는 기본 배열과 달리 동적 배열 기반의 자료구조임내부적으로 연속된 메모리 공간에 데이터를 저장함기본 생성 시 내부 배열 크기는 10으로 생성하여 데이터를 저장함✅ 장점인덱스를 통한 접근 속도가 빠름구조가 단순하고 사용이 직관적임Java 컬렉션 프레임워크와 호환성이 뛰어남2) 동적 배열 크기 조정 원리용량이 부족해지면 다음과 같은 과정으로 배열 크기를 늘림새 배열 생성기존 배열보다 약 1.5배 큰 배열을 새로 생성함이 때 찰나의 순간이지만 새로운 배열을 생성하기 때문에 메모리가 할당 됨데이터 복사기존 배열의 데이터를 새 배열에 깊은 복사함✔ 깊은 복사 : 객체 자체를 복제하는 방식✖ 얕은 복사 : 주소값만 복사하여 동일한 ..