분류 전체보기 56

JWT 토큰 발행 받기

1. 회원가입. @PostMapping("/signup")ID/PW 입력 (request)ID 유효한지 체크. DuplicateKeyException으로 이미 있는 아이디면 throw new. 없는 아이디면 다음으로 넘어가기.PW는 PasswordEncoder로 암호화DB에 저장 사용자 정보 저장.ResponseEntity로 status(상태)는 성공 응답 코드, body(본문)에는 회원가입이 완료되었다는 메시지를 클라이언트에게 응답해주기.(보내주기)2. 로그인 & 토큰 @PostMapping("/login")ID/PW 입력 > 사용자 확인:DB에서 확인 > USER가 맞으면... > 인증 토큰 생성 > 인증 객체 생성 > 스프링 전체에 사용할 수 있도록 bean 등록 > user는 토큰으로 여러 서비스..

Java/SpringBoot 2024.11.08

Throwable cause, Throwable

Parameter로 Throwable cause를 받는 코드를 보았다. 이게 무엇인가?정리해보자.Throwable cause는 자바에서 예외를 처리할 때 자주 등장하는 개념입니다. 이를 이해하려면 Throwable이 무엇인지부터 짚고 넘어가보자. 1. Throwable이란?Throwable은 자바에서 모든 오류와 예외를 나타내는 최상위 클래스입니다. 자바에서 발생할 수 있는 예외(Exception)와 에러(Error)는 모두 Throwable 클래스를 상속합니다.Exception: 프로그램에서 처리할 수 있는 예외를 나타냅니다.Error: 프로그램에서 처리할 수 없는 오류를 나타냅니다 (예: OutOfMemoryError).따라서, Throwable 클래스는 예외와 오류의 공통 부모 클래스입니다.2. T..

Java/SpringBoot 2024.11.07

@JsonInclude

1. @JsonInclude 정의@JsonInclude는 Jackson 라이브러리에서 제공하는 애노테이션으로, JSON 직렬화 시 특정 속성이나 필드의 포함 여부를 제어합니다. 이를 사용하여 객체의 필드가 null인 경우나, 빈 값인 경우 해당 필드를 JSON 응답에서 제외할 수 있습니다.주로 불필요한 데이터를 제외하고, 응답 크기를 최적화하기 위해 사용됩니다.2. @JsonInclude 사용하는 이유불필요한 데이터 제외:기본적으로 객체의 속성이 null이거나 빈 값일 때 이를 JSON에 포함시키지 않음으로써, 응답 데이터 크기를 줄이고 효율성을 높입니다.예를 들어, null 값인 필드는 API 응답에 포함되지 않게 하여 클라이언트가 불필요한 null 값을 처리하지 않게 할 수 있습니다.응답 최적화:조건..

Java/SpringBoot 2024.11.07

Builder

코드보고 해석을 하다가 자주 보게 되는 Builder.객체를 만들어준다는 것 밖에 모르기 때문에 제대로 알기 위해서 정리해보자.1. Builder 패턴 정의Builder 패턴은 복잡한 객체를 단계별로 생성할 수 있도록 하는 디자인 패턴입니다. 이 패턴은 객체를 생성하는 과정을 여러 단계로 나누어, 각 단계에서 필요한 값만 설정할 수 있도록 합니다. 이때, 객체의 생성자에서 처리할 수 없는 복잡한 초기화 작업을 분리하여 가독성을 높이고 유지보수를 용이하게 합니다. 핵심 아이디어: 생성자 대신에 Builder 클래스를 사용해 객체를 생성하며, 빌더 객체에 필요한 값을 차례대로 설정한 후 최종적으로 객체를 생성합니다.2. Builder 패턴을 사용하는 이유가독성 향상: 객체의 생성자가 복잡하거나, 많은 필드를..

Java/SpringBoot 2024.11.07

Enum

