전체 글

JAVA
오류 내용 Postman을 이용하여 Controller의 CreateResponse(회원 생성) 테스트를 진행하던 중 포스트맨에서는 아래와 같은 오류 메시지가, { "timestamp": "2023-11-02T03:58:01.298+00:00", "status": 400, "error": "Bad Request", "trace": "org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot construct instance of com.example.demo.model.dto.CreateRequest (although at least one Creator exists): cannot deserial..
오류 내용 JPA를 이용하여 Entity auto DDL을 위해 서버를 실행했는데 오류가 발생했다. 더보기 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a create table [*]USER (\000d\000a id bigint not null,\000d\000a createdDt timestamp,\000d\000a name varchar(255),\000d\000a primary key (id)\000d\000a )"; expected "identifier"; SQL statement: create table USER ( id bigint not null, createdDt ti..
H2DB란 H2 데이터베이스는 인메모리 데이터 베이스로, 메모리 상에서 데이터를 처리하기 때문에 디스크 기반의 데이터베이스보다 훨씬 빠른 속도를 제공한다. H2 데이터베이스는 주로 개발 단계나 테스트 단계에서 사용되며, 별도의 설치 없이 사용할 수 있어 편리하다. H2DB 특징 H2DB는 자바 기반의 오픈소스 관계형 데이터베이스 관리 시스템(DBMS) 서버(Server) 모드와 임베디드(Embedded) 모드의 인메모리 DB 기능을 지원 더보기 서버 모드 H2 데이터 베이스가 별도의 서버 프로세스로 실행되며, 여러 클라이언트가 동시에 접속할 수 있습니다. 이 모드는 여러 사용자가 동시에 데이터베이스에 접근해야 하는 환경에 적합합니다. 임베디드 모드 H2 데이터베이스가 사용자의 애플리케이션과 같은 JVM ..
· 공부
Security를 사용하지 않고 카카오 로그인 구현하기 (Spring Boot + React에서 처리) 기존 회원의 이메일을 가져오기 위해서 부트를 사용함 https://developers.kakao.com/docs/latest/ko/kakaologin/common Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 크게 인가 코드 → 액세스 토큰 → 사용자 정보 가져오기의 흐름 카카오 로그인 완료 시 토큰이 발급된다. 토큰은 사용자를 인증하고 카카오 API 호출 권한을 부여하는 액세스 토큰(Access Token)와 액세스 토큰을 갱신하는 데 쓰는..
오류 내용 React로 Kakao Login을 구현하던 도중 위와 같은 에러가 발생했다. 오류 원인 및 해결 원인은 Link 태그를 사용하는 컴포넌트가 라우터로 감싸져 있지 않아 생긴 문제였다. app.js에서 컴포넌트를 라우터로 감싸서 해결했다. import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; import KakaoLoginComponent from './components/KakaoLoginComponent'; import { Router } from 'rea..
· 공부
Index란 인덱스는 RDBMS에서 검색 속도를 높이기 위한 기술이다. Table의 컬럼을 색인화(따로 파일로 저장) 하여 검색 시 해당 테이블의 레코드를 Full Scan 하는 게 아니라 색인화 되어있는 인덱스 파일을 검색하여 검색 속도를 빠르게 한다. => B-Tree 구조 보통 SELECT 쿼리의 WHERE절이나 JOIN 예약어를 사용했을 때 인덱스가 사용된다. DELETE, INSERT, UPDATE 쿼리에는 해당 사항이없으며 INDEX 사용 시 오히려 느려진다. SQL 서버에서 데이터의 레코드는 내부적으로 아무런 순서없이 저장되는데 이때 데이터 저장 영역을 Heap이라고 한다. Heap에서는 인덱스가 없는 테이블의 데이터를 찾을 때 전체 데이터 페이지의 처음 레코드부터 끝 페이지의 마지막 레코드..
· 공부
CHAR와 VARCHAR는 데이터베이스에서 문자열 데이터를 저장하는 데 사용되는 두 가지 주요 데이터 타입이다. 최대 길이는 255로 동일하다. 둘의 차이점은 아래와 같다. 1. 저장 방식 CHAR(Character) CHAR는 고정 길이 문자열을 저장하는 데 사용된다. 이는 지정된 길이의 문자열을 저장하며 문자열이 지정된 길이보다 짧으면 공백 문자로 채워진다. 하지만 값을 받아올 땐 공백이 제거된 상태로 받아오게 된다. PAD_CHAR_TO_FULL_LENGTH 모드를 활성화하면 공백까지 다 읽어온다. VARCHAR(Variable Character) VARCHAR는 가변 길이 문자열을 저장할 때 사용된다. 이는 문자열의 실제 길이에 따라 저장 공간이 조정된다. => 입력된 문자열의 길이만큼만 저장하고..
오류 내용 리뷰를 포함한 Product List Repository를 테스트 하는 중 아래와 같은 오류가 발생했다. @Override public PageResponseDTO list(PageRequestDTO requestDTO) { QProduct product = QProduct.product; QProductImage productImage = QProductImage.productImage; QProductReview review = QProductReview.productReview; JPQLQuery query = from(product); query.leftJoin(product.images, productImage); query.leftJoin(review).on(review.produc..
뱅어돔
테크뽀자ㄲ