Backend/Spring, SpringBoot 27

스프링부트 개발환경 구성하기 (6) Mybatis 연동과 게시판 목록 조회

📢 2024년 2월 기준으로 포스팅 내용을 업데이트하였습니다. 포스팅 순서는 아래와 같다. OpenJDK 17 설치 STS 4 설치 스프링부트 프로젝트 생성 메이븐 Local Repository 설정 DB 설계와 REST API 설계 mybatis 연동과 게시판 목록 조회 (현재 포스팅) 페이징 (Mybatis에서 Pageable) 동적 정렬처리 1. Mybatis 라이브러리 추가 기본적으로 생성되는 스프링부트 프로젝트는 Mybatis를 포함하지 않는다. 따라서 스프링부트에서 Mybatis를 설정할 수 있는 라이브러리를 설치해야 한다. 아래의 mybatis-spring-boot-autoconfigure 요구사항 표를 보면 Spring Boot, Java 버전에 따라 버전이 명시되어 있다. 내 Spring..

스프링부트 개발환경 구성하기 (5) DB 설계와 REST API 설계

📢 2024년 2월 기준으로 포스팅 내용을 업데이트하였습니다. 포스팅 순서는 아래와 같다. OpenJDK 17 설치 STS 4 설치 스프링부트 프로젝트 생성 메이븐 Local Repository 설정 DB 설계와 REST API 설계 (현재 포스팅) mybatis 연동과 게시판 목록 조회 페이징 (Mybatis에서 Pageable) 동적 정렬처리 DB 설계 https://aquerytool.com/에서 ERD를 그린 후 모든테이블 생성 SQL을 생성해주는 기능이 있으므로 간단하게 스키마 구성을 할 수 있다. 프로젝트 구조 설계 src/main/java com.company.helloBoard common - code - config - controller - exception - securify - ut..

스프링 @어노테이션 기본적인 사용법 알기

