JAVA

JAVA/SpringBoot

JWT와 Access Token, Refresh Token, RTR 방식 정리

JWT와 Access Token, Refresh Token, RTR 방식 정리 1. 쿠키, 세션 방식 기존의 사용자 인증 방식은 쿠키와 세션 방식으로 이루어졌다. 쿠키 방식은 Key, Value로 이루어진 구조로 만료시간, 도메인, 경로 등의 정보를 사용자의 로컬 하드에 저장하였다. 그러나 이는 개인 정보를 저장하는 것이기에 보안에 취약했으며, 용량 제한 때문에 많은 정보를 담을 수가 없었다. 이러한 문제를 해결하고자 사용자 정보를 서버 측에서 저장하고 관리하기 위해 세션 방식이 도입되었다. 세션 ID에는 중요한 정보가 담겨 있지 않지만, 세션 ID 자체를 탈취당하면 타인이 사용자인 척 위장할 수 있는 문제점이 있다. 또한, 사용자가 많아지면 서버에 트래픽 부하가 생기므로 성능이 저하되기도 한다. 이러한..

JAVA/SpringBoot

[Springboot] 스프링부트 2.7 이상 QueryDsl build.gradle 설정

[Springboot] 스프링부트 2.7 이상 QueryDsl build.gradle 설정 필요한 부분만 작성했습니다. buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'java' id 'war' id 'org.springframework.boot' version '2.7.13' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' } group = 'org.zerock' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } c..

JAVA/SpringBoot

Failed to initialize JPA EntityManagerFactory: No identifier specified for entity 에러 해결법

Failed to initialize JPA EntityManagerFactory: No identifier specified for entity 에러 해결법 Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.AnnotationException: No identifier specified for entity 위와 같은 오류가 발생했을 경우, ..

JAVA/SpringBoot

[Spring boot] java.lang.NullPointerException findAll() null 에러 해결

[Spring boot] java.lang.NullPointerException findAll() null 에러 해결 Repository에 생성자 주입이나 @Autowired 어노테이션을 달아주지 않아서 생기는 에러이다. 컨트롤러의 레포지토리를 다시한번 살펴보도록 하자.

JAVA/SpringBoot

Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

Spring boot에 JPA 연동할 때 이런 에러가 나온다면 application-properties에 어떤 DB를 사용하는지 명시를 해주어야한다고 한다. spring.jpa.database=mysql 나는 mysql을 사용해서 저렇게 썼고, 사용하는 데이터베이스에 맞게 값을 할당하면 된다. 이클립스의 경우 Ctrl+space를 누르면 데이터베이스 목록이 나타나므로 자신에게 맞는 것을 입력하면 되겠다.

JAVA

[JAVA] null과 공백 ""의 차이

null과 공백 ""의 차이 null : 어떠한 값으로도 초기화 되지 않음. 개발자가 어떤 값으로 사용하겠다는 예고와 같은 것으로 컴파일러가 인지함. 따라서 힙 메모리 상에 데이터를 만들지 않음. (변수를 어떠한 값으로도 초기화 하지 않음.) 공백 ("") : string형으로 빈 값을 메모리에 할당함. (변수를 빈값으로 초기화 함. null과 달리 인스턴스화 된 객체를 참조함.) String a = ""; String b = null; System.out.println(a == b); // false System.out.println(a.equals(b)); // false ""는 빈 문자열(실제 문자열)이지만 null은 string변수가 아무 것도 가리키지 않는 상태를 의미하기 때문에 a와 b는 메모..

JAVA/SWING

[Java swing] 자바 스윙 11 : JOPtionPane dialog 팝업 창 정리, dialog의 글자 크기, 글꼴, 글씨체 수정, dialog 팝업 창 크기 수정

