분류 전체보기
-
[Spring] application.properties/.yml 파일 database 연결 설정 에러spring 2024. 2. 2. 09:37
문제 상황. Spring에서 빌드를 하고 실행을 했을 때 아래와 같은 에러 메시지가 나오는 경우가 있다. Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class 원인. 이는 application.properties 혹은 application.yml 파일의 database 관련 설정이 없기 때문에 발생하는 에러일 가능성이 크다. 해결 방법. 내가 진행중인 프로젝트는 우선 database를 사용하지 않기로 결정했기 때문에 따로 database 관..
-
[Spring] Maplestory openAPI적용 오류 및 해결과정spring 2024. 2. 1. 17:00
도입 2023년 12월 부터 Nexon사의 콘텐츠에 대한 data가 API형태로 받아볼 수 있게 되었다. 그 중에서 mapleStory의 API를 이용하여 개발을 하고자 하였다. Spring을 기반으로 하여 개발을 진행하였다. 본문 API를 이용하기 위해서 https://openapi.nexon.com/ 사이트에 로그인하여 애플리케이션 등록을 한 후 API KEY를 발급 받아야한다. API KEY만 있으면 호출이 가능한 상태가 된다. 예시로 GET /maplestory/v1/id 라는 캐릭터 식별자(ocid) 조회 api가 있다. 이는 캐릭터 식별자(ocid)를 조회해주는 api다. 모든 api 호출에는 Header에 x-nxopen-api-key 라는 이름의 key에 발급 받은 API KEY 값이 들어..
-
PostMan 400에러 badRequest error 발생과 해결과정 (Mysql 예약어 오류)spring 2024. 1. 30. 14:43
상황 SpringBoot CRUD 작업을 테스트 하는 과정에서 PostMapping 요청에 대한 PostMan 호출 결과가 400error badRequest가 나왔다. 400에러는 해당 요청이 잘못되었을 때 보내는 상태 코드이다. 주로 요청의 Body에 보내는 내용이 잘못되었을 때 사용되는 코드이다. ex) 전화번호를 보내야 하는데 숫자가 아닌 문자열의 주소가 대신 Body에 담겼을 경우 등 원인 분석 우선 Header에 Content-Type이 application/json으로 되어있는지 확인해 볼 필요가 있었고 문제가 없었다. intelij의 error로그를 보면 2024-01-30 12:02:20.248 WARN 1812 --- [nio-8080-exec-1] .w.s.m.s.DefaultHand..
-
Java 빌더패턴 (Builder Pattern) , @Builder 사용권장, @setter지양이유 (Lombok)java 2023. 10. 4. 13:32
목차 들어가기전 도입 개념정리 빌더패턴이란? 빌더패턴의 탄생배경 점증적 생성자패턴이란? 자바빈즈패턴이란? 빌더패턴의 장점은? 빌더 패턴의 단점은? @Builder란? 나의 언어로 이해 출처 들어가기전 이글은 @AllArgsConstructor 등의 내용을 다룬 이전 글과 이어진다. @Builder의 내용과 사용방법 그리고 @setter의 사용이 지양되는 이유 등에 대해서 다룰 예정이다. 아직 공부 단계에서 작성한 글로 내용에 오류가 있을 수 있음을 먼저 알립니다. 잘못된 부분이 있다면 댓글 부탁드립니다. 도입 코드를 리팩토링하는 과정에서 무분별하게 사용된 lombok어노테이션들을 정리할 필요성을 느꼈다. 이전 포스팅에서 다루었던 @AllArgsConstructor 등의 어노테이션들은 치명적인 단점이 있다..
-
Java [Lombok] @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor, field 등 개념 정리java 2023. 9. 26. 11:53
목차 들어가기전 도 입 문제의식 탐구 과정 1 : 공식 문서 검색 1.1. @NoArgsConstructor 1.2. @RequiredArgsConstructor 1.3. @AllArgsConstructor 탐구 과정 2 : 추가 개념 정리 2.1. 생성자란? 2.2.필드란? 2.3.final이란? 2.4.final필드 때문에 생성자를 생성할수 없는 경우는? 2.5.정적 팩토리 메서드란? 2.6.인스턴스란? 탐구 과정 3 : 내 언어로 정리 요약 정리 추가수정사항 들어가기전 이 글은 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor등의 개념에 대해 공부한 내용을 다루고 있습니다. 위 어노테이션들의 사용을 지양하는 결론이 나왔으며 대신 @..
-
Spring InteliJ maven을 gradle로 바꾸는 방법(for mac)spring 2023. 7. 13. 16:26
도입 이글에선 맥북 사용자 기준 InteliJ에서 maven을 gradle로 바꾸는 과정을 보일 것이다. spring을 처음 접할 때 배운 것이 maven이기 때문에 계속 사용했었지만 찾아볼 수록 Gradle이 더 나은 방식이란 것을 알게 되었다. 왜 Gradle인가? 비교해보기 Maven의 경우 특정 플러그인이 설정이 다를 때 설정을 분리해서 중복기술 할 때가 있다. 이때 불필요한 설정이 길어지고 중복되어 가독성이 떨어지게 된다. 이는 곧 유지 보수성이 떨어짐을 의미한다. Gradle의 경우 아래와 같은 장점이 있다. 1. Groovy언어를 이용하여 코드로서의 설정정보를 구성하기 때문에 구조적이다. 2. xml의 구조적인 틀을 벗어나 코딩에 의한 간결한 정의가 가능하다. 3. 설정주입방식으로 정의하기 ..
-
MySql Auto_INCREMENT vs UUID 장단점 비교 및 결과mysql 2023. 7. 13. 10:57
도입 프로젝트를 진행하며 Table의 pk값을 어떻게 설정해야 할까 고민이 생겼다. 대표적으로 Auto_INCREMENT 또는 UUID를 사용하는 방법이 있다. 이 방법은 각각 장단점이 존재하기 때문에 비교해보면서 내 프로젝트에 도입할 방법을 생각해보도록 하겠다. 비교 Auto_INCREMENT 설명 : 자동 증가 정수 기반의 키 장점 1. 삽입 성능이 좋다. 기본적으로 정수형 데이터이기 때문에 인덱스의 크기가 작고 효율이 좋아 데이터베이스 성능을 향상 시킬 수 있다. 2. 고유성이 있다. 자동으로 고유한 기본 키 값을 할당하기 때문에 새로운 레코드가 삽입될 때마다 자동으로 증가하는 값을 사용하여 중복을 피할 수 있다. 단점 1. 분산 환경에서 지원이 어렵다. 만약 여러 데이터베이스로 write작업을 하..
-
Mysql workbench 초기 db설정 for mac, windowmysql 2023. 7. 12. 17:16
이 글은 Mysql 다운로드 for mac, window (맥북,window mysql 다운로드 방법 간단 정리) 글과 이어집니다. Mysql 다운로드 for mac, window (맥북,window mysql 다운로드 방법 간단 정리) 맥북과 윈도우 사용자를 위한 mysql 다운로드 방법입니다. 윈도우 사용자의 경우 간단하게 다운 받고 사용할 수 있으며 맥북은 몇가지 추가되는 것을 제외하고 비슷합니다. 1. 먼저 아래 링크를 developerkiwi.tistory.com 1. 우선 Mysql Workbench를 시작한다. 시작하면 아래와 같은 창이 나올텐데 처음에는 초록색 상자인 mydb가 없을 것이다. 따라서 + 모양을 눌러 db생성을 해준다. 2. db 설정단계 우선 db의 제목을 적어준다. 예를 ..