Programming/Spring Boot 100

IntelliJ 개발환경 꾸미기 Plugins 소개 (Meterial Theme UI, Progress Bar 외)

플러그인을 사용한 IntelliJ 개발 환경 꾸미기 Plugins 소개입니다. 사용한 Plugins은 다음과 같습니다. Material Theme UI Atom Material Icons Progress Bar Power Mode 2 플러그인은 Preferences -> Plugins -> Marketplace 에서 검색을 통해 찾아서 다운 받을 수 있습니다. plugins Mac : Command + Shift + A Windows Ctrl + Shift + A 가장 먼저 Material Theme UI 입니다. 색상 및 폰트 등, 전체적인 IntelliJ 색상 및 분위기를 바꿀 수 있는 꾸미기에 가장 큰 영향을 주는 플러그인 입니다. * theme는 위 테마 외에도 많은 색상이 있고, custom 테..

@Component 와 @Bean, @Autowired 어노테이션 알아보기

자주 사용하면서도 정확하게 무슨 용도로 사용되는지, 어떤 동작 원리를 가지는지, 어떤 차이가 있는지 잘 몰랐던 부분에 대해서 공부합니다. 먼저 Annotation에 대해서 간단하게 알아보겠습니다. Annotation은 Java 5부터 추가된 문법 요소로, 코드 사이에 주석처럼 쓰이며 특별한 의미, 기능을 수행하도록 하는 기술입니다. 실제 데이터가 아닌 데이터를 위한 데이터로 메타데이터 (meta data)로 불립니다. 어노테이션의 용도 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보 제공 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보 제공 실행 시 (런타임) 특정 기능을 실행하도록 정보 제공 어노테이션을 사용하기 위한 순서 어노테이션 정의 클래스에 어노테이션 배치 코드가..

Spring Boot Validation 적용하는 법, @Valid 작동 안되는 이유

* @Valid 어노테이션이 작동이 안 한다면? spring boot 2.3 version 이상부터는 spring-boot-starter-web 의존성 내부에 있던 validation이 사라졌습니다. 때문에 사용하시는 spring boot version이 2.3 이상이라면 validation 의존성을 따로 추가해주셔야 사용할 수 있습니다. Spring Boot Validation 적용하는 방법 - Validation을 사용하기 위해 먼저 의존성을 추가합니다. // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation implementation group: 'org.springframework.bo..

JWT 토큰 기반 인증 시스템 (JSON Web Token)

Spring Boot + Security + JWT + Redis 를 기본으로한 RESTful API를 구현하기로 계획하며 토큰 기반 인증 시스템 JWT에 대해서 다시 한번 정리합니다. 토큰 기반 인증 시스템이란, 먼저 웹 보안은 요청하는 사용자를 식별하는 인증 (Authenticate)와 인증된 사용자가 보호된 리소스에 접근할 권한이 있는지 확인하는 인가 (Authorize) 가 바탕이 됩니다. 토큰(Token) 기반 인증 시스템은 인증을 받은 사용자에게 토큰을 발급하고, 사용자가 서버에 요청을 할 때 헤더(Header)에 발급 받은 토큰을 함께 보내도록 하여 유효성을 검사합니다. * 사용자의 정보를 세션에 계속 유지해야 하는 서버 기반 인증 시스템과 달리 연결을 유지하지 않는 stateless 구조를..

IntelliJ Community version Spring Boot Project 생성하는 방법

IntellJ Community version Spring Boot Project 생성하는 방법입니다. 인텔리제이 커뮤니티 버전을 사용하신다면 New Project에서 스프링, 스프링 부트 프로젝트를 생성하는 'Spring Initializr' 을 찾을 수 없습니다. 그렇기 때문에 다른 방법을 이용해야 하는데요. https://start.spring.io/ 방법들 중 하나로 start.spring.io 사이트를 이용하는 방법이 있습니다. 프로젝트 생성 방법은 아주 간단합니다. 좌측 메뉴를 기준으로 원하는 프로젝트 Maven, Gradle 선택 및 언어와 Spring Boot 버전을 선택하고 프로젝트의 Metadata, 패키징 방법, Java 버전을 입력합니다. 그리고 우측 ADD DEPENDENCIES를..

Spring MVC 프론트에서 컨트롤러로 input name 으로 값 여러개 전달하기 Ajax

