반응형

springboot 15

[OpenAI] Springboot/ 401 Unauthorized: [no body] 오류

잡담프로젝트 준비하면서 ChatGpt OpenAI를 활용하고 있습니다. 잘 사용하다가 뭔가를 잘못 건드렸는지 해당 오류가 발생하더라고요.. 도대체 뭐를 잘못했는지 한참을 찾았는데 코드를 아무리 봐도 잘못된 게 없었습니다. 이리저리 검색하다 발견했습니다. 결국 잘못한 건 나였고...  Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.web.client.HttpClientErrorException$Unauthorized: 401 Unauthorized: [no body]] with root cause 401 Un..

DB 2024.06.13

[Springboot] @ToString.Exclude, @ToString(exclude =" ") 정리 및 오류

잡담Springboot 프로젝트를 진행도중 Entity를 만드는 과정에서 오류가 발생했습니다. Lombok을 통해 @Tostring을 추가해서 해당 데이터를 출력하는 중이었는데 참조하는 모든 값을 출력하면 정작 필요한 값을 확인하기 힘들기 때문에 Exclude를 사용하는 과정이었습니다.   @ToString. Exclude 사용 예제import lombok.ToString;@ToStringpublic class User { private String name; private int age; @ToString.Exclude private String password; public User(String name, int age, String password) { thi..

[Springboot] thymeleaf 조건문 if

Thymeleaf에서 th:if는 조건부로 HTML 요소를 렌더링 하는 데 사용되는 속성입니다. 이 속성을 사용하면 특정 조건이 충족될 때만 HTML 요소를 표시하거나 숨길 수 있습니다.th:if는 일반적으로 Thymeleaf 템플릿 엔진과 함께 사용되며, 다음과 같은 방식으로 사용됩니다: 여기서 ${condition}은 평가될 조건을 나타내며, 조건이 true일 때 내부의 HTML 요소가 렌더링 됩니다.다음은 th:if를 사용한 간단한 예제입니다: Welcome Admin! Welcome User! 이 예제에서는 user.isAdmin이라는 조건에 따라 관리자 여부를 확인하고, 해당하는 메시지를 출력합니다.또 다른 예제로는 리스트의 요소를 순회하..

[Springboot] Session이란?

세션(Session)이란?세션은 클라이언트와 서버 간의 지속적인 상태를 유지하기 위한 방법입니다. 웹 애플리케이션에서는 HTTP 프로토콜이 기본적으로 무상태(stateless) 프로토콜이기 때문에, 클라이언트가 요청할 때마다 새로운 요청으로 간주됩니다. 이러한 특성 때문에 사용자 인증 정보, 쇼핑 카트 내용 등과 같은 상태 정보를 유지하기 위해 세션을 사용합니다. 세션의 동작 원리세션 생성: 클라이언트가 서버에 처음 요청을 보내면 서버는 새로운 세션을 생성합니다. 이때 서버는 고유한 세션 ID를 발급합니다.세션 ID 전달: 서버는 생성된 세션 ID를 클라이언트에게 쿠키를 통해 전달합니다. 클라이언트는 이 세션 ID를 로컬에 저장합니다.세션 유지: 클라이언트는 이후의 모든 요청에 세션 ID를 함께 전송하여..

[Java] 게시판 ⑧ View

잡담html 및 javaScript 코드 같은 경우 양이 너무 많기 때문에  중요 코드 부분만 따로 설명하도록 하겠습니다. Controller를 통해 확인해 본 html의 종류는 list, modify, read, register 4가지 정도입니다. list는 메인화면을 출력하고, register를 통해 새로운 게시글을 등록합니다. read를 통해 원하는 하나의 게시글만 출력하고, modify를 통해 수정할 데이터를 받아와 출력합니다.처음부터 모든 UI를 꾸미는것은 지금 백앤드를 연습하는 단계 임으로 Bootstrap을 이용해서 css부분을 대신하기로 하였습니다. 1. BootStrap부트스트랩(Bootstrap)은 트위터에서 개발된 오픈 소스 프런트엔드 프레임워크로, 웹 개발자들이 반응형 웹사이트와 웹..

[Java] 게시판 ⑦ Controller

잡담Controller는 MVC (Model-View-Controller) 패턴에서 클라이언트로부터 받은 요청에 대한 응답을 생성하는 역할을 합니다. 이전에도 언급했듯이 클라이언트로부터 HTTP 요청을 받고 해당요청을 적절한 메서드로 라우팅 합니다. 해당 메서드에서 데이터 검색, 조작, 생성등의 작업을 수행하면서 모델링 된 데이터를 적절한 view를 선택해서 응답합니다.목차BoardController 1.list(GetMapping) 2. register(Get/PostMapping) 3. read, modify(GetMapping) 4. modify(PostMapping) 5. delete(PostMapping)BoardController스프링 기반의 웹 애플리케이션에서 게시판(Board) 관련 기능을..

[Java] 게시판 ⑥ ModelMapper

잡담DB에 대한 설정 같은 경우 형식적으로 정해져 있는 경우가 많습니다. 왜 이렇게 생겼지?라고 생각하게 되는 경우가 많은데 이해하기엔 너무 많은 메서드를 들고 있어서 그렇습니다. 자주 사용하는 메서드가 어떤 동작을 해주는지를 이해하고 형태에 대해서는 그렇구나 하고 넘어가는 게 좋은 거 같습니다. 제 생각이 그렇다는 말이지 다른 생각이 있다면 그 생각이 맞습니다. 1. RootConfig이 코드는 Spring Framework에서 ModelMapper를 설정하기 위한 설정 클래스입니다. ModelMapper는 객체 간 매핑을 쉽게 해주는 라이브러리로, 주로 DTO와 엔티티 간의 변환에 사용됩니다.implementation 'org.modelmapper:modelmapper:3.1.1'ModelMapper..

[Java] 게시판 ⑤ Repository(service) ⓑ

잡담앞서 JPARepository를 이용해서 CRUD 형태의 기본적인 메서드를 만들어봤습니다. 이번에는 메인화면에서 게시글을 출력할 때 전체 출력 및 검색한 내용에 대해서만 출력할 수 있도록 메서드를 작성해 보았습니다.  1. 출력(list)list 메서드에서는 매개변수로 pageRequestDTO를 받아서 BoardDTO클래스를 가지는 PageResponseDTO리스트를 return 합니다. pageRequestDTO는 기본 페이지 정보를 가지고 있습니다. 예를 들어서 첫 페이지 번호, 페이지 사이즈, 검색조건도 받아오고, 입력받은 키워드값도 받아옵니다. list메서드를 이용해서 Controller에서 메인화면을 출력하고 검색한 조건을 활용한 출력도 가능해집니다.@Override public Pa..

[Java] 게시판 ⑤ Repository(service) ⓐ

잡담Repository(service)에서는 게시판에서 기본적으로 사용하는 입력하고, 삭제하고, 검색하는 메서드를 정의합니다. 해당 메서드들을 Controller에서 데이터를 주고받을 때 호출해서 사용할 겁니다.1. BoardServicepackage org.zerock.b01.service;import org.zerock.b01.dto.BoardDTO;import org.zerock.b01.dto.PageRequestDTO;import org.zerock.b01.dto.PageResponseDTO;public interface BoardService { Long register(BoardDTO boardDTO); BoardDTO readOne(Long bno); void modify(B..

[Java] 게시판 ④ Repository(search)

다형성 예시운송 수단 클래스와 하위 클래스들:상위 클래스: 운송 수단(Vehicle)하위 클래스: 자동차(Car), 자전거(Bicycle), 비행기(Airplane)운송 수단(Vehicle) 클래스는 이동하기(move)라는 메서드를 갖고 있습니다. 이 메서드는 자동차, 자전거, 비행기 등에서 다르게 구현됩니다. 자동차는 바퀴를 굴려 이동하고, 자전거는 페달을 밟아 이동하며, 비행기는 날개를 이용해 날아갑니다. 운송 수단 타입의 변수로 자동차, 자전거, 비행기 객체를 모두 참조할 수 있고, 이동하기 메서드를 호출하면 해당 객체에 맞는 방식으로 이동합니다.이 다형성의 이점을 이용하려고 Repository를 만듭니다1. BoardSearch(interface)package org.zerock.b01.repos..

반응형