BE32 [Spring Boot] Spring Boot에서 Interceptor 구현하기 Spring Boot 애플리케이션에서 Interceptor는 HTTP요청을 가로채고 처리할 수 있는 강력한 도구입니다.이를 통해 인증, 권한 부여, 로깅, 공통 기능 등을 중앙 집중화하여 관리할 수 있습니다. 인터셉터를 사용하여 로그인 확인 및 관리자 권한 확인을 구현하는 방법을 예제코드와 함께 정리하겠습니다 ! Interceptor란?Spring의 Interceptor는 서블릿 필터와 유사하지만, 더 세밀하게 동작합니다.HTTP 요청이 컨트롤러에 도달하기 전에 이를 가로채고, 응답이 클라이언트에 전송되기 전에 조작할 수 있습니다. Interceptor는 HandlerInterceptor 인터페이스를 구현하여 정의합니다.이 인터페이스에는 다음과 같은 세 가지 주요 메서드가 있습니다.preHandle().. BE/SpringBoot 2024. 5. 21. [JAVA] HttpSession 사용하는 방법. (+ 세션과 쿠키 차이점) Java에서 세션(session) 사용하는 방법. ▶ 세션(session)이란?세션은 클라이언트와 서버 간의 연결을 유지하는 데 사용되는 메커니즘 중 하나입니다.클라이언트가 서버에 연결하면 서버는 해당 클라이언트에 대한 고유한 세션을 생성하고 이를 유지합니다.이를 통해 클라이언트의 상태를 유지하고 여러 요청 간에 정보를 공유할 수 있습니다. 추가적으로, 처음에 접하다 보면 세션과 쿠키의 차이를 많이들 혼동합니다.세션(Session)과 쿠키(Cookie)의 차이를 정리해보고 넘어갑시다 ! 세션과 쿠키는 웹 애플리케이션에서 사용자의 상태를 유지하는 데 사용되는 두 가지 주요 메커니즘입니다. ▷ 쿠키 (Cookie)- 클라이언트의 로컬 브라우저에 저장.- 클라이언트에서 서버로 요청할 때마다 쿠키는 자동으로.. BE/JAVA 2024. 5. 9. [Spring] @Transactional 어노테이션 역할 Transactional 어노테이션의 역할Transactional 어노테이션은 데이터베이스 트랜잭션을 관리하는 데 사용됩니다. 트랜잭션은 여러 개의 데이터베이스 작업을 원자적인 단위로 묶어주는 기능을 제공하여 데이터 일관성과 안전성을 보장합니다. Transactional 어노테이션을 사용하면 트랜잭션의 시작, 종료, 롤백 등을 자동으로 처리할 수 있습니다. 트랜잭션 경계 설정: Transactional 어노테이션이 적용된 메서드나 클래스의 실행을 트랜잭션으로 감싸기 때문에 해당 메서드나 클래스의 실행이 트랜잭션의 시작과 종료를 정의합니다. 이는 데이터베이스 작업이 완전하게 실행되거나 아예 실행되지 않도록 보장합니다. 롤백 처리: 메서드 실행 중 예외가 발생하면 자동으로 롤백되어 이전 상태로 복원됩니다.. BE/Spring 2024. 4. 26. [JAVA] apache POI 사용한 엑셀 다운로드 기능 apache POI를 사용하여 엑셀 다운로드 기능을 구현해 보기! [ FRONT ] vue.jsjava에서 엑셀 파일을 생성하고 front에서는 response 을 받아서Blob을 가지고 엑셀 파일을 다운로드합니다. 이때, 다운로드하는 방법은 브라우저에 따라 다를 수 있으니 주의. downloadExcel() { fetch('/download-excel', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(this.AnnualList), }) .then(response => { .. BE/JAVA 2024. 4. 24. [Python] 퀵 정렬을 위한 partition 함수 구현하기 [ 퀵 정렬을 위한 파티션 함수 구현 ] 퀵 정렬(Quick Sort)은 분할 정복(Divide and Conquer) 알고리즘의 하나로, 리스트를 빠르게 정렬하는 데 사용됩니다. 이를 위해 파티션 함수는 리스트를 기준값(pivot)을 중심으로 두 개의 부분 리스트로 분할합니다. # 두 요소의 위치를 바꿔주는 helper function def swap_elements(my_list, index1, index2): temp = my_list[index1] my_list[index1] = my_list[index2] my_list[index2] = temp # 퀵 정렬에서 사용되는 partition 함수 def partition(my_list, start, end): # 리스트 값 확인과 기준점 이하 값들.. BE/Python 2024. 2. 9. [Python] 번호판 인식 데이터셋 생산하기 (가상 차량 번호판 생성) 번호판 인식이 필요한 프로젝트를 진행 중 모델을 훈련하기 위해서는 대량의 번호판 데이터가 필요했다. 그러나 자동차 번호판은 개인정보에 해당하고, 현실적으로 실제 데이터를 구하는 것이 어려웠다. 그래서 가상의 차량 번호판 이미지를 활용해야 했다. 가상의 데이터를 사용함으로써 개인정보 보호 문제를 회피하고 효과적으로 모델을 훈련해 보자!! 1. 사용 라이브러리 설치 및 글꼴, 이미지 다운로드 ▽ 사용 라이브러리 # tqdm pip install tqdm # 진행상황 시각화 용도 # PIL pip install pillow # 번호판 이미지 처리 용도 #argparse pip install argparse # 이미지 경로,갯수,설정 용도 ▽ 사용 글꼴, 이미지(자동차 번호판 테두리 이미지) 한길체 폰트 Not.. BE/Python 2024. 1. 29. [Python] 데이터 시각화 - Seaborn 통계 데이터 시각화 데이터 시각화를 수행할 때, 어떤 그래프를 선택해야 정보가 가장 잘 전달될지 고려해야 한다. 특히 데이터가 무한한 경우, 특정 값에 대한 정확한 확률 계산은 의미가 없을 수 있다. 이런 상황에서는 특정 범위에 대한 계산이 더 유의미할 것이다. 이때, 확률을 효과적으로 표현해 주는 라이브러리로 seaborn이 유용하다. seaborn를 사용하여 통계 데이터 시각화를 해보자 !! ◈ Seaborn Statistical Data Visualization 통계를 기반한 데이터 시각화 : matplotlib를 기반으로 하는 Python 데이터 시각화 라이브러리. import pandas as pd import seaborn as sns # seaborn은 sns로 칭한다. ▼ seaborn 사이트 seaborn은.. BE/Python 2023. 11. 21. [Python] 데이터 시각화 - Matplotlib 그래프 그리기 [ Matplotlib 사용하여 그래프 그리기 ] 머신러닝에서 모델을 구현하는 것도 중요하지만, 학습할 데이터를 선별하고 만들어진 모델을 검증하기 위해서는 데이터를 이해하는 것이 필수적이고 이를 위해서는 데이터를 시각화해서 보는 것이 매우 중요하다고 한다. Python에서 가장 널리 사용되는 데이터 시각화 라이브러리 Matplotlib로 데이터 시각화를 해보았다 ! ◈ Matplotlib ? : Python 프로그래밍 언어 및 수학적 확장 Numpy 라이브러리를 활용한 플로팅 라이브러리 : 그래프, 차트, 플롯 등 다양한 시각화 요소를 생성하고 데이터를 시각적으로 나타낼 수 있다. %matplotlib inline # Jupyter Notebook 사용시 추가해줘야 됨. import matplotlib .. BE/Python 2023. 11. 17. [Python] pandas로 데이터 분석하기 - DataFrame 생성. ◈ Pandas ? : 구조화된 데이터나 표 형식의 데이터를 빠르고 쉽게 다룰 수 있도록 하는 라이브러리 : Series - 1차원 데이터, DataFrame - 2차원 데이터 DataFrame = Series + Series Series : List와 다르게 index를 직접 지정할 수 있다. 설정을 안 해주면 0, 1, 2...로 설정됨. DataFrame : 인덱스와 컬럼을 기준으로 표 형태처럼 데이터를 저장. ▼ DataFrame 생성해 보기! import pandas as pd student_list = [['철수', 100, 90, 85], ['영희', 70, 80, 85], ['진구', 95, 75, 80]] df = pd.DataFrame(student_list) df columns와 in.. BE/Python 2023. 11. 17. [Python] Numpy 유용한 함수 (통계 함수) 2023.11.14 - [Programing/Python] - [Python] Numpy란? numpy array 생성하기 [Python] Numpy란? numpy array 생성하기 ▷ Numpy (Numerical Python) 란? import numpy as np : 다차원 배열(행렬)을 쉽게 처리하고 효율적으로 사용할 수 있도록 지원하는 파이썬의 라이브러리. : 수치해석, 통계 관련 기능을 구현할 때 가장 기본이 kongda.tistory.com Numpy를 좀 더 유용하게 사용하기 위한 함수들을 정리. ▼ Numpy로 행렬을 다루기 위한 차원의 확장과 축소의 함수를 알아보자 ! ▷ 차원 확장 : 배열의 차원을 확장. expand_dims(arr, axis) arr : 차원을 확장할 배열 axi.. BE/Python 2023. 11. 16. [Python] Numpy란? numpy array 생성하기 ▷ Numpy (Numerical Python) 란? import numpy as np : 다차원 배열(행렬)을 쉽게 처리하고 효율적으로 사용할 수 있도록 지원하는 파이썬의 라이브러리. : 수치해석, 통계 관련 기능을 구현할 때 가장 기본이 되는 모듈. : Ndarray 타입의 배열을 만들 수 있음. ( ※ Ndarray 타입 : N-dimension array의 약자. 다차원 배열을 의미.) [ List 와 Ndarray 차이점 ] 1. 선언 형태의 차이 - List : 원소로 여러 가지 자료형을 허용. 내부 배열의 원소 개수가 달라도 된다. - Ndarray : 원소로 한 가지 자료형만 허용. 내부 배열의 원소 개수가 같아야 한다. # a List는 여러 가지 자료형을 허용, b Ndarray는 한 .. BE/Python 2023. 11. 14. [Python] 모듈(module) 사용하기 ▷ 모듈(module)이란? : 한 번 구현한 파이썬 코드를 다른 파이썬 파일의 코드에서 공유해서 사용할 수 있도록 하기 위해 모듈을 활용. 여러 함수를 가지고 있는 집합체로 여러 기능들이 뭉쳐진 하나의 .py파일이다. Python 기본 내장되어 있는 표준 모듈과 직접 만든 외부 모듈이 있고, 다른 파일에서 import 해서 사용한다. ▼ 모듈 불러오는 방법 ▼ import 모듈이름 - import 파일명에 .py 붙이지 않기. - import 하려는 파일은 같은 폴더에 있어야 된다 ! from 모듈이름 import 함수이름 from calc_module import add # 모듈에서 여러 개의 함수를 가져올 때 from calc_module import add, sub # 모듈에서 함수 전체를 가져올.. BE/Python 2023. 11. 13. 이전 1 2 3 다음 728x90