ajax 사용하여 프론트 -> 컨트롤러 input name 으로 입력 값 여러개 전달하는 방법 선택1 선택2 MVC 프로젝트에서 저런 형태로 반복되는 여러개의 데이터들을 컨트롤러로 보내야 하는 상황이 있습니다. 프론트에서 입력한 값을 javascript에서 체크하여 ajax 통신으로 컨트롤러에 보내는 방법을 사용했습니다. * 실제로는 javascript로 팝업창을 띄우고 설정 창을 열어 값을 입력받는 상황이라 ajax를 사용하여 통신하고 팝업창을 닫는 과정까지 진행했지만 javascript를 거치지 않고도 프론트 -> 컨트롤러로 여러 개의 값을 보낼 수 있습니다. 동일한 형태의 반복되는 값이기 때문에 for문을 통해 객체를 생성해서 배열로 넘기는 방법을 사용하였습니다. 위의 방법으로 param을 생성하여..

springboot 개발 환경에 따른 properties 사용 방법 (local, dev, prod)

스프링부트에서 개발 환경에 따라 properties를 사용하는 방법입니다. 우선 properties란 무엇인지 알아보겠습니다. .properties는 설정 파일입니다. 자바 응용프로그램 내에서 사용되는 설정과 관련된 변수들을 파일에다가 쓰고, 읽어오는 방식에 사용되는 파일입니다. 이 설정 파일은 외부에서 파일을 넣을 수도 있고, 프로젝트 내부적으로도 넣어서 사용할 수 있습니다. 위에서 말한 설정과 관련된 변수들은 문자열로 저장됩니다. 각 줄은 일반적으로 하나의 프로퍼티를 저장하며, 한 문자열은 key, value 쌍으로 저장됩니다. 줄의 맨 앞에 # 또는 ! 를 사용하여 주석처리를 할 수 있습니다. 위에 보이는 파일은 가장 기본이 되는 application.properties 파일로 스프링부트가 어플리케..

No auto configuration classes found in META-INF/spring.factories 오류 해결

IntelliJ Spring Boot Project 배포를 위한 jar 파일 생성 (Maven) 마무리 중인 Spring Boot 프로젝트 배포를 위해 작업된 프로젝트를 jar 파일로 만드는 법을 기록합니다. (큰 틀에서의 이론을 먼저 살펴보고 생성 방법에 대해서 알아보겠습니다.) 먼저 Java 기반의 Ap wildeveloperetrain.tistory.com * 해당 포스팅의 방법으로 생성한 .jar 을 실행하는 과정에서 발생한 오류와 그 해결 방법을 찾아 다시 포스팅합니다. 프로젝트를 배포하기 위해 위 방법으로 .jar 파일을 생성하고 실행하였으나 에러가 발생하였습니다. ERROR org.springframework.boot.SpringApplication - Application run faile..

Swagger 사용하여 RESTful API 문서 자동화하기 (SpringBoot)

처음에는 회사에 들어갔을 때는 Swagger를 잘 만들어야 한다는 이야기가 크게 와닿지 않았는데, 프로젝트를 진행하며 협업에 있어서 내가 개발한 것을 다른 사람들도 쉽게 알아보고, 사용할 수 있도록 문서화하는 것이 중요하구나를 많이 느끼고 있습니다. 그래서 Web API 문서화 도구 중 많이 쓰이는, 그리고 사용하고 있는 Swagger의 사용법에 대해 정리해보려고 합니다. (Swagger 외에는 많이 사용되는 문서화 도구는 SpringRestDocs가 있습니다.) Swagger란 무엇일까? 백엔드 개발에 있어서 Web API를 문서화하기 위한 도구이며 쉽게는 제품의 설명서라고도 생각할 수 있습니다. 간단한 설정으로 프로젝트의 API 목록을 웹에서 확인 및 테스트 가능하게 하는 라이브러리이며, 특히 RES..

IntelliJ Spring Boot Project 배포를 위한 jar 파일 생성 (Maven)

2021.07.27 추가 * 해당 방법으로 실행되는 경우도 있겠지만 본인의 경우 해당 방법으로 프로젝트 실행에 실패했고, 해결 방안을 맨 하단 새로 포스팅하여 올렸습니다. 참고 부탁드리겠습니다. 마무리 중인 Spring Boot 프로젝트 배포를 위해 작업된 프로젝트를 jar 파일로 만드는 법을 기록합니다. (큰 틀에서의 이론을 먼저 살펴보고 생성 방법에 대해서 알아보겠습니다.) 먼저 Java 기반의 Application 배포 형태는 JAR, WAR 두 가지 방법이 있습니다. 두 가지 방법 모두 Java jar tool을 이용하여 압축한 같은 형태의 압축 파일이지만 사용 목적이 다릅니다. 그리고 둘의 눈에 띄는 가장 큰 차이점은 내장 WAS를 사용하는 것과 외장 WAS를 사용하는 것이 아닐까 생각합니다. ..