no image
배열 & 링크드리스트
배열(Array) 배열은 정적 자료구조이며 배열을 생성할 때 크기를 미리 정해놓고 해당 크기 만큼의 연속된 메모리 공간을 할당받는 것을 의미합니다. 이런 특성으로 배열은 컴퓨터 메모리에서도 데이터를 연속적으로 저장할 수 있습니다. 이렇게 연속된 메모리 주소를 할당받는 배열은 각 데이터에 대한 인덱스를 갖게 되며 배열의 각 요소는 해당 요소의 인덱스를 통해 직접 접근할 수 있습니다. 예를 들어 보면 array[0], array[1], array[2], array[3]....와 같이 인덱스를 사용하여 배열의 요소에 접근할 수 있습니다. 이걸 배열의 장점 중 하나인 임의 접근을 의미합니다. 그러나 배열은 한 번 크기를 정하면 수정이 불가능합니다. 따라서 배열은 크기를 동적으로 조잘할 수 없는 단점이 있습니다...
2024.02.14
no image
스택, 큐
스택 컴퓨터 과학에서 매우 중요한 자료구조 중 하나이며 이름 그대로 스택은 데이터를 쌓아 올린 형태를 가지고 있습니다. 이를 비유하면, 식당에서 쌓여있는 접시 더미나 책상 위에 쌓아 올린 형태를 가지고 있습니다. 이를 비유하면, 식당에서 쌓여있는 접시 더미나 책상 위에 쌓인 책처럼 데이터가 차곡차곡 쌓이는 모습을 상상할 수 있습니다. 또한 데이터의 저장과 삭제가 한쪽 끝에서만 이루어지는 특징을 가지고 있습니다. 이 한쪽 끝을 보통 위쪽이라고 하며 새로운 데이터가 스택에 추가되면 그 데이터는 스택의 위로 올라갑니다. 이것을 PUSH라고 합니다. 반대로 데이터를 삭제할 때는 가장 위에 있는 데이터가 먼저 삭제됩니다. 이것을 POP이라고 합니다. 스택은 주로 함수 호출이나 재귀 알고리즘 등에서 사용됩니다. 예..
2024.02.13
no image
Intellij IDEA 로컬기록
Intellij IDEA 로컬기록 Intelij IDEA의 로컬 기록은 프로젝트의 수정 버전을 자동으로 기록하여 개발자가 변경 사항을 추적하고, 필요한 경우 복원할 수 있는 기능을 제공합니다. 변경 사항 복원 자동 기록 코드 편집, 테스트 실행, 애플리케이션 배포 등의 이벤트로 인해 발생한 프로젝트의 수정 버전을 자동으로 기록합니다. 파일 복원 중요한 코드를 삭제한 경우나 원치 않는 변경이 있을 때, 로컬 기록을 사용하여 해당 파일이나 변경 내용을 복원할 수 있습니다. 롤백 프로젝트에 버전 관리가 활성화되지 않았거나 마지막 커밋 이후 원치 않는 변경 사항이 있는 경우, 로컬 기록을 사용하여 파일을 이전 상태로 롤백할 수 있습니다. 설정 가능한 보존 기간 기본적으로 로컬 기록은 5일 동안 보존되지만, 이 ..
2024.02.09
no image
CRON 표현식
CRON 표현식 주기적으로 실행되어야 하는 작업을 정의하는 일반적인 방법입니다. 이것은 UNIX 및 유닉스 기반 시스템에서 널리 사용되며, 다양한 스케줄링 작업에 활용됩니다. CRON 표현식을 작성할 때 주의할 점은 각 필드가 해당 시스템의 로컬 시간대 및 설정에 따라 해석되기 때문에 때때로 시스템의 로컬화된 환경 설정에 따라 결과가 달라질 수 있기 때문에 이것을 고려해야 합니다. 필드 허용되는 값 허용되는 특수문자 년 1970 ~ 2099 , - * / 월 1 ~ 12 또는 JAN ~ DEC , - * / 요일 0 ~ 6 또는 SUN ~ SAT , - * / L # 일 1 ~ 31 , - * / L W 시 0 ~ 23 , - * / 분 0 ~ 59 , - * / 초 0 ~ 59 , - * / 특수 문자..
2024.02.08
no image
TCP 3way handShake/TCP 4way handShake
TCP 3 way handShake 핸드셰이킹을 직역하면 주고받기라고 합니다. 정보 기술과 전기 통신 및 관련 분야에서 채널에 대한 정삭적인 통신이 시작되기 전에 두 개의 실체 간에 확립된 통신 채널의 변수를 동적으로 설정하는 자동화된 협상 과정입니다. 채널의 무리적인 확립이 잇따르며, 정상적인 정보 전송 이전에 이루어집니다. 3방향 핸드셰이크 1단계 - SYN(동기화) -> 1. X가 Y에게 Y야 내 말 잘 들리니? 프로세스는 클라이언트가 SYN 플래그가 설정된 TCP 패킷을 서버로 보내는 것으로 시작됩니다. 이 패킷은 연결을 설정하려는 클라이언트의 의도를 나타내며 데이터 새그먼트를 고유하게 식별하는 데 도움이 되는 ISN(초기 시퀀스 번호)도 포함합니다. 2단계 - SYN-ACK(동기화 승인)-> 2..
2024.02.06
no image
서버 응답: "status":"BAD_REQUEST","msg":"Failed to convert value of type 'java.lang.String
서버 응답: "status":"BAD_REQUEST" 서버에 클라이언트로부터 전송된 데이터를 처리하는 과정에서 발생했습니다. 에러 메세지를 보면 Failed to convert value of type.......entity.ClubCategory와 같이 데이터 변환에 문제가 있는 것을 알 수 있습니다. 서버에서 Enum으로 카테고리의 종류를 SPORTS, ALL, TODAY, STUDY..등으로 영어로 받고 있어서 데이터를 전송할때도 똑같이 영어로 전송해야 하는데 한글로 전송해서 발생되는 문제 였습니다. 서버에서 클라이언트로부터 전송된 데이터를 처리하는 과정에서 발생한 문제를 해결하기 위해 Enum클래스를 수정하였습니다. public enum ClubCategory { ALL, SPORTS, TODAY..
2024.01.30
no image
STOMP
@Configuration @EnableWebSocketMessageBroker public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { @Override public void configureMessageBroker(MessageBrokerRegistry config) { config.enableSimpleBroker("/topic"); // 메시지 브로커를 설정 ("/topic"은 예시) config.setApplicationDestinationPrefixes("/app"); // 클라이언트로부터의 메시지를 처리할 엔드포인트 설정 } @Override public void registerStompEndpoints(S..
2024.01.23
no image
Web Socket
Web Socket 웹 기술에서 실시간 양방향 통신을 가능케 하는 프로토콜 중 하나입니다. 초기에 웹에서 주로 폴링이나 롱 폴링 같은 방식을 통해 실시간 통신을 시도했으나 이러한 방식들은 효율성이나 성능 면에서 한계가 있습니다. 웹 소켓은 이러한 한계를 극복하기 위해 설계되었습니다. 기존의 HTTP 프로토콜은 클라이언트가 서버에게 요청을 보내고, 서버가 응답을 보내는 단방향 통신이었습니다. 반면에 웹 소켓은 클라이언트와 서버 간에 양방향 통신이 가능하도록 하면, 이를 위해 TCP 접속을 유지하게 됩니다. 또한 웹소켓은 실시간 채팅 어플리케이션, 소셜 네트워크 서비스, 협업 도구, 멀티플레이 게임, 화상 회의 등 다양한 분야에서 사용되고 있습니다. 웹 소켓 동작 방식 1. 포트 및 프로토콜 선택 웹 소켓은..
2024.01.22
no image
net::ERR_ABORTED 404
net::ERR_ABORTED 404 import 하는 과정속에서 문제가 발생했습니다. 파일 구조도 다 맞는데 이해할 수 없었다... 이것만 빨리 해결했어도 코드 두 줄은 더 쳤을텐데.... 이 에러가 발생한 이유 1. 올바르지 않은 URL 2. 파일이 잘못되었거나 삭제 되었을 경우 3. 잘못된 파일 경로 4. 권한문제 5. 서버 구성 여러가지 이유가 있는데 나는 Thymleaf를 사용하고 있기 때문에 파일 경로가 아닌 HTML 템플릿을 이용하여 동적으로 웹 페이지를 생성하는데 사용되기 때문에 아래 그림 처럼 사용해야합니다. 이렇게 하면 브라우저가 해당 js 파일을 로드할 수 있게 됩니다. Thymeleaf는 서버 측에서 동적으로 페이지를 렌더링 하는데 사용되며 이렇게 자원을 처리하여 동적으로 페이지를 ..
2024.01.17