Back-end 68

Springboot Swagger- SpringSecurity 연결 설정

1. SpringSecurity- Swagger2 설정 연결 https://it-recording.tistory.com/64 [Spring] Spring Security + Swagger2 연결 Spring을 사용한 프로젝트를 할 때 API를 하나하나 적는 것은 많은 시간과 노력을 요구한다. 이에 자동화 된 API 툴을 제공하는데 그 중 Swagger를 연결하는 방법을 알아보겠다. (+마주했던 오류와 함 it-recording.tistory.com 2. SpringBoot - Swagger 설정 https://velog.io/@borab/Spring-boot-Swagger-%EC%84%A4%EC%A0%95-gradle Spring boot Swagger 설정 (gradle) 🐏 ❗ 스프링 부트 swagg..

변경된 WebSecurityConfigurerAdapter

1.설정 방법 https://velog.io/@pjh612/Deprecated%EB%90%9C-WebSecurityConfigurerAdapter-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%8C%80%EC%B2%98%ED%95%98%EC%A7%80 Deprecated된 WebSecurityConfigurerAdapter, 어떻게 대처하지? 스프링 버전이 업데이트 됨에 따라 WebSecurityConfigurerAdapter와 그 외 몇 가지들이 Deprecated 됐습니다.스프링에서는 다른 방식으로 시큐리티 설정을 권장하고 있는 듯 해보였는데요. 방식이 바뀐 탓 velog.io 2. 공식 문서 https://spring.io/blog/2022/02/21/spring-security-with..

Java heap, stack

# ThreadLocal 과 관련하여 : 객체는 Heap 또는 Stack 메모리 영역에 배치시킬 수 있습니다. Heap 영역은 일반적으로 모든 thread에서 접근 할 수 있으며 stack은 thread 하나당 만들어 지는 메모리 영역으로 thread간 접근이 불가능한 것으로 알려져 있습니다. 1. stack 1) Heap 영역에 생성된 Object 타입의 데이터의 참조값이 할당된다. 2) 원시타입(primitive types)-byte, short, int, long, double, float, boolean, char 타입)의 데이터가 값과 함께 할당된다. (원시 타입의 데이터들에 대해서는 참조값을 저장하는 게 아니라 실제값을 stack에 저장하게 된다.) 3) 지역 변수들은 scope에 따른 vis..

스프링 배치

1. 스프링 배치 Spring Batch는 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처리에 필수적인 기능을 제공한다. 또한 최적화 및 파티셔닝 기술을 통해 대용량 및 고성능 배치 작업을 가능하게 하는 고급 기술 서비스 및 기능을 제공한다. Spring Batch에서 배치가 실패하여 작업 재시작을 하게 된다면 처음부터가 아닌 실패한 지점부터 실행을 하게 된다. https://khj93.tistory.com/entry/Spring-Batch%EB%9E%80-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B3%A0-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 Spring Batch란? 이해하고 사용하기(예제소스 포함) ..

System.out과 logging

1. System.out과 logging https://blog.silentsoft.org/archives/13 Logging을 System.out으로 하면 안되는 이유 운영 시스템에서 System.out으로 로그를 남기는 경우는 없다고 봐도 무방하다. 또, ‘Logging은 절대 System.out으로 하면 안 된다’고 생각하는 사람이 많다. 그런데 아이러니하게도 그 이유를 모르는 blog.silentsoft.org 요약 에러/장애 발생 시 추적할 수 있는 최소한의 정보가 없다. 최소한의 정보는 고사하고, 로그 내용을 가져오기 어렵다. 누가 봐도 System.out.println은 콘솔에 로그를 출력하는 API이다. 성능저하 원인이 될 수 있다. -> 참고 (https://junghyungil.tist..

비동기 처리를 위한 ThreadPoolTaskExcutor

1. ThreadPoolTaskExcutor 스프링에서 제공해주는 클래스로 org.springframework.scheduling.concurrent패키지에 속하며 기본생성자 하나만 존재한다. 이는 쓰레드풀을 이용하여 멀티쓰레드 구현을 쉽게 해주는 클래스이다. 2. 관련 메서드 1) setCorePoolSize : corePoolSize값을 설정한다. 이는 동시에 실행시킬 쓰레드의 개수를 의미하며 default값은 1이다. 2) setAllowCoreThreadTimeOut : 코어 쓰레드의 타임아웃을 허용할 것인지에 대한 세터 메서드로 true로 설정할 경우 코어 쓰레드는 10으로 설정했어도 일정시간(keepAliveSeconds)이 지나면 코어 쓰레드 개수가 줄어든다. default값은 false이다..

스트림(stream)

1. 스트림이 생기게 된 배경 통상적으로 많은 수의 데이터를 다룰 때 컬렉션이나 배열에 데이터를 담고 for문과 Iterator를 이용해서 코드를 작성해왔다. 그러나 이러한 방식으로 코드를 작성한다면 너무 길고 알아보기 어려우며 재사용성도 떨어진다. 또한, 데이터 소스마다 다른 방식으로 다루어야 한다. 예를 들어 List를 정렬할 때는 Collections.sort(); 배열을 정렬할 때는 Arrays.sort(); 이러한 문제점을 해결하기 위해 스트림이 만들어졌다. 스트림은 데이터 소스를 추상화 함으로써 데이터 소스가 무엇이든 간에(List, Set, Map, 배열, 파일에 저장된 데이터 등) 같은 방식으로 다룰 수 있게 되었으며 이로 인해 코드의 재사용성이 높아졌다. 2. 스트림 생성 //주문 상품 ..