반응형

Knowledge 109

웹소켓 STOMP 에러 트러블 슈팅

😓 문제 상황Client 측에서 웹소켓 연결 요청을 보낼 때 EC2에 올라간 서버 로그에서 문제 발생주요 에러 내용 : Handshake failed due to invalid Upgrade header:                       null2024-05-25T08:47:36.638Z ERROR 32370 --- [nio-8080-exec-6] o.s.w.s.s.s.DefaultHandshakeHandler : "Handshake failed due to invalid Upgrade header: null"2024-05-25T08:47:36.702Z INFO 32370 --- [nio-8080-exec-5] o.springdoc.api.Abs..

callback VS fallback

1. callbackcallback은 코드를 실행하고 난 후에 실행되는 함수나 메서드 등을 의미한다.혹은 다른 함수가 실행을 끝낸 뒤 실행되는 callback 되는 함수를 말한다.정상적으로 실행되거나 실패를 할 경우 모두 callback을 실행한다. https://ko.wikipedia.org/wiki/%EC%BD%9C%EB%B0%B1 콜백 - 위키백과, 우리 모두의 백과사전위키백과, 우리 모두의 백과사전. 프로그래밍에서 콜백(callback) 또는 콜백 함수(callback function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을ko.wikipedia.org  2. fallbackfallback은 에러가 발생하면 원래 기능을 대체하는 기능을 말한다..

Knowledge/이론 2024.05.02

java.lang.NullPointerException: Cannot invoke "org.board.exercise_board.User.Security.CustomUserDetails.getUsername()" because "customUserDetails" is null

😂 문제 상황Spring Security + JWT 를 사용하여 현재 로그인이 되어 있는 사용자에 대한 정보를 얻기 위해 @AuthenticationPrincipal 어노테이션을 사용했다.하지만 해당 사용자에 대한 정보는 넘어오지 않고 Null 값만 넘어왔다. 문제의 그 Controller 이다.  내가 구현한 코드는 아래와 같다. JwtAuthenticationFilter.java@RequiredArgsConstructor@Componentpublic class JwtAuthenticationFilter extends GenericFilterBean { private final JwtTokenProvider jwtTokenProvider; public static final String TOKE..

MySQL 테이블 'order' 생성 오류

😂 오류 내용ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'order' at line 1. MySQL에서 테이블 생성 시 자꾸 에러가 발생했다.  🙄 해결 방안테이블 명을 변경해야 한다. 이미 데이터베이스가 사용하고 있는 예약어 이기 때문에 문제가 발생한 것이다.

Intellij [HY000][1130] Host 'ip주소' is not allowed to connect to this MariaDB server.

😂 에러 발생 상황 정상적으로 작동하던 MariaDB 가 갑자기 연결이 되지 않았다. 원인 : 외부에서 접속할 경우 접속 권한이 없는 경우 다음과 같은 에러가 발생한다.해결 : MariaDB(MySQL)가 설치된 서버에서 권한을 추가하면 된다.   (1) 권한 조회MariaDB [(none)]> SELECT host, user, password FROM mysql.user;+-----------+------+-------------------------------------------+| host | user | password |+-----------+------+---------------------------------------..

Controller Get, Post 오류

❓ 에러 발생 Method Not Allowd 라고 에러가 발생헀다. Intellij 의 run 실행창에서 보면Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' is not supported] WARN 29148 --- [io-8080-exec-10] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported]   warn 으로 표시된 것을 볼 수 있다.  ❗ 해결근본적인 원인..

쓰레드 풀 (Thread Pool)

🎈 스레드 풀의 필요성서버는 동시에 여러 사용자가 접속할 수 있다.자바에서는 스레드를 운영체제의 자원으로 사용한다. 그렇기 때문에 스레드를 계속해서 만들면, 운영체제의 자원이 빠르게 소진된다.즉, 서버는 동시 접속자가 많아지면 스레드가 무한대로 생성되면서 서버가 다운될 위험성이 있다. 애플리케이션 프로세스에서 사용되고 있는 스레드의 개수를 관리하기 위해 스레드 풀(Thread Pool)을 도입할 수 있다.  🎈 쓰레드 풀이란?     쓰레드 풀은 미리 일정 개수의 스레드를 생성하여 재사용하며 관리하는 기법이다. 이렇게 생성된 스레드들은 작업을 할당받기 위해 대기 상태에 있게 되는데, 작업이 발생하면 (Task Queue에 Task가 들어오면) 대기 중인 스레드 중 하나를 선택하여 작업을 수행한다. 작..

Knowledge/이론 2024.03.23

동기 / 비동기

📝 동기와 비동기란 무엇인가동기(Synchronous)란, 어떤 작업을 실행할 때 그 작업일 끝날 때까지 기다리는 방식을 말한다. 즉, 작업이 완료될 때까지 다음 작업의 실행을 멈추고 기다리는 것이다. 이러한 방식은 작업의 순서를 보장하고, 작업이 끝날 때까지 결과를 기다리는 것이 가능하다. 비동기(Asynchronous)란, 어떤 작업을 실행할 때 그 작업이 완료되지 않더라도 다음 코드를 실행하는 방식을 말한다. 즉, 작업이 완료되지 않았더라도 결과를 기다리지 않고 다음 작업을 실행하는 것이다. 이러한 방식은 작업이 오래 걸리는 경우 시간을 절약하고, 병렬 작업 처리가 가능하다. 동기 방식으로 파일을 읽는다면 파일을 읽기 시작한 이후에 다음 코드를 실행하지 않고 파일이 읽히기를 기다린다. 하지만 비동..

Knowledge/이론 2024.03.23

SMTP (단순 전자우편 전송 규약)

📝 SMTP 란 무엇인가SMTP (Simple Mail Transfer Protocol) 란 인터넷 연결을 통해 이메일을 보낼 때 사용되는 프로토콜을 일컫는다.발신자가 Gmail, Outlook Express 등을 통해 발신한 이메일을 메일 서버에서 받아서 전달하는 과정의 기술 표준이다.즉, 이메일을 전송할 때에 사용되는 규약 또는 절차이다. Outlook Express나 Gmail 등의 프로그램을 이용해 메일을 전송하고 나면 그 뒤에서 TCP/IP 프로토콜에 기반한 SMTP 프로토콜이 메일을 전송해 줘야 한다. 예를 들면, 이메일은 편지에 비유할 수 있고, SMTP는 편지를 전송하는 과정에 사용되는 기술로 비유할 수 있다. 보통 SMTP는 메일 서버끼리 메일을 주고 받거나, 아니면 SMTP 서버(ex..

Knowledge/이론 2024.03.22
반응형