springboot 10

Spring Webflux - Reactive Streams API 만들기[1] 프로젝트 생성

개요 지난 포스팅에선 Webflux의 기본개념과 Reactive Streams 의 이론에 대해 알아보았습니다. 이번엔 Weblfux를 사용해 비동기 API를 만들어보고 추후 시큐리티로 API KEY 방식의 인증을 구현해보겠습니다. 요샌 보통 JWT를 쓰지만, JWT는 예제도 많고 API KEY 방식도 아직 쓰이는곳이 많아서 선정했습니다. 먼저 예제 프로젝트를 생성해보겠습니다. JAVA11 SpringBoot 2.7.4 Gradle R2DBC Mysql 큰 항목은 이렇게 설정했으며, Gradle dependencies 에 r2dbc-mysql connection은 따로 입력해주세요. 기존 start.spring.io 에 있는 mysql connection은 연결이 안되므로 따로 디펜던시를 설정합니다. bu..

카테고리 없음 2022.10.19

Spring - WebClient 사용해보기

개요 SpringBoot, Spring 환경에서 WebClient 를 사용하여 API Request 를 하는 클라이언트 프로젝트를 만들어보기. 서버와 API 통신을 위해 필요한게 무엇인지 알고 WebClient 의 기능사용해보기. Why ? WebClient 란? Spring 5.0에서 추가된 interface 이다. 이전 버전에서는 클라이언트로 RestTemplate 를 사용했으나, 비동기식 통신의 필요성으로 인해 WebClient 가 나오게 되었고, 현재 버전에서는 WebClient로 개발하는게 권장되는 상황이다. 그렇다면 RestTemplate 와 WebClient 가 어떤차이점이 있을까 ? RestTemplate 와 WebClient 의 차이점을 보기쉽고 간편하게 볼 수 있도록 표로 비교해보자 R..

Programming/Spring 2022.05.16

스프링부트 API - POST Method 활용하기

개요 POST Method의 의미와 종류, 이를 활용하는 방법을 알아보기 POST Method란 리소스를 전달하여 추가하기 위해 사용되는 API로 Create를 위해 사용되는 Method이다. POST API의 종류 @PostMapping : POST API를 제작하기 위해 사용되는 어노테이션, @RequestMapping + POST method의 조합, 일반적으로 추가하고자 하는 Resource를 HTTP body에 추가해서 서버에 전달하여 요청, 그렇기에 @RequestBody 를 이용해 body값을 받음 DTO : key 와 value 가 정해져있지만, 받아야할 파라미터가 많을 경우 DTO객체를 사용하는 방식 // 1. postMapping @PostMapping(value="/member") ..

Programming/Spring 2022.04.04

스프링부트 API - GET Method 활용하기

개요 API와 GET Method를 이해하고 활용하는 다양한 방법을 알아보기 GET 어노테이션의 종류 @RequestMapping : value와 method로 정의하여 API를 개발하는 방식으로 요즘 추세는 사용하지 않는 편 @GetMapping : 별도의 파라미터 없이 GET API를 호출하는 경우 사용되는 방법 @PathVariable : GET형식의 요청에서 파라미터를 전달하기 위해 URL에 값을 담아 요청하는 방법 @RequestParam : GET형식의 요청에서 쿼리 문자열을 전달하기 위해 사용되는 방법 // 1. ReqeustMapping @RequestMapping(value = "/hello", method = RequestMethod.GET) public String requestTes..

Programming/Spring 2022.04.03

스프링부트 API - REST API 란? 스프링부트로 API만들기

개요 REST API 란 무엇이며, 스프링부트에서 RESTful 한 API를 만들기위해 어떤방식으로 설계및 구현할지 알아보기위해 포스팅합니다. API 란? API는 Application Programming Interface의 줄임말로 응용 프로그램에서 사용할 수 있도록 다른 응용 프로그램을 제어할 수 있게 만든 인터페이스를 뜻합니다. API를 사용하면 내부 동작 로직을 알지못해도 정의되어 있는 기능으로 쉽게 사용할 수 있게됩니다. 여기서 Interface란 어떤 장치간에 정보 교환을 위한 수단이나 방법을 의미하며 대표적으로 마우스, 키보드 등이 해당됩니다. REST 란? REST는 Representational State Transfer 의 줄임말로 자원의 이름으로 구분하여 해당 자원의 상태를 교환하는..

Programming/Spring 2022.04.02

스프링부트 - SXSSF 형식으로 엑셀 다운로드 모듈만들기

