반응형

springboot 6

SpringBoot 프로젝트에 SPA 프로젝트 연결하기

SPA 프로젝트의 빌드 결과물을 Spring Boot의 static 폴더로 이동해왔다면, 이제 스프링부트 프로젝트에서 프론트 엔드 요청을 SPA 프로젝트의 html파일로 연결해줘야한다. 여기서는 React프로젝트를 이용해서 SPA를 만들었기 때문에 React의 빌드 결과물을 가지고 연결할 것이다. 이렇게 보면 resources 하위에 React의 빌드 결과 파일들이 자리잡고 있는 것을 볼 수 있다. 이제 Spring Boot의 컨트롤러와 Web Config 파일에서 해당 index.html 파일로 연결되게 설정만 해주면 된다. 가장 먼저 해야할 일은 Controller를 생성하는 것이다.  @Controllerpublic class SPAController { @RequestMapping({"/"}..

IT Tech/Java 2024.07.29

React 프로젝트 스프링부트 프로젝트 안으로 빌드하기

스프링 부트의 resources 폴더 안으로 React 프로젝트를 빌드하는 것은 정말로 쉽습니다.  먼저 스프링 부트의 프로젝트 안의 frontend라는 폴더 안으로 React 프로젝트를 생성했습니다.  이 폴더 안을 보면 package.json이라는 파일이 있는데 이 파일을 열어보면,  이렇게 scripts라는 설정 밑으로 명령어들을 설정해 놓은 부분이 있습니다. 이 부분의 build 부분이 초기 세팅과 같다면 아마 vite build 라고만 적혀있을 것입니다. 이것을 만약 저와 폴더구조가 같다면 위의 명령어를 그대로 붙여 넣으면 됩니다. 명령의 흐름은 이와 같습니다. 먼저 리액트 프로젝트를 build합니다. 그리고 resources 의 static 폴더를 강제로 지우고, static 폴더를 생성하는데..

IT Tech/React 2024.07.29

스프링 프로젝트 안에 리액트(React) 프로젝트 생성하기

리액트란 무엇인가!리액트란 프론트 엔드에서 사용하는 자바스크립트 라이브러리다. 리액트의 최종적인 결과는 결국 웹 브라우저가 읽을 수 있는 html, css, js 등의 파일로 웹 어플리케이션을 웹 브라우저에 그려주는 것이 최종 목표이다. 개발자들은 프론트 엔드의 UI를 컴포넌트로 작성해서 읽기 쉬운 가독성과 재사용성을 높여주고, 한 페이지씩 웹 서버에서 다운로드를 받는 것이 아닌 한 페이지 안에서 여러페이지를 다시 렌더링해서 UI를 업데이트하는 형식의 SPA를 지향하는 라이브러리입니다. 결국, html, css, js 파일이기 때문에 리액트 라이브러리로 빌드한 파일들을 스프링 부트의 resources 폴더에 집어넣은 후, 스프링 부트 어플리케이션을 배포 서버에 올려두면, 클라이언트는 리액트로 작성된 프론..

IT Tech/React 2024.07.29

JavaScript Fetch와 Spring Boot에서 URL 경로 포함한 DELETE 요청 처리 방법

URL 경로에는 "/" 라던지 "=" 이라던지 "%" 등 여러가지 특수문자가 들어가게 된다. 물론 객체화해서 서버로 보내는 방법도 있다. 하지만 HTTP의 DELETE 메서드로 보낸다면, 어떤 서버는 body 값을 알아서 받아주기도 하지만, SpringBoot의 경우 DELETE 메서드에 body를 포함해서 받으려면 특정한 설정을 해줘야 한다. 그래서 클라이언트 측에서 해당 URL값을 인코딩 처리해서 서버로 보내줘서, 특수문자로 인한 에러가 발생하지 않도로 해줘야 한다. 그래서 이미 JavaScript를 만드시는 훌륭한 분들이 간단하게 함수 하나로 해당 URL값을 서버에서 받을 수 있는 인코딩을 쉽게 할 수 있도록 해놓았다. 우리는 그 함수를 사용하기만 하면 쉽게 서버로 전송할 때 에러가 생기지 않게 할..

IT Tech/React 2024.07.11

Spring Data JPA - Specification이란?

JPA를 이용해서 개발을 하다보면, 복잡한 검색조건, 단순히 검색조건이 한 두개만 늘어나도 상당히 코드의 가독성이 확 떨어지는 경우가 생깁니다. 그런 상황에서 동적쿼리라는 말이 들리고, Specification이라는 인터페이스도 들리게 됩니다. Specification이란 무엇인지 한 번 알아보도록 하겠습니다. Specification이란, Spring Data JPA에서 제공하는 API중에 하나입니다. 복잡한 검색 조건, 다양한 조합의 필터링 로직을 쉽게 구현할 수 있는 API입니다. 특히 검색이나 필터링 조건이 많은 REST API를 개발할 때 매우 유용한 API입니다. 왜 써야 하는가? 테이블에서 필드에서 조건이 맞는 데이터를 가져온다고 생각해봅시다. 그럼 JPA로 간단하게 인터페이스의 method..

IT Tech/Java 2024.03.25

Vue.js 3에서 이미지 파일 Post 요청

데이터 전송에 있어서 HTTP 프로토콜을 사용한다면, 전송하는 데이터의 종류에 따라 적절한 인코딩 방식을 선택해서 사용하게 됩니다. 일반적으로 문자열이나 객체와 같은 구조화된 데이터를 전송하는 경우, JSON 인코딩을 사용하는 것이 일반적입니다. JSON은 데이터를 효율적으로 표현하고, 다양한 플랫폼 간 데이터를 쉽게 주고받을 수 있는 형식을 제공하기 때문에 널리 사용되는 방식입니다. 예를 들어, 서버에 사용자 정보를 전송하는 경우 다음과 같은 JSON 사용될 수 있습니다. { "userName": "KIM JUNSU" "age": 36 "email": "zzansu01@gmail.com" } 이미지 파일이나 비디오 파일 같은 이진 데이터를 전송할 때는 JSON 인코딩이 적합하지 않은데요. 이진 데이터는..

IT Tech/vue.js 2024.03.06
1
728x90
반응형