spring(19)
-
[Error] java.lang.ClassNotFoundException: org.apache.hc.client5.http.classic.HttpClient
[Error] java.lang.ClassNotFoundException: org.apache.hc.client5.http.classic.HttpClient 네이버 클라우드 플랫폼을 이용하여 문자 인증을 구현하는 도중에 생긴 문제이다. 분명히 해당 관련 라이브러리를 가져올 수 있도록 build.gradle에 추가를 했는데 찾을 수 없다 하여 구글링을 시작했다 https://stackoverflow.com/questions/76772549/caused-by-java-lang-classnotfoundexception-org-apache-hc-client 5-http-classic
2023.08.17 -
[Spring] @PathVariable, @RequestParam, @RequestBody, @ModelAttribute
@PathVariable, @RequestParam, @RequestBody, @ModelAttribute 글을 남기고 생성할 수 있는 간단한 API를 구성하면서 해당 어노테이션들을 사용하게 되었다. 이때 사용했던 어노테이션의 특징부터 차이점까지 궁금하여 학습을 하였고 기록을 남기게 되었다. @PathVariable URI 경로에 변수를 넣어서 해당 변수를 받아올 수 있다. 각 URI 경로에 변수를 넣어 메서드를 지정하여 호출을 하면 해당 변수가 템플릿 매개변수에서 메서드 매개변수로 사용할 수 있게 설정해주는 역할이다. @PathVariable을 사용하는 Path Variable은 리소스를 식별해서 요청할 때 사용이 된다 매핑의 종류는 다음과 같다 간단한 매핑 @PathVariable을 선언하고 해당 U..
2022.12.07 -
[Error] java: package org.springframework.boot does not exist
문제 복습을 진행하다 이제 타임리프 강의를 다시 듣기 위해 해당 프로젝트를 open 하고 다시 실행하는 도중에 해당 오류 발생 java: package org.springframework.boot does not exist - 이 상황은 다른 학습용 프로젝트를 오랫동안 열지 않았던 경우에도 종종 발생했었음 검색을 해본 결과 Intelli J 에서는 종종 Build가 깨지는 오류 존재 라이브러리가 깨진 경우 gradle refresh → intellij gradle 항목에서 새로고침 intellij cache 삭제 상단 file → invaildate cache -
2022.10.01 -
[Spring] @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor 생성자 어노테이션 개념
스프링을 공부하면서 조금씩 기능을 파악하던 도중 lombok라이브러리에 있는 생성자를 만들어주는 어노테이션들을 알게되었다. 세 가지의 종류가 존재하며 이를 토대로 각자 어떤 상황에는 어떤 어노테이션을 써야하는지 정리하고자 한다. Lombok 어노테이션 ( Getter / Setter / Data / (No / All / Required ) Constructor... etc)를 잘 모르고 사용하게 된다면 에러를 발생시키는데 그중에서 Constructor 어노테이션에 대해 정리하려한다. 해당 코드는 Web todo를 만들 때 사용하였던 UserDTO다. 기록을 위해 해당 객체에 조금의 수정을 해서 가져왔다. @Data @Builder @NoArgsConstructor @AllArgsConstructor @R..
2022.08.09 -
[Spring-Thymeleaf] Thymeleaf - 타임리프(1)
타임리프란? SSR - 서버 사이드 렌더링 더보기 JSP / Servlet 등과 같이 서버사이드 렌더링 기술이다. SSR을 사용 시 데이터가 매핑이 된 서비스 페이지를 클라이언트(브라우저)에게 바로 보여줄 수 있다. 이는 기존의 프런트엔드의 React 혹은 다른 기술을 사용해서 보여줄 수 있지만 그렇게 하면서 개발을 하기에는 다시 프런트의 기술에 대해 세세하게 공부를 해야 한다. 우리가 필요한 것은 백엔드를 개발하면서 우리가 필요한 부분을 간략하게 보여주는 것을 원한다. 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 해주는 용도로 사용이 된다. 내추럴 템플릿 더보기 순수 HTML을 유지하는 특성을 가지고 있다. 타임리프를 활용하여 작성된 파일은 HTML을 유지하기에 스프링으로 서버를 실행하지 않아..
2022.08.07 -
[Spring] MVC 패턴이란?
스프링을 사용하면서 웹 개발을 진행할 때 MVC 패턴을 사용한다. MVC 패턴 이전의 개발에서는 하나의 서블릿 혹은 JSP만으로 모든 요청과 처리를 진행하였다. 그러한 상황에서는 유지보수 및 어떤 부분을 수정하는 상황에서 하나의 비즈니스 로직 / HTML / UI 수정 어느 부분을 수정하든 전체를 수정해야 하는 일이 발생하였고, 이런 상황에서 등장한 것이 바로 MVC 패턴이다. 지금부터 기록할 것은 바로 이 현재 사용되고 있는 스프링 MVC에 대해 기록하려 한다. MVC란? 먼저 MVC에 대해 알아보자. 정확히 무엇을, 어떠한 형태를 MVC 패턴이라고 하는가? 바로 이러한 형태를 MVC 패턴이라고 한다. 이러한 MVC 패턴은 3가지 구조로 이루어져서 클라이언트에게 제공이 된다. 각각의 부분들은 Model..
2022.08.04