Backend 46

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

이번 포스팅에서는 기본적인 스프링 어노테이션 사용법을 연습해 볼 것이다. 헷갈리는 어노테이션들이 많으니 예제를 보며 감을 익히는 것을 추천한다. @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) 동적 정렬처리 시작 전 준비사항이번 포스..

Oracle JDK와 Open JDK 차이점 (feat. Java 유료논쟁)

자바는 어디에서나 실행할 수 있도록 개발된 프로그래밍 언어이다. 최초 썬 마이크로시스템즈에서 출시된 이후, 2010년 오라클에서 자바를 인수하게 되었다. 몇 년 전 '자바가 유료화가 된다(!)'는 뜨거운 논쟁이 있었다. 결론부터 말하자면 자바 언어는 GPL 라이선스로 무료이다. 그렇다면 어떤 것이 유료화가 된다는 것일까? 바로 JDK이다. JDK 자바 언어로 애플리케이션을 개발하려면 JDK 설치는 필수적이다. JDK(Java Development Kit)는 컴파일러, 디버깅 등 자바 애플리케이션 개발에 필요한 툴이 포함되어 있으며, 자바 실행환경인 JRE와 가상머신인 JVM도 포함되어 있다. Java 프로그램을 실행하기 위해서는 아래의 핵심 기능이 필요하다. Java로 작성한 프로그램을 컴파일해 주는 J..

Backend/Java 2023.09.17

Java 8, 11, 17 버전별로 추가된 기능 알아보기

자바에서 가장 많이 사용되는 버전은 자바 8이다. 아직까지도 실무에서는 Java 8만 계속 사용하고 있지만, 2023년 9월 현재는 자바 21 버전까지 출시가 된 상태이다. 대표적인 Java LTS 버전은 자바 8, 11, 17가 있는데, 스프링부트 3 버전부터 자바 17 이상만 지원되면서 최근 자바 8에서 17 버전으로 전환되는 비율이 많아졌다. 각 버전별로 추가된 기능들과 예제를 살펴보면서 대략적인 특징을 살펴보자. Java 8 에서 추가된 기능 2014년 릴리즈 오라클이 Sun Microsystems 인수 후 출시한 첫 번째 LTS 버전의 자바 오라클사의 유료 버전인 Oracle JDK와 오픈소스 기반의 무료 버전인 Open JDK로 나뉨 (뜨거웠던 Java 유료 논쟁) new Date and Ti..

Backend/Java 2023.09.16

자바 헷갈리는 용어 정리(Java SE, JDK, JRE, JVM)

Java SE 자바는 크게 3가지의 에디션이 있다. Java SE (Java Standard Edition, J2SE) : 표준 에디션 Java EE (Java Enterprise Edition, J2EE) : 기업용 에디션 (=Jakarta EE) Java ME (Java Micro Edition, J2ME) : 임베디드용 에디션 위 에디션 중에서 사람들이 많이 사용하는 것은 Java SE이다. Java SE는 한마디로 자바의 표준안이자 명세서(spec)를 말하는데, 이 명세서에 따라서 Java가 만들어지게 된다. 예를 들어 Java SE 20은 버전 20에 대한 명세서를 말한다. Java SE는 JCP(Java Community Process)라는 조직을 통해서 만들어지는데, JCP 홈페이지에서 JS..

Backend/Java 2023.09.15

스프링부트 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 버전이 아직까지도 인기 있는 이유가 무엇일..