전체 글
-
[Java Spring] 스프링의 MVC 구조Programming/Java 2022. 10. 21. 16:11
Spring MVC Architecture Spring MVC 동작 과정 ① Client가 URL을 통해 Request 전송 ② DispatcherServlet이 Request를 처리하기 위한 Controller를 HandlerMapping 빈 객체에게 검색 요청 ③ HandlerMapping이 Clinet URL을 이용해 이를 처리할 Controller 빈 객체를 DispatcherServlet에 return ④ DispatcherServlet은 Controller 객체를 처리할 수 있는 HandlerAdapter 빈에게 요청 처리 위임 ⑤ HandlerAdapter는 Controller에게 요청에 맞는 메소드 호출하도록 요청 ⑥ Controller는 비즈니스 로직을 수행한 후 처리 결과를 Handle..
-
[Java Spring] 스프링 프레임워크란?Programming/Java 2022. 10. 21. 10:39
스프링 프레임워크(Spring Framework) ✅ 프레임워크란? 소프트웨어의 기본적인 공통 구조를 재사용이 가용하게끔 협업화된 형태로 클래스를 제공하는 것 => 프로그램을 만들기 위한 기본 틀 - 스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 어플리케이션 프레임워크로, 엔터프라이즈급 어플리케이션 개발을 위한 모든 기능을 종합적으로 제공화된 경량화된 솔루션 - 경량 컨테이너로 자바 객체를 담고 직접 관리하며, 객체의 생성 및 소멸, 라이프 사이클을 관리하는 객체 컨테이너 1. 스프링의 주요 특징 1) POJO (Plain Old Java Object) 방식 : 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 순수한 자바 객체를 의미 - 기존 Java EE의 EJB는 비즈니스 로직뿐만 아니..
-
[디자인 패턴 Java] 디자인 패턴이란?Computer Science/Design Pattern 2022. 10. 12. 01:19
디자인 패턴이란? : 프로그램을 설계할 때 발생했던 문제점들을 해결할 수 있도록 하나의 '규약' 형태로 만들어놓은 것 - 재사용성, 호환성, 유지보수성을 예방하기 위해 패턴을 만들어 둔 것으로 특정한 구현이 아닌 아이디어임 디자인 원칙 나쁜 디자인(Design Smell) 1. 경직성 (Rigidity) - 시스템을 변경하기 어려운 디자인. 하나를 변경하기 위해 다른 것들을 변경해야 할 때 경직성이 높다고 함. 2. 취약성 (Fragility) - 특정 부분을 수정하였을 때 관련이 없던 다른 부분에 영향을 줄 때 취약성이 높다고 함. - 수정사항이 관련되지 않은 부분에도 영향을 주므로, 관리하는 비용이 높아지고 시스템의 신뢰성이 낮아짐. 3. 부동성 (Immobility) - 모듈이 쉽게 추출되지 않고 ..
-
[자료구조 Java] 비선형 자료구조 ④ 맵 (Map), 집합 (Set), 해시테이블Computer Science/Data Structure 2022. 10. 5. 19:02
비선형 자료구조란? : 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말하며 일반적으로 트리나 그래프를 의미 5. 맵 (Map) : 특정 순서에 따라 키(Key)와 매핑된 값(Value)의 조합으로 형성된 자료 구조 - 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고, Key 를 통해 Value를 얻을 수 있음 - Key는 중복될 수 없으며, Value는 중복 값을 허용함 - 자바에서 Map은 인터페이스로, 인터페이스를 구현 Map자료형에는 HashMap, LinkedHashMap, TreeMap 등이 있음 5-1. HashMap 주요 메소드 import java.util.HashMap; public class Test { public static void main(String[] ar..
-
[자료구조 Java] 비선형 자료구조 ③ 힙, 우선순위 큐Computer Science/Data Structure 2022. 10. 5. 18:33
비선형 자료구조란? : 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말하며 일반적으로 트리나 그래프를 의미 3. 우선순위 큐 : 우선순위 대기열이라고도 하며, 대기열에서 우선순위가 높은 요소가 우선순위가 낮은 요소보다 먼저 제공되는 자료 구조 - 데이터들이 우선순위를 가지고 있고, 우선 순위가 높은 데이터가 먼저 나감 - 우선순위 큐는 배열, 연결리스트, 힙으로 구현 가능하며 힙으로 구형하는 것이 가장 효율적 구현 방법 삽입 삭제 순서 없는 배열 O(1) O(n) 순서 없는 연결 리스트 O(1) O(n) 정렬된 배열 O(n) O(1) 정렬된 연결 리스트 O(n) O(1) 힙 O(log n) O(log n) 3-1. 우선순위 큐의 활용 - 시뮬레이션 시스템 - 네트워크 트래픽 제어 4. 힙 (H..
-
[자료구조 Java] 비선형 자료구조 ② 트리Computer Science/Data Structure 2022. 10. 5. 17:51
비선형 자료구조란? : 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말하며 일반적으로 트리나 그래프를 의미 2. 트리 : 계층적 관계를 표현하는 자료구조 2-1. 관련 용어 - Node(노드): 트리를 구성하고 있는 각각의 요소 - Edge(간선): 노드와 노드를 연결하는 선 - Root Node(루트 노드): 트리 구조에서 최상위에 있는 노드 - Terminal Node(=Leaf Node, 단말 노드): 하위에 다른 노드가 연결되어 있지 않은 노드 - Internal Node(내부 노드, 비단말 노드): 단말 노드를 제외한 모든 노드 (루트노드도 포함) - Sibling: 같은 부모를 가지는 노드 - 노드의 크기: 자신을 포함한 모든 자손 노드의 개수 - 노드의 깊이: 루트에서 어떤 노드에..
-
[자료구조 Java] 비선형 자료구조 ① 그래프Computer Science/Data Structure 2022. 10. 5. 17:03
비선형 자료구조란? : 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조를 말하며 일반적으로 트리나 그래프를 의미 1. 그래프 : 정점과 간선으로 이루어진 자료 구조 - 어떠한 곳에서 어떠한 곳으로 무언가를 통해 간다고 할 때, '어떠한 곳'은 정점(Vertex)이고 '무언가'는 간선(Edge)가 됨 1-1. 관련 용어 - 방향 그래프, Directed Graph(Digraph): 간선에 방향성이 포함되어 있는 그래프 - 무방향 그래프, Undirected Graph: 간선에 방향성이 없는 그래프 - 인접 정점(adjacent vertext): 간선에 의해 직접 연결된 정점 - 정점의 차수(degree): 무방향 그래프에서 하나의 정점에 인접한 정점의 수(연결된 간선의 수) ▶︎ 무방향 그래프에 존재..
-
[자료구조 Java] 선형 자료 구조(연결 리스트, 배열, 스택, 큐)Computer Science/Data Structure 2022. 10. 5. 15:53
선형자료구조란? : 요소가 일렬로 나열되어 있는 자료 구조 1. 연결 리스트 : 데이터를 감싼 노드를 포인터로 연결해 공간적 효율성을 극대화 시킨 자료구조로, prev 포인터와 next 포인터로 앞과 뒤의 자료들을 연결시킨 것 1-1. 시간 복잡도 - 삽입/삭제 : O(1) - 탐색 : O(n) 1-2. 종류 1) 싱글 연결 리스트: next 포인터만 가짐 2) 이중 연결 리스트: prev, next 포인터를 둘 다 가짐 3) 원형 이중 연결 리스트: 마지막 노드의 next 포인터가 헤드 노드(맨 앞의 자료)를 가리킴 1-3. 주요 명령어 import java.util.LinkedList; import java.util.List; public class Example { public static void..