본문 바로가기

반응형

개발&코딩👨‍💻/Spring & java

Spring 6.0, Spring Boot 3.0 이전 버전과 달라지는 것들 스프링 5.x 버전과 Spring Boot 2.x 버전을 대부분의 현업 개발자 분들은 사용하고 있으실 텐데 최근 스프링 공식 홈페이지에서 Spring 6.0, Spring Boot 3.0 버전에 대한 설명이 올라왔다. 스프링은 늘 앞에 버전이 바뀌면 꽤 많은 것들이 변경되어왔다. 새로운 기능이 추가되거나 이전에 취약한 기능들이 스펙 아웃이 되었거나 이번엔 어떻게한 부분이 변경되는지 한번 같이 알아가 보자 Spring 5.x -> 6.0 달라지는 점 Java 17기반으로 변경 일부 Java EE API 지원 종료 XML이 점차적으로 Spring에서는 사라지게 될 것 RPC 지원 종료 새로운 AOT 엔진 도입 (밑에 설명 추가) @Inject 같은 JSR에서 지원하던 어노테이션들이 jakarta.annota.. 더보기
스프링 배치 Spring Batch 정리 및 간단한 기능 구현 Batch(배치) 어플리케이션이란? 배치(Batch)는 일괄처리란 뜻을 갖고 있습니다. 만약 매일 전 날의 데이터를 집계 해야한다고 가정해보겠습니다. 이 집계 과정을 어디서 수행하면 좋을까요? 웹 어플리케이션 밖에 모른다면 Tomcat + Spring MVC를 떠올리실것 같습니다. 하지만 이렇게 큰 데이터를 읽고, 가공하고, 저장한다면 해당 서버는 순식간에 CPU, I/O 등의 자원을 다 써버려서 다른 Request 처리를 못하게 됩니다. 그리고 이 집계 기능은 하루에 1번 수행됩니다. 이를 위해 API를 구성하는 것은 너무 낭비가 아닐까요? 여기서 추가로 데이터가 너무 많아서 처리중에 실패가 나면 어떻게 될까요? 5만번째에서 실패했다면, 5만 1번째부터 다시 실행할 수 있다면 얼마나 좋을까요? 또 이런.. 더보기
Spring Boot Swagger로 API 문서 자동화 설정 개요 REST API를 만들 때 문서화를 잘하는 것은 중요하다. 더우기 API를 변경할 때마다 레퍼런스 문서에 똑같이 명시해주어야한다. 이것을 수작업으로 반영하는 것은 매우 지루한 일이므로, 이것을 자동화하는 것은 필수다. Swagger를 통해 spirng api 문서 자동화를 할 수 있다. Swagger 설정 의존성 추가 compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' 자바 설정 package com.ioil.comethru.config; import org.springframe.. 더보기
스프링 시큐리티와 OAuth 2.0으로 로그인(구글,네이버) 기능 적용하기 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현 스프링 시큐리티(Spring Security)는 막강한 인증과 인과(혹인 권한 부여) 기능을 가진 프레임워크입니다. 사실상 스프링 기반의 애플리케이션에서는 보안을 위한 표준이라고 보면 됩니다. 필터 기반의 보안 기능을 구현하는 것보다 스프링 시큐리티를 통해 구현하는 것을 적극적으로 권하고 있습니다. 1. 스프링 시큐리티와 스프링 시큐리티 Oauth2 클라이언트 OAuth 하지만 오픈 아이디는 표준스펙이 존재하지 않았기 때문에 제공자마다 서로 다른 프로토콜을 제공하여 여러 오픈 아이디를 제공하기 위해선 각 규격별로 연동을 만들어야 했고, 일부 프로토콜에선 보안 이슈가 많이 나오기도 했습니다. 때문에 표준적인 방법을 고려하던 사람들은 OAuth 라는 .. 더보기
Spring Boot에서 JPA 셋팅 및 적용하기 Spring Boot에서 JPA 사용하기 1. JPA(Java Persistence API)란 JPA는 여러 ORM 전문가가 참여한 EJB 3.0 스펙 작업에서 기존 EJB ORM이던 Entity Bean을 JPA라고 바꾸고 JavaSE, JavaEE를 위한 영속성(persistence) 관리와 ORM을 위한 표준 기술이다. JPA는 ORM 표준 기술로 Hibernate, OpenJPA, EclipseLink, TopLink Essentials과 같은 구현체가 있고 이에 표준 인터페이스가 바로 JPA이다. ORM(Object Relational Mapping)이란 RDB 테이블을 객체지향적으로 사용하기 위한 기술이다. RDB 테이블은 객체지향적 특징(상속, 다형성, 레퍼런스, 오브젝트 등)이 없고 자바와.. 더보기
Spring Boot(스프링부트) 테스트 코드 junit 작성 해보기 Spring Boot 테스트 코드 작성 1. TTD란? "테스트 주도 개발: 테스트가 개발을 이끌어 나간다."라고 정의할 수 있다. 메소드 나 함수 같은 프로그램 모듈을 작성할 때 ‘작성 종료조건을 먼저 정해놓고 코딩을 시작 한다’는 의미로 받아들이면 편하다. RED : 항상 실패하는 테스트를 먼저 작성 GREEN : 테스트에 통과하는 프로덕션 코드 작성 REFACTOR : 테스트가 통과하면 프로덕션 코드를 리팩토링 위의 레드 그린 사이클 처럼 우선 테스트를 작성하고 그걸 통과하는 코드를 만들고 해당 과정을 반복하면서 제대로 동작하는지에 대한 피드백을 적극적으로 받는 것이다. TDD를 왜 사용하는가? 개발 단계 초기에 문제를 발견하게 해준다. 추후에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존.. 더보기
Gradle 그레들 Spring Boot 스프링 부트 프로젝트 만들기 Gradle Spring Boot 프로젝트 생성 1. 프로젝트 생성 기본적인 프로젝트 개발 환경은 다음과 같습니다. IntelliJ IDEA - Spring Boot - Java 11 - Gradle Gradle 프로젝트 선택 화면 Project Name, GroupId 작성 화면 2. Gradle 프로젝트를 Spring Boot 프로젝트로 변경 build.gradle 파일을 열어 봅니다. 초기 build.gradle 파일 plugins { id 'java' } group 'org.example' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { testCompile group: 'j.. 더보기

반응형