목록Programing & Coding (86)
S E P H ' S
Spring 핵심 3대 요소 스프링 프레임워크는 POJO (Plain Old Java Object) 프로그래밍을 지향한다. 순수 Java만을 통해서 생성한 객체를 말하는데 이를 지향하는 이유는 외부 기술이나 규약의 변화에 얽매이지 않고 유연하게 변화와 확장에 대처할 수 있다. 이를 통해 비즈니스 로직을 구현하면 객체지향 설계를 제한없이 적용할 수 있으며 코드가 단순해져 테스트와 디버깅이 쉬워진다. 이처럼 비즈니스 로직을 구현하는데에 POJO를 적극적으로 활용하는 패러다임을 POJO 프로그래밍이라고 한다. 이번 포스팅은 POJO 프로그래밍을 위해 스프링이 지원하는 기술인 IoC/DI, AOP, PSA에 대해 간략하게 알아보는 포스팅이 될 것이다. 1. IoC / DI (Inversion of Control..
오래전에 작성한 Spring에 대한 포스트에 이어서 Spring Framework에 대한 이해를 높이기 위해 다시 포스트를 시작했다. Spring을 사용해서 4개의 프로젝트를 진행했음에도 여전히 깊은 이해는 부족하다고 생각이 들었다. 그래서 Spring에 대해서 더욱 깊게 알아보려고 한다. Spring의 등장 기본적인 구조와 특징은 간략하게 1. 스프링(Spring)이란? 에서 다루었다. 지난 글을 가볍게 읽고 넘어온다면 Spring에 대한 이해가 더욱 잘될 것이라 생각된다. 스프링이 등장하기 전, 자바 개발자들은 EJB(Enterprise Java Beans)를 주 프레임워크로 사용했다. 2002년에 로드 존슨이 출판한 도서 "Expert One-on-One J2EE Desing and Developm..
Iterator iterator의 사전적 의미는 반복자이다. 동사형인 iterate는 사전을 찾아보면 (계산, 컴퓨터 처리 절차를)반복하다. 라고 되어있다. 뉘앙스만 보자면 코드에서 반복적인 일을 처리하도록 할 것 같다. 그런데 이미 for, while과 같은 반복문으로 우리는 코드의 반복적인 작업을 처리하고 있다. 그런데 굳이 왜 iterator를 사용할까? 또, 알고리즘 문제를 풀다가 상대적으로 많이 접해보지 않아서 정확히 알아보고자 포스팅을 하게 됐다. 알고리즘 문제 풀이를 하거나 코드 작업을 하다보면 Collection 객체의 요소들을 조작할 일들이 정말 많다. 삽입이나 수정, 삭제 등과 같은 일을 하게 되는데 코드로 예시를 살펴보자. public static void main(String[] a..
우선순위 큐(Priority Queue) 힙(Heap) 자료구조를 기반으로 구현된다. 힙은 노드를 활용하여 링크드리스트 처럼 구현하는 방식이 있고 배열을 활용하는 방식이 있는데 힙의 특성상 배열을 이용하는 것이 훨씬 구현이 편리하다. 우선순위 큐는 힙의 특성을 이용해서 '우선순위가 높은 요소가 우선순위가 낮은 요소보다 먼저 제공되는 자료 구조'이다. 우선순위 큐에서 사용하는 힙의 특성은 '부모 노드는 항상 자식보다 우선순위가 높다'는 성질이다. 이를 활용하여 힙에서는 부모노드를 제거해가면서 우선 순위가 높은 순대로 뽑혀 나오는 것으로 구현했었다. 다만 주의해야할 것은 우선순위 큐가 힙이고 힙이 우선순위 큐는 아니라는 것이다. 힙은 '최솟값 혹은 최댓값을 빠르게 찾아내기 위해 완전이진트리 형태로 만들어진 ..