프레임워크/스프링&스프링부트

    오류해결::spring-boot-maven-plugin not found

    오류해결 spring-boot-maven-plugin not found 4.0.0 org.springframework.boot spring-boot-starter-parent 3.0.2 ... 중략 org.springframework.boot spring-boot-maven-plugin org.projectlombok lombok POM 파일을 확인해보면 다음과 같이 확인할 수 있는데 이경우는 spring-boot-maven-plugin이 spring-boot-starter-parent의 버전을 제대로 따라가지 못해서 나타나는 것으로 생각된다. 그렇기 때문에 해당 버전을 명시해주면 되는데 명시하는 방법은 다음과 같다. 해결방법 우선 spring-boot-maven-plugin의 버전과 spring-boo..

    오류해결::Dependency 'org.springframework.boot:spring-boot-starter-web:2.3.0.RELEASE' not found

    오류해결 Dependency 'org.springframework.boot:spring-boot-starter-web:2.3.0.RELEASE' not found 스프링 부트에서 간단한 프로젝트를 만든후 빌드하거나 혹은 빌드전 IDE 자체에서 이러한 오류 메시지를 보여주는 경우가 있는데 그 경우 해결방법은 다음과 같다 해결방법 Invalidate Caches and Restart 를 통해 해당 문제를 해결할 수가 있다. 이렇게 진행하면 자체내에서 리스타트시 pom의 싱크를 다시 잡아주게 되어 해당 문제가 해결된다.

    Spring&SpringBoot::log4j→log4j2 변경하기

    log4j→log4j2 변경하기 기존 log4j는 보안상 취약점 및 오랜시간 동안 업데이트 되지 않았다고 하여 회사에서 변경권고가 들어와 log4j2로 변경하는 과정에서 기록으로 남김 pom.xml 수정 pom.xml 내용 확인 후 수정 log4j는 org.apache.log4j log4j2는 org.apache.logging.log4j

    Spring&SpringBoot::JUnit5... Runwith 변경사항

    JUnit5... Runwith 변경사항 최근 여러강의를 듣거나 책을 읽다보면 대부분의 강의나 책에서 다루는 테스트에서는 Runwith 어노테이션을 사용하고 있음을 알 수 있다. 그러한 강의를 따라하다보면 제대로 테스트 코드가 작동하지 않음을 알 수있는데 Runwith어노테이션을 사용할 수 없기 때문에 발생하는 경우들이 있을 것이다. 그 이유는 아마 새롭게 프로젝트를 만들고 진행하다가 JUnit5를 설치하거나 의도적으로 JUnit5를 사용하려고 했기 때문일 것이다. 그렇다면 Runwith는 무엇이고 왜사용했으며 어떠한 어노테이션으로 대체되고 JUnit5에서는 왜 사용하지 않게 된 것인지에 대해서 알아 보도록 하겠다. Runwith란? Runwith어노테이션은 스프링 프로젝트의 테스트 실행 방법을 확장하고..

    [Spring Boot]JaCoCo 적용하기

    이 글은 '백기선의 더 자바, 코드를 조작하는 다양한 방법' 강좌를 듣고 해당 내용을 추가로 공부하며 정리한 글입니다. JaCoCo 적용하기 코드커버리지를 측정하기 위해 여러가지 툴(?) 라이브러리(?)를 찾던 JaCoCo라는 것을 찾아서 쓰임새를 비교해보고자 적용해보았다. JaCoCo가 무엇인지 알아보고 Spring boot 프로젝트에 한번 적용해보는 과정을 기록해보려고 합니다. JaCoCo란? 이름과 로고에서 알 수 있다시피 Java Code Coverage를 측정하는 라이브러리입니다. In computer science, test coverage is a measure used to describe the degree to which the source code of a program is exec..

    @SpringBootApplication 이해하기

    @SpringBootApplication 이해하기 spring boot 프로젝트를 생성하고 나서 메인 메소드를 확인하면 다음과 같은 코드를 확인할 수 있다. package com.example.xxx; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ApiTestApplication { public static void main(String[] args) { SpringApplication.run(ApiTestApplication.class, args); } } @SpringB..

    API Versioning

    Rest API 버전관리 Rest API의 설계가 변경되거나 구조가 변경될시 버전을 변경하여 관리를 해줘야한다. 이유는 당연히 기존에 사용하던 하위 버전의 Rest API를 호출하여 사용할 수 없게 될경우 클라이언트측의 코드가 변경되어야하기 때문이다. 즉, 기존 사용하던 Rest API를 계속해서 사용하게 해주기 위해 버전을 관리해주어야 한다. 언제 관리해야할까? 그러면 API의 버전을 언제 관리해야할까? 보통 api의 버전은 Major와 Minor로 구분하여 상황에 맞추어 버전을 관리하게 된다. Major Version 이전 버전과 호환의 문제가 깨지는 즉, 클라이언트측의 코드가 변경되어야하는 하는 상황으로 본다. API가 삭제되거나 API URL이 변경되는경우 API의 파라미터가 삭제되거나, 파라미터..

    @Controller, @RestController 어떠한 차이가??

    @Controller, @RestController 어떠한 차이가?? 스프링 MVC구조에서 컨트롤러는 지정하는 방법으로는 @Controller, @RestController 어노테이션을 이용할 수 있다. 일단 기본적으로 스프링 MVC 패턴에서 컨트롤러는 MVC의 기본 흐름 상에서 들어온 클라이언트의 요청을 처리하여 결과를 리턴해 주게 되는데, 여기서 @RestController는 Rest표시에서 알 수 있다시피 Restful 웹서비스에서 주로 사용되는 컨트롤러로, HTTP ResponseBody를 생성하는 방식에서 차이점을 보인다고 한다. @Controller이란? MVC구조에서 컨트롤러 클래스를 bean으로 등록하면 일반적으로 @Controller 어노테이션을 사용하는 것을 알 수있다. 해당 어노테이션..

    [Spring Boot]build 설정파일

    Spring boot에서 gradle로 빌드하기 우해서능 2가지 파일이 설정되어 있어야한다. build.gradle : 빌드에 관한 기능 정의 settings.gradle : 프로젝트 구성 설정(싱글프로젝트의 경우 생략 가능 > 멀티 프로젝트의 경우 설정) 프로젝트간의 의존성을 구성 build.gradle gradle을 사용하기 위해서는 우선 build.gradle 파일을 통해 빌드에 대한 처리를 작성해야한다. build.gradle 내용 및 플러그인 /* * This build file was generated by the Gradle 'init' task. * * This generated file contains a sample Java project to get you started. * For ..

    [Spring]스프링 프로젝트 빌드 및 실행하기

    스프링 프로젝트를 빌드하고 실행하기 위해서는 terminal에서 명령어를 이용하는 방법과 intellij의 실행환경을 이용할 수 있다. terminal 에서 java 명령어를 이용하는 방법 Maven 빌드의 경우 mvnw package Gradle 빌드의 경우 gradlew build java -jar build\libs\{jar-name}.jar 2. intellij에서의 실행환경을 이용하는 방법 > SpringApplication을 이용한 run SpringApplication.run을 통해 어플리케이션을 실행 할 수 있다.

    [Spring Boot]ContentNegotiatingViewResolver

    ContentNegotiatingViewResolver? ContentNegotiatingViewResolver은 무엇일까? 하는 역할은 무엇일까? 우선 ContentNegotiatingViewResolver은 View를 찾기 위해 요청 URL의 확장자와 AcceptHeader를 사용하는 ViewResolver이다. 여기서 ViewResolver은 사용자에게 렌더링한 결과를 보여주기 위한 클래스로 그 중 ContentNegotiatingViewResolver은 요청되는 콘텐츠 형식에 기반을 두어 선택한 하나 이상의 다른 뷰 리졸버에게 위임하는 역할을 한다. Property ContentNegotiatingViewResolver으로 등록된 bean의 속성을 살펴보면 다음과 같은 내용을 알 수 있다. med..

    [Spring Boot]Spring MVC Framework

    Spring MVC Framework Spring MVC Framework는 MVC 패턴을 따르는 Framework입니다. 여기서 Spring은 자신만의 독자적인 Class를 통해 처리를 한다. 여기서 MVC패턴은 여러 디자인 패턴(Design Pattern)중 하나로 간략하게 다음과 같은 세가지 요소로 나누어 관리한다. 1. Model : 어플리케이션의 정보나 데이터(DB) 등의 내용을 다룬다. 2. View : 사용자에게 보여지는 화면, UI를 말하며 Model로부터 정보를 받아 표시하게 된다. 3. Controller : 데이터와 비즈니스 롷직사이의 상호동작을 관리하는 영역으로, 모델과 뷰를 통제한다. MVC패턴은 크게 MVC-1과 MVC-2로 나눌수 있은데 여기서 스프링 MVC는 MVC-2를 채택..