전체 글 66

Web Socket - 채팅상담 서비스 구현 (1)

Web Socket을 사용하여 구현WebSocketConfiguration.class@RequiredArgsConstructor@EnableWebSocket@Configurationpublic class WebSocketConfiguration implements WebSocketConfigurer { final WebSocketChatHandler webSocketChatHandler; @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(webSocketChatHandler, "/ws/chats"); }} WebSocketChatHan..

[자료구조] 원형 큐(CircularQueue)

Queue를 구현하는 방법1. 이전 포스트의 선형 큐 LinkedList를 이용한 구현2. 배열을 이용한 원형 큐 구현  ● 배열을 이용한 선형 큐 구현은 너무 비효율적 원형 큐 (CircularQueue)1. 우선 Queue 구현에 사용할 IQueue 인터페이스를 생성package queue;public interface IQueue { void offer(T data); T poll(); T peek(); int size(); void clear(); boolean isEmpty();} 2. IQueue를 구현할 MyCircularQueue클래스를 생성 후 메서드를 생성package queue;public class MyCircularQueue implements IQ..

[자료구조] 선형 큐(LinearQueue)

Queue란?● 선입선출(First-In-Fast-Out - FIFO)● 순서가 보장된 처리 (사용자가 몰린 서버)Queue의 주요 동작 ●  push(), offer(), add()● pop(), poll()● peek()선형 큐 (LinearQueue)1. 우선 Queue 구현에 사용할 IQueue 인터페이스를 생성 package queue;public interface IQueue { void offer(T data); T poll(); T peek(); int size(); void clear(); boolean isEmpty();} 2. IQueue를 구현할 MyLinkedQueue클래스를 생성 후 메서드를 생성package queue;public class My..

[github] 다른 사람의 커밋 내용 가져오기

현재 인터넷 강의를 시청하면서 공부중에 처음 작업하는 github 내용이 있어서 작성하였다.강의를 시청하면서 따라해야 하는 예제 코드를 github에서 가져와야 하는데 전체 코드를 가져오자니 이미 전부 작성된 코드를 가져와야 했다.그래서 맨 처음에 커밋한 내용을 가져와 강의를 들으면서 직접 따라 할 수 있도록 하고 싶었고 방법을  찾아서 글을 작성하게 되었다. git clone 후 원하는 커밋만 가져오는 방식1. 전체 프로젝트를 클론한다.  - 먼저 전체 프로젝트를 클론한 후 불필요한 부분을 제거하는 방법이다.bashgit clone https://github.com/사용자명/저장소명.gitcd 저장소명 전체 프로젝트를 클론한 후 cd 명령어를 이용해 해당 저장소로 이동한다. 2. 원하는 커밋으로 체크아..

github 2025.02.27

[자료구조] 스택

Stack  - 후입선출 (Last-In-First-Out - LIFO)  - ex) 인터넷 브라우저 뒤로 가기, Ctrl + zStack 예제1. 우선 List와 같이 Stack 구현에 사용할 IStack 인터페이스를 생성package stack;public interface IStack { void push(T data); T pop(); T peek(); int size();} 2. IStack을 구현할 MyStack 클래스를 생성 후 메서드를 생성package stack;public class MyStack implements IStack { @Override public void push(T data) { } @Override pub..

[자료구조] 리스트 - DoubleLinkedList

LinkedList는 아래 사진과 같이 Next Node만을 사용하여 Node를 관리 했었더라면DoubleLinkedList는 아래 사진과 같이 Next Node와 Prev Node를 함께 사용하여 Node를 관리한다.LinkedList는 맨 앞에 있는 head node 부터 마지막 node 까지 순차적으로 조회를 해야 했다면DoubleLinkedList는 List의 절반인 중간 시점 부터 head와 가까우면 head 부터 tail과 가까우면 tail 부터 조회가 가능하다. DoubleLinkedList예제1. 우선 DoubleLinkedList도 Node를 기반으로 하기 때문에 Node를 먼저 생성이전 LinkedList는 next Node만 관리를 해줬더라면 DoubleLinkedList는 해당 No..

[자료구조] 리스트 - LinkedList

Linked List 장점  - 배열의 복사나 재할당없이 데이터 추가 가능  - 유연한 공간Linked List 단점  - 데이터 접근에 대한 시간이 늘어남 LinkedListArray추가O(N)O(1), O(N)삽입O(N)O(N)삭제O(1)O(N)검색(조회)O(N)O(1) LinkedList 예제1. 우선 LinkedList는 Node를 기반으로 하기 때문에 Node를 먼저 생성private class Node { T data; Node next; Node(T data) { this.data = data; } Node(T data, Node next) { this.data = data; ..

[자료구조] 리스트 - ArrayList

1. List의 특징  - 선형적인 자료구조  - 데이터를 일렬로 늘여 놓은 형태  - 순서  - 데이터 삽입하기  - 데이터 삭제하기  - 리스트 탐색하기 2. List의 종류  - ArrayList  - LinkedList : Single Linked List, Double Linked List 3. ArrayList  - 배열 기반의 리스트  - 메모리 공간을 연속적으로 사용import java.util.ArrayList;import java.util.List;public class Main { public static void main(String[] args) { // 문자열 리스트 생성 List list = new ArrayList(); // 리스트에..