[Java swing] 자바 스윙 11 : JOPtionPane dialog 팝업 창 정리, dialog의 글자 크기, 글꼴, 글씨체 수정, dialog 팝업 창 크기 수정 먼저 화면에 버튼 하나만 올려보자. import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JButton; public class PopUp { private JFrame frame; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void ru..

JAVA

JAVA 자바 JSON 파일 쓰기/읽기 (한글 깨짐 인코딩 문제 해결법)

JAVA 자바 JSON 파일 쓰기/읽기 (한글 깨짐 인코딩 문제 해결법) 자바 JSON 만들기, 추가, 제거, 파싱하는 법과 예제(수정) (tistory.com) 자바 JSON 만들기, 추가, 제거, 파싱하는 법과 예제(수정) 자바 JSON 만들기, 추가, 제거, 파싱하는 법과 예제(수정) json simple 라이브러리 설치 작업환경 : 이클립스 JSON을 쉽게 가공하기 위해 미리 만들어진 라이브러리를 이용한다. Google Code Archive - Long-term afterdawncoding.tistory.com 이전 게시글에서 다루었던 코드를 특정 경로에 파일로 생성하는 방법을 알아보자. 아래는 이전에 사용한 코드이다. import org.json.simple.JSONArray; import o..

JAVA

자바 JSON 만들기, 추가, 제거, 파싱하는 법과 예제

자바 JSON 만들기, 추가, 제거, 파싱하는 법과 예제 json simple 라이브러리 설치 작업환경 : 이클립스 JSON을 쉽게 가공하기 위해 미리 만들어진 라이브러리를 이용한다. Google Code Archive - Long-term storage for Google Code Project Hosting. Google Code Archive - Long-term storage for Google Code Project Hosting. code.google.com json simple 1.1.1.jar를 다운받는다. 라이브러리를 적용할 프로젝트를 오른쪽 마우스 클릭 - Build Path - Configure Build Path...로 들어간다. Modulepath를 클릭하고 오른쪽에 있는 Add ..

JAVA/SWING

[Java swing] 자바 스윙 10 : 이클립스에서 Design탭이 안보일 때 해결 방법

[Java swing] 자바 스윙 10 : 이클립스에서 Design탭이 안보일 때 해결 방법 분명히 swing으로 파일을 만들고 잘 작업하는 도중이었는데 소스 코딩과 디자인 탭을 왔다갔다 하다가 어느 순간에 Design탭이 사라지고 보이지 않는 경우가 생기기도 한다. 해당 소스파일을 오른쪽 버튼 클릭 - Open with - WindowBuilder Editor를 선택하자. 잘 되었으면 마저 작업을 진행하면 된다. 사라졌던 Design탭이 되살아 났다.

JAVA/SWING

[Java swing] 자바 스윙 9 : Application Form으로 열었을 때 frame에 이미지 넣는 법, 컴포넌트가 이미지에 가려지는 문제 해결 방법

[Java swing] 자바 스윙 9 : Application Form으로 열었을 때 frame에 이미지 넣는 법, 컴포넌트가 이미지에 가려지는 문제 해결 방법 이전에 게시된 글에서는 이미지를 라벨에 넣고, 패널위에 그 라벨을 올리는 방법으로 화면에 이미지를 띄웠지만, 만약 그 위에 패널을 올린다면 라벨 밑에 패널이 깔려버리는 문제가 발생한다. 패널보다 라벨, 버튼과 같은 컴포넌트가 화면에 보여지는 우선 순위가 더 높은 모양이다. 따라서 프레임에 이미지를 올려야 그 위에 올릴 패널이 이미지에 가려지지 않는다. 프레임 위에 패널을 올리면 되기 때문이다. 인터넷에 frame위에 이미지를 넣는 법은 많은데 Application Form으로 열고 Design을 사용할 때 생성되는 코드에서는 어떻게 해야하는지 알..

JAVA/SWING

[Java swing] 자바 스윙 8 : 버튼 이미지 삽입 변환, 반응형 버튼 만들기

[Java swing] 자바 스윙 8 : 버튼 이미지 삽입 변환, 반응형 버튼 만들기 JButton 컴포넌트에 이미지를 삽입하는 방법과, 버튼에 마우스 포인터가 올려졌을때, 누르고 있을때, 누르고 난 후에 이미지가 바뀌도록 하는 방법에 대해서 알아보겠다. 지난 시간에는 일일이 코드로 다 작성해서 패널에 이미지를 넣는 방법에 대해 소개했으나, 버튼과 같은 컴포넌트에 이미지를 넣을 경우에는 윈도우 빌더를 사용해서 더 편하게 이미지를 넣을 수 있는 방법이 존재한다. (그냥 패널에 넣는 경우에는 코드로 작성해야하는 것 같다.) 버튼에 이미지 넣기 먼저 프로젝트 경로에 소스 폴더를 만들고 이미지를 넣는다. 나같은 경우엔 각각의 이미지가 225x225 크기로 같은 것을 선택했다. src폴더에 새 Applicatio..

lazarus0320
'JAVA' 카테고리의 글 목록