이번 포스팅에서는 기본적인 스프링 어노테이션 사용법을 연습해 볼 것이다. 헷갈리는 어노테이션들이 많으니 예제를 보며 감을 익히는 것을 추천한다. @Controller @Controller 어노테이션은 HTTP 요청을 처리하는 컨트롤러를 의미하며, Spring MVC 뷰를 반환하는 데 사용된다. 즉 View(화면)을 리턴할 때 쓰인다. 아래의 예시처럼 리턴 타입이 String인 경우 src/main/resources/templates 경로에서 리턴값이 "home".html 파일을 찾아서 해당 뷰를 보여준다. HomeController.java @Controller public class HomeController { @GetMapping(value = "/") public String home() { re..

스프링부트 개발환경 구성하기 (4) 메이븐 Local Repository 설정

📢 2024년 2월 기준으로 포스팅 내용을 업데이트하였습니다. 포스팅 순서는 아래와 같다. OpenJDK 17 설치 STS 4 설치 스프링부트 프로젝트 생성 메이븐 Local Repository 설정 (현재 포스팅) DB 설계와 REST API 설계 mybatis 연동과 게시판 목록 조회 페이징 (Mybatis에서 Pageable) 동적 정렬처리 스프링부트 프로젝트 구조 중요한 부분 1. BasicBoardApplication.java package com.company.basicBoard; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; ..

스프링부트 개발환경 구성하기 (3) 스프링부트 프로젝트 생성

📢 2024년 2월 기준으로 포스팅 내용을 업데이트하였습니다. 포스팅 순서는 아래와 같다. OpenJDK 17 설치 STS 4 설치 스프링부트 프로젝트 생성 (현재 포스팅) 메이븐 Local Repository 설정 DB 설계와 REST API 설계 mybatis 연동과 게시판 목록 조회 페이징 (Mybatis에서 Pageable) 동적 정렬처리 스프링부트 프로젝트 생성 스프링부트 프로젝트를 생성하려면, STS 툴에서 Spring Start Project 기능으로 새 프로젝트를 생성할 수도 있고, Spring Initializr로 프로젝트를 쉽게 생성할 수 있다. 이것 또한 개인 취향에 따라 선택하면 된다. 여기서는 2번째 방법으로 만들 것이다. 해당 사이트로 접속하면 꽤 복잡해 보이는 설정에 지레 겁을..

스프링부트 개발환경 구성하기 (2) STS 4 설치

📢 2024년 2월 기준으로 포스팅 내용을 업데이트하였습니다.포스팅 순서는 아래와 같다.OpenJDK 17 설치STS 4 설치 (현재 포스팅)스프링부트 프로젝트 생성메이븐 Local Repository 설정DB 설계와 REST API 설계mybatis 연동과 게시판 목록 조회페이징 (Mybatis에서 Pageable) 동적 정렬처리 STS 4 설치스프링을 개발할 때, 보통 2가지 방법으로 개발 도구를 설정하곤 한다.스프링 전용의 STS 툴을 이용하거나Eclipse, IntelliJ, VsCode에서 플러그인 형태로 사용하거나둘 중에 뭐가 더 좋은걸까? 개인적으로 나는 뭐든 상관없고, 본인 취향이라고 생각해서 나는 스프링 전용툴인 STS 4를 설치할 것이다. https://spring.io/tools 사이..

스프링부트 개발환경 구성하기 (1) OpenJDK 17 설치

📢 2024년 2월 기준으로 포스팅 내용을 업데이트하였습니다. 이번 포스팅에서 Spring Boot를 이용하여 간단한 게시판 프로젝트를 만들어 보려고 한다. 개발에 필요한 프로그램 설치부터 게시판, 로그인 기능 구현까지 차근차근 단계별 세팅을 진행할 생각이다. 최종 목표는 스프링 부트 개발환경을 이해하고, Rest API 형식으로 게시판 API를 설계하고, 스프링 시큐리티를 사용하여 로그인을 구현하는 것이다. 포스팅 순서는 아래와 같다.OpenJDK 17 설치 (현재 포스팅)STS 4 설치스프링부트 프로젝트 생성메이븐 Local Repository 설정DB 설계와 REST API 설계mybatis 연동과 게시판 목록 조회페이징 (Mybatis에서 Pageable) 동적 정렬처리 시작 전 준비사항이번 포스..

스프링부트 swagger 3.0 적용시 documentationPluginsBootstrapper 오류 발생할 경우

스프링부트 2.7.15 버전에서 swagger 3.0을 적용하려고 하니 documentationPluginsBootstrapper 에러가 발생했다. 문제 발생 pom.xml 파일에 swagger 3.0 의존성 추가 io.springfox springfox-boot-starter 3.0.0 io.springfox springfox-swagger-ui 3.0.0 SwaggerConfig.java 파일을 생성하여 com.company.myapp 패키지를 기본 패키지로 지정하였다. package com.company.myapp.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotatio..

2023년도 자바, 스프링, 스프링부트 버전 선택 가이드

스프링 프로젝트를 시작하면서 처음으로 고민하게 되는 것이 바로 버전 선택이다. 각각이 개선사항이 반영된 버전들로 업그레이드가 되면서 자바, 스프링, 스프링부트, STS 등의 버전을 한눈에 파악하기 힘들어졌다. 나 역시 이번 회사 프로젝트에서 스프링부트로 개발하면서 대체 어느 버전을 써야 하는지 고민했기에, 버전 선택을 고민을 하는 사람들에게 도움이 되기 바라며 포스팅을 기록한다. 1. 자바 버전 사람들은 어떤 자바 버전을 많이 쓸까? JetBrains의 조사에 따르면, 현재 많이 사용하는 버전은 자바 8이다. oracle support에서 자바 8이 제외되면서 조금씩 사용량이 줄고 있으나, 아직까지 많이 쓰이고 있는 것은 분명하다. 2014년도에 등장한 자바 8 버전이 아직까지도 인기 있는 이유가 무엇일..

Spring MVC 프로젝트의 기본 구조와 실행 순서

Spring MVC 프로젝트의 기본 구조 Spring의 전체적인 실행 순서 요청 -> DispatcherServlet -> HandlerMapping -> 요청 처리하기 (Controller Service DAO DB) -> DispatcherServlet -> ViewResolver -> View -> DispatcherServlet -> 응답 예시 1. 일반적인 기본 동작 순서 예시 2. 위 예시에서 Controller 뒷부분의 과정을 생략함 단계별 스프링 실행 순서 1. 클라이언트가 요청을 보낸다. 예를 들어, 사용자가 블로그 포스팅을 읽기 위해 http://localhost:8080/post/view 라는 블로그 글 조회 요청을 보냈다고 가정해보자. 2. 클라이언트의 요청을 DispatcherSe..