기술 창고/Java(21)
-
[Java] DI (의존성 주입) / IoC (제어의 역전)
스스로 프로젝트를 진행하면서 코드를 짜다보면 명확하게 모르고 두루뭉실 아는 상태에서 사용하는 코드들 혹은 개념들이 많다고 느낀다. 그 중에서 DI는 가장 흔히 사용하고 있음에도 불구하고 뭔지 잘 모르고 있는 것 같아 정리해야할 필요가 있어보인다. IoC (제어의 역전) IoC를 해석하게 된다면 '제어의 역전' 이라고 부르는데, 이는 개발적인 개념에서 객체의 생성, 생명 주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 뜻한다. Spring을 사용한다면 모든 객체에 대한 제어권은 개발자인 본인이 가지고 있는 것이 아니라 Spring이 알아서 관리하고 제어한다는 것이다. IoC 컨테이너 컨테이너라는 것은 보통 객체의 생명주기를 관리하고, 생성된 인스턴스들에게 추가적인 기능들을 제공하도록 하는 것이다..
2023.01.06 -
[Java] 스택(Stack) / 큐(Queue)
자료구조 중에서 가장 기본적이고 대표적인 자료구조에 대해서 정리를 하고자 한다. 정보처리기사 시리즈 자격증들을 취득할 때 항상 나오던 개념일 뿐만 아니라 실무에서도 해당 개념은 기본적인 베이스로 잡고가는 자료구조라고 생각한다. 스택(Stack) 스택이라는 것은 말 그대로 쌓아올린다는 뜻이다. 흔히 볼 수 있는 게임에서도 스택이라는 형태로 경험치를 쌓거나 혹은 스킬 포인트를 쌓듯이 스택은 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조를 뜻한다. [스택의 특징] 스택은 위의 사진처럼 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을수 있고, top으로 정한 곳을 통해서만 접근할 수 있다. top에는 가장 위에 있는 자료는 가장 최근에 들어온 자료를 가리키고 있으며, 삽입되는 새 자료는 top이 가리키..
2023.01.06 -
[Java] LinkedList
LinkedList는 각각의 노드를 연결하는 방식의 자료구조이다. 각각의 노드들은 데이터와 함께 다음 노드와 이전 노드 값을 내부적으로 가지고 있다. (이중형 연결 리스트) 어느 위치에서든 추가나 삭제를 할 경우 변경되는 노드만 다시 연결해주면 된다. 그래서 ArrayList는 주로 검색이 많은 경우에 사용하고 LinkedList는 잦은 삽입/삭제 작업이 발생할 때 사용한다. LinkedList 사용 import java.util.*; public class TestMain { public static void main(String[] args) { // LinkedList 생성 / 초기화 LinkedList linklist = new LinkedList(); // LinkedList 자원 추가 link..
2023.01.05