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
no image
Servlet.service() for servlet Error
Servlet.service() for servlet 500 Error? 이 Error가 왜... 뜨는지 이해할 수 없었다. 이것도... 또한 삽질을.. 하게 되었다. 찾아보니 Setting에서 gradle 설정이 intellij로 사용하고 있었다. intellij가 gradle 서버를 거치지 않고 Intellij 에서 바로 실행해서 빠르 속도로 Run 할 수 있어서 사용하고 있었는데 이것이 문제였다. 이걸 Gradle로 사용하면 에러 없이 잘 작동했다. Gradle 그래들은 오픈 소스 빌드 자동화 도구로, Groovy나 Kotlin 기반의 DSL을 사용하여 빌드 스크립트를 작성합니다. 이를 통해 구조, 종속성, 테스트, 배포 등을 정의할 수 있습니다. Gradle은 Maven과 유사하게 의존성 관리를 ..
2024.01.14
no image
Session
Session 초기 웹 개발에서 사용자 상태를 유지하기 위해 도입된 기술 중 하나입니다. 초기에는 웹은 단순한 정적 문서를 전달하는 데에 그쳤기 때문에 사용자의 상태를 관리하는 문제는 크지 않았습니다. 하지만 동적이고 상호작용이 많은 웹 애플리케이션이 발전하면서 사용자의 로그인 상태, 장바구니 내역, 등의 정보를 서버에 유지하고 관리해야 하는 필요성이 생겼습니다. 처음에는 쿠키를 사용하여 사용자의 상태를 관리하는 방식을 사용했지만 쿠키는 클라이언트에서 조작이 가능하고 보안상의 문제도 있었습니다. 이후 세션이 도입되면서 서버 측에서 사용자의 상태를 안전하게 관리하는 방식으로 발전했습니다. 세션은 사용자에 대한 정보를 서버 측에 저장하고 클라이언트에는 세션 식별자만을 부여하며 클라이언트는 이 식별자를 사용하..
2024.01.13
no image
Cookie
Cookie 쿠키란 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저가 데이터 조각들을 저장해 놓았다가 동일한 서버에 요청 시 저장된 데이터를 함께 전송합니다. 쿠키는 두 요청이 동일한 브라우저에 들어왔는지 들어오지를 않았는지 판단할 때 주로 사용합니다. 쿠키를 사용하면 사용자의 로그인 상태를 유지할 수 있습니다. 쿠키 사용 세 가지 목적 세션 관리 쿠키는 세션 관리에 주로 사용됩니다. 사용자가 웹사이트에 로그인하면 서버는 사용자에게 고유한 세션 식별자를 할당하고 이를 쿠키에 저장합니다. 브라우저는 쿠키를 저장하고, 사용자가 다른 페이지로 이동하거나 새로고침할 때마다. 이 쿠키를 함께 서버에 전송합니다. 서버는 이를 통해 사용자를 식별하고 로그인 상태를 유지할 수 있습니다. 개인화..
2024.01.11
no image
Primary Key & Foreign Key
Primary Key(기본 키) 관계형 데이터베이스에서 특정 레코드를 고유하게 식별하고 데이터의 무결성을 유지하는데 사용되는 필드입니다. 후보키 중 하나를 기본 키로 선택함으로써 데이터베이스에서 레코드를 식별하고 관계를 설정할 수 있습니다. 기본키의 속성은 반드시 고유한 값을 가져야 합니다. 테이블당 하나만 만들 수 있으며, Null값을 가질 수 없습니다. 또한 속성 값이 변경될 가능성이 높은 경우 기본 키로 선택하는 것은 권장되지 않습니다. 가능하다면 작은 정수 값이나 짧은 문자열과 같이 빠르게 검색할 수 있는 속성을 기본 키로 선택하는 것이 좋습니다. 복합 기본키는 피하는 것이 좋고, 기본 키가 없는 테이블은 규칙에 어긋나지만 모든 테이블에 기본 키를 두는 것이 권장됩니다. 기본 키가 없는 테이블은 ..
2024.01.10
no image
NoSQL과 RDBS
NoSQL 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장소를 지칭합니다. NoSQL 데이터베이스는 다양한 형태로 데이터를 저장할 수 있는데, 이는 테이블 형태가 아닌 key-value store, document store, wide-column store, graph database 등으로 구성될 수 있습니다. NoSQL은 유연성과 확장성을 강조하는데, 대량의 분산 데이터를 다루거나 스케일링이 필요한 경우에 유용합니다. NoSQL은 특정 형식의 데이터베이스나 스키마가 자주 변경되는 경우에 유용할 수 있습니다. NoSQL 데이터베이스 MongoDB, Cassandra, Redis, Couchbase 등 NoSQL 장단점 장점 수평적 확장성 대부분 NoSQL 시스템은 수평적으로 확장이 가능합니다. 클..
2024.01.09