Enum 파일을 만들었는데 Enum이 무엇이고 왜 Enum으로 만드는 건지 이해가 안 돼서 정리해보기.1. Enum 정의Enum은 열거형 (Enumeration) 의 약자로, 고정된 값들의 집합을 정의하는 데이터 타입입니다. 이 값들은 객체처럼 다루어지며, 값의 범위가 제한되어 있어 특정 값만 허용됩니다. 예를 들어, 요일, 상태 코드, 방향 등을 표현할 때 유용합니다.2. 왜 사용하는가코드 가독성: 고정된 상수값을 의미 있는 이름으로 표현하여 코드의 직관성을 높입니다.타입 안전성: 잘못된 값이 사용될 가능성을 줄이고, 컴파일 타임에 오류를 잡을 수 있어 안전합니다.유지보수 용이성: 상수값들을 한 곳에서 관리하여 코드 변경 시 영향을 최소화하고 유지보수를 용이하게 합니다.3. 어떻게 사용하는지1. Enu..

Java/SpringBoot 2024.11.07

@JsonFormat

@JsonFormatJackson 라이브러리에서 제공하는 어노테이션.객체를 JSON으로 직렬화하거나 JSON을 객체로 역직렬화할 때 특정 필드의 포맷을 지정할 수 있게 해준다.주로 날짜, 시간, 숫자와 같은 데이터를 직렬화할 때 유용하게 사용된다. (pattern = "yyyy-MM-dd HH:mm")패턴을 yyyy-MM-dd HH:mm 으로 하겠다는 의미.즉 출력하면 2024-11-07 19:30 이런식으로 됨. 예시▼ 파일명: TestDTO.java@JsonFormat(pattern = "yyyy-MM-dd HH:mm")private LocalDateTime createdAt;

Java/SpringBoot 2024.11.07

1주+4일 (2024-11-06~2024-11-17)

1일차11/06호텔 관리자 페이지에 들어갈 기능들을 정리해놓기.chat gpt의 도움을 받았다.기존에 관리자 페이지 화면 설계를 위해서 와이어 프레임이 들어간 스토리보드를 작성 했다가 다시 처음부터 해야할 일이 생겨서 다시 작성했다.아래 표는 이미지로 넣었는데 아이패드 키노트로 작성했다.예정기존에 기획한 관리자 페이지에서 몇가지 기능들과 합쳐서 간추려야할 거 같다.즉, 기능 나열한 것에서 뺄건 빼고 추가할 건 추가하는 식으로 작업.2~3일차 11/07, 11/08개발 환경 확정, 사용자 페이지/관리자 페이지, 기능 목록 나열, 기능 목록 파트 담당 정하기, 기타 등등 회의를 통해 정하였음. 개발 환경Front-end: HTML, CSS, JavaScript, React, React-Router, REST..

.of() 메서드

강사님이 작성해준 소스코드를 분석하는데 어려운 용어 투성이다..of() 메서드를 보았는데 객체를 쉽게 만들 수 있게 해주는 거라는 설명을 보았다.깊게는 설명을 읽지 않았는데 아래 소스코드를 보고 의문이 들었다.인스턴스를 만드는건데 안에 .of() 메서드를 사용해서 또 객체를 만든다는 말인가? 혼란스러웠다.그래서 chat gpt한테 설명과 예시를 몇가지 들어달라고 했다.ErrorResponse errorResponse = ErrorResponse.of(e.getErrorCode());of() 메서드는 ErrorResponse 객체를 간편하게 생성하기 위한 팩토리 메서드입니다. 즉, 이 메서드를 통해 ErrorResponse 객체를 쉽게 생성하고, 필요한 데이터(예: e.getErrorCode())를 넣어줄..

Java/SpringBoot 2024.11.06

심란하다.

오늘은 학원에 협력 업체(기업)가 와서 2시간 특강을 해주었는데, 큰 기대를 안 하고 들었기 때문에 별 감흥은 없었다. 설명을 듣고 생각을 정리하는데 도움이 되는 부분이 있었다.어떤 부분이었냐면 '취업 및 이직 전력'이란 섹션의 설명이다. 중소기업부터 시작을 할 것인지, 스타트업부터 시작할 것인지, 대기업 IT부터 시작을 할 것인지 정해야 한다는 설명을 듣고 취업하고 싶은 곳을 먼저 정해야겠다는 생각을 했다. 그리고 희망하는 기업들에 맞추어 개인 프로젝트를 구상해야겠다는 생각도 했다.  현재 내가 준비한 포트폴리오는 프론트엔드 분야였다. 그런데 백엔드 수업을 들으면서 백엔드에 관심이 생기고 흥미를 느껴서 백엔드로 취업을 하고 싶다는 생각이 높아졌다. 이 말은 즉, 포트폴리오를 다시 백엔드에 맞추어 수정해..