Iterator는 무엇이고 어떻게 사용할까? Enumeration / Iterator / ListIterator --컬렉션에 저장된 데이터에 접근하기 위해 사용되는 인터페이스로컬렉션 요소를 순회하는 데 사용된다. Enumeration컬렉션의 요소를 읽는 기본적인 방법을 제공하는 인터페이스로요소를 읽기만 가능하며, 수정 기능이 없다.일반적으로 Vector, Hashtable 같은 레거시 컬렉션에서 사용된다.현재는 "Iterator"로 대체되어 사용되지 않는다.즉, Enumeration은 Iterator의 구버전이라고 할 수 있다. Enumeration의 메서드 Iterator와 ListIteratorIterator : Enumeration을 대체하며 컬렉션 요소를 순회하고 수정..
분류 전체보기
java에서 Stack과 Queue를 어떻게 사용할까? 스택 & 큐 --스택과 큐는단순하면서 유용한 자료구조로 대부분의 자료구조는 배열 or LinkedList를 이용해서 만들어졌다. 스택(Stack)은LIFO(Last In First Out) 구조로마지막에 저장된 데이터를 먼저 꺼내는 방식이고 큐(Queue)는FIFO(First In First Out) 구조로먼저 저장된 것을 먼저 꺼내는 방식이다. 스택과 큐 (+ 깊이 우선 탐색, 너비 우선 탐색)스택은 무엇이고큐는 무엇인가? 스택 (Stack) --스택은후입선출 (LIFO, Last In First Out) 자료 구조로마지막으로 들어간 데이터가 맨 처음으로 나가는 구조다. 이때 데이터를 담는 연산(데이nijy.tistory.com..
Vector, ArrayList, LinkedList의 차이는 무엇일까? Vector --List 인터페이스를 구현한 클래스로순서를 유지하고, 중복 요소를 허용하는 컬렉션이다. 특징동기화를 지원하는 list 구현 클래스내부적으로 동적 배열을 사용하여 데이터를 관리배열이 가득 차면 기존 용량의 2배로 증가시킨다. 간단하게 설명하자면Vector는 그냥 객체 저장용 배열이다. 동적 배열이어도 배열이기 때문에크기를 변경하려면 새로운 배열을 생성 후, 데이터를 복사하고 주소를 옮겨서 증가시키는 것처럼 보이게 한다.그래서 처음부터 충분한 배열 크기를 생성하여 사용해야 좋다. 동기화는 멀티스레드 환경에서만 필요한 것으로싱글스레드 환경에서 vector를 사용하게 되면 성능이 떨어지게 된다.그리고 동기화 오버헤..
컬렉션은 무엇이며 List, Set, Map은 무엇일까? 컬렉션 프레임워크 (Collection Framework) --컬렉션 프레임워크는Java에서 데이터를 효율적으로 저장하고 관리하기 위해표준화된 클래스와 인터페이스의 집합을 의미한다. 컬렉션을 다루기 위한 표준화된 프로그래밍 방식 (저장, 삭제, 검색, 비교, 정렬 등)컬렉션을 쉽고 편리하게 다루게 해주는 다양한 클래스 제공 (해당 클래스는 java.util 패키지에 포함) 컬렉션 : 여러 객체(데이터)를 모아 놓은 것프레임워크 : 표준화, 정형화된 체계적인 프로그래밍 방식컬렉션 클래스 : 다수의 객체(데이터)를 저장할 수 있는 클래스표준화가 된다는 것은누가 어디서 어떻게 작성하든프로그래밍 방식이 동일하게 작성된다는 것이다.-- ..
깃 커밋 메시지는 어떻게 작성해야 좋을까? commit 형식 --type: 제목body(선택)footer(선택)fix: 로그인 오류 수정- 잘못된 세션 처리로 인한 로그인 실패 버그 수정- 로그인 성공 후 리다이렉트 처리 개선Fixes #123 type (제목)현재 커밋한 내용을 간략하고 보기 편하게 요약해서 작성하는 것으로현재 커밋한 내용의 카테고리를 type으로 작성하고, 제목을 작성한다. bodytype파트의 제목에 작성한 내용에 대해 더욱 이해하기 좋게 상세한 내용을 작성하며,만약 type파트에서 충분히 내용을 표현할 수 있다면 생략이 가능하다. footer해당 커밋은 어떤 이슈로 인해 작성했는지 참조 정보들을 추가하는 용도로위 예시를 설명하면 #123 이슈에 대해 커밋한 내용이다.이 또..
Spring boot에서 STOMP는 어떻게 사용할까? STOMP이란? -- STOMP (Simple/Streaming Text Oriented Messaging Protocol)STOMP이란 무엇인가? STOMP (Simple/Streaming Text Oriented Messaging Protocol) --STOMP은웹소켓(WebSocket) 또는 TCP처럼 "양방향" 네트워크 프로토콜 위에서 동작하는텍스트 기반의 메시징 서브 프로토콜로nijy.tistory.com-- 환경 --Spring boot : 3.4.0build : GradleJava : 17-- STOMP 의존성 추가 --build.gradleimplementation 'org.springframew..
STOMP이란 무엇인가? STOMP (Simple/Streaming Text Oriented Messaging Protocol) --STOMP은웹소켓(WebSocket) 또는 TCP처럼 "양방향" 네트워크 프로토콜 위에서 동작하는텍스트 기반의 메시징 서브 프로토콜로,"메시지 브로커"라는 것을 활용하여 보다 쉽게 메시지를 송수신할 수 있는 프로토콜이다.(즉, STOMP은 메시지 브로커와 통신하기 위해 설계된 프로토콜이다.)그리고 "pub/sub(발행/구독)" 구조로 동작한다. 서브 프로토콜은상위 프로토콜 위에서 동작하는 프로토콜로,특정 기능을 확장하거나 보완하는 역할을 해준다. WebSocket과 STOMP의 차이점WebSocketTCP 기반의 양방향 통신 프로토콜로,클라이언트와 서버 간에 지속..
Spring boot에서 WebSocket을 어떻게 사용할까? WebSocket이란? -- 웹소켓 (WebSocket)웹소켓은 무엇인가? HTTP 통신 --기본적으로 HTTP 통신은클라이언트가 서버에게 요청을 보내고,서버는 해당 요청에 대한 응답을 다시 보내는 "단방향 통신"으로 소통한다. 일반적인 기nijy.tistory.com-- 환경 --Spring Boot : 3.4.0build : GradleJava : 17-- SebSocket 의존성 추가 --build.gradleimplementation 'org.springframework.boot:spring-boot-starter-websocket'-- DTO (+ Enum) --WebSocketMessage..