개요 회사에 입사 후 기존의 엑셀 처리는 Jxls 방식으로 처리되었었다. 이 방식은 미리 템플릿을 원하는 페이지나 형식마다 따로 만들어야했고, 대용량의 데이터를 처리할 땐 너무 오래걸리거나 이로인해 거래처에서 여러번 시도하다가 동시에 Request 가 생겨 OOM 발생이 발생해 서버에 무리를 주는 상황이 발생한 경우도 있었다. 이런 리스크나 성능면에서 떨어져 poi 라이브러리에서 제공되는 sxssf 방식으로 변경업무를 진행했다. SXSSF 방식은 일정 용량을 넘어선 처리에선 자동으로 메모리를 관리해 서버에 부담이 적다는 점과 속도가 무난하다는 장점이 있다. 더 다양한 이유와 설명이 있겠으나, 자세한 점은 생략하고 본론으로 들어가겠다. 프로세스 기존의 프로세스는 EXCEL 버튼을 클릭할 경우, 페이지에서 ..

Programming/Spring 2022.01.05

스프링부트 기초 - 4. 게시판 수정,삭제

이전글 https://goodthinking.tistory.com/43 스프링부트 기초 - 3. 게시판 만들기 이전글 https://goodthinking.tistory.com/42 스프링부트 기초 - 2. CRUD 게시판 만들어보기 이전글 https://goodthinking.tistory.com/41 스프링부트 기초 - 1. 스프링부트 개요 & 프로젝트 설치 및 설정 개요 안.. goodthinking.tistory.com 이전글에서 CRUD 에서 Create , Read 를 구현했습니다. 수정 Update 먼저 수정하는 페이지를 만들어야겠죠.. resouces >templates >articles >edit.mustache 를 생성하겠습니다 코드로 첨부하니 전부 검정색으로 출력되서 그냥 제코드를 캡..

Programming/Spring 2021.12.07

스프링부트 기초 - 3. 게시판 만들기, 조회

이전글 https://goodthinking.tistory.com/42 스프링부트 기초 - 2. CRUD 게시판 만들어보기 이전글 https://goodthinking.tistory.com/41 스프링부트 기초 - 1. 스프링부트 개요 & 프로젝트 설치 및 설정 개요 안녕하세요. 이번에 스프링부트를 공부하면서 블로그에 정리하면 좋을것같아 찾아왔습니 goodthinking.tistory.com 이전글에서는 게시판만들기에 앞서 기본 main 페이지를 생성하고 컨트롤러를 등록했습니다. 이제 본격적인 게시판생성을 해보겠습니다. 그전에 header 를 먼저 정리하겠습니다. 필요한 부분만 남기고 일단 지워둘게요. 그리고 Main 페이지의 내용을 table 로 처리합니다. {{>layouts/header}} 번호 제..

Programming/Spring 2021.12.07

스프링부트 기초 - 2. 게시판 시작해보기

이전글 https://goodthinking.tistory.com/41 스프링부트 기초 - 1. 스프링부트 개요 & 프로젝트 설치 및 설정 개요 안녕하세요. 이번에 스프링부트를 공부하면서 블로그에 정리하면 좋을것같아 찾아왔습니다. 기존에 공부할땐 노션에 정리했는데 노션이 좋긴하지만, 블로그랑 성격이 조금 달라서 포트폴 goodthinking.tistory.com 시작 이전에는 설치와 설정을 간단하게 했습니다. 이번 포스팅부터는 간단한 게시판을 통해 CRUD를 구현해보겠습니다. 먼저 Spring Boot 는 기본적으로 톰캣 서버가 내장되어있어 따로 설정이 없어도 실행이 됩니다. 프로젝트를 실행 후 src >main >resources >static 폴더에다가 index.html 을 생성합니다. 웰컴 페이지..

Programming/Spring 2021.12.02

스프링부트 기초 - 1. 스프링부트 개요 & 프로젝트 설치 및 설정

개요 안녕하세요. 이번에 스프링부트를 공부하면서 블로그에 정리하면 좋을것같아 찾아왔습니다. 기존에 공부할땐 노션에 정리했는데 노션이 좋긴하지만, 블로그랑 성격이 조금 달라서 포트폴리오처럼 남기고, 다른사람에게 피드백? 이나 보여줄 수 있는 부분이 블로그가 더 클것같아서 블로그로 정리해보도록 하겠습니다. 설치 먼저 스프링부트를 설치 하기전, IDE를 정해야하는데요 기존의 프로젝트에서 저는 Eclipse, STS 를 활용했지만, 이번에는 IntelliJ 무료 버전인 CE버전을 활용하여 해보겠습니다. IDE의 설치는 인텔리제이의 회사 젯브레인 홈페이지에서 가능하며, 저는 MAC 환경이기에 링크가 mac 입니다. https://www.jetbrains.com/ko-kr/idea/download/#section=..

Programming/Spring 2021.12.02