본문 바로가기

Java13

영속성(Persistence)이란 무엇일까? 스프링부트에서 데이터 관리를 위해 공부하면 영속성이란 단어를 들을 수 있다.과연 영속성이란 무엇이며 어떤 역할을 하는지 알아봤다. 우선 자바에서 영속성이란 "프로그램이 종료되더라도 데이터가 유지되는 특성"을 의미한다.일반적으로 데이터베이스나 파일 시스템에 데이터를 저장하고, 필요할 때 이를 다시 불러오는 방식으로 구현한다 . 영속성과 관련된 개념(1) 영속 계층 (Persistence Layer)애플리케이션의 데이터 저장과 관리를 담당하는 계층데이터베이스, 파일, 클라우드 스토리지 등에 데이터를 저장(2) 영속 객체 (Persistent Object)데이터베이스에 저장되거나 저장될 수 있는 객체일반적으로 Entity 클래스 또는 VO(Value Object) 형태(3) 영속 컨텍스트 (Persistenc.. 2025. 2. 3.
Security Filter Chain Spring Security의 Filter는 HTTP 요청을 가로채서인증(Authentication)과 인가(Authorization)를 처리하는 핵심적인 역할을 한다.스프링 시큐리티는 자체적인 필터 체인을 가지고 있으며,이를 통해 요청이 컨트롤러(Controller)로 전달되기 전에 보안 검사를 수행한다.스프링 시큐리티의 필터 체인(Security Filter Chain)스프링 시큐리티는 여러 개의 서블릿 필터(Servlet Filter)를 체인 형태로 구성하여 요청을 보호한다.핵심적인 필터는 SecurityFilterChain 인터페이스를 구현하는 여러 개의 필터로 이루어져 있다. 📌 스프링 시큐리티의 전체 필터 목록WebAsyncManagerIntegrationFilter비동기 요청에서도 Secu.. 2025. 1. 31.
자바의 Filter에 대해서 자바의 Filter란?자바에서 Filter는 웹 애플리케이션에서 요청과 응답을 처리하는데 사용되는 객체이다. 주요 특징:요청 및 응답 필터링: Filter는 서블릿이 요청을 처리하기 전에 요청을 가로채서 필터링하거나, 서블릿이 응답을 처리한 후에 응답을 가로채서 수정할 수 있다.체이닝: 여러 개의 필터를 정의하고, 이를 체인처럼 연결하여 순차적으로 처리할 수 있다. 각 필터는 다른 필터가 처리한 결과를 받아들일 수 있다.Web.xml 또는 어노테이션을 통한 설정: 필터는 web.xml에서 정의하거나, 자바에서 어노테이션을 사용해 설정할 수 있다.주요 메서드:init(FilterConfig filterConfig):필터가 초기화될 때 호출된다. 필터 설정을 읽고 초기화 작업을 수행한다doFilter(Ser.. 2025. 1. 31.
인증과 인가 인증 (Authentication)정의인증은 사용자의 신원을 시스템에 증명하는 과정인증의 목표는 "이 사람이 자신이 주장하는 신분이 맞는가?"를 확인하는 것프로세스사용자 입력:사용자는 로그인 화면에서 (ID와 비밀번호 / 생체 인식 / 인증 토큰)을 제출시스템 확인:시스템은 데이터베이스나 인증 서버에 저장된 정보와 사용자가 제출한 정보를 비교결과:사용자를 확인하면 "인증 성공" 상태가 되고, 그렇지 않으면 "인증 실패" 메시지 반환인증 방법지식 기반 인증 (사용자가 아는 것):비밀번호, PIN 코드, 보안 질문 등소유 기반 인증 (사용자가 소유한 것):OTP(일회용 비밀번호) 기기, 보안 토큰, 이메일 인증 링크 등본질 기반 인증 (사용자 고유의 특징):생체 정보(지문, 홍채, 얼굴 인식 등)나 행동 패.. 2025. 1. 30.
효율적인 리팩토링을 위한 전략 1. 리팩토링의 목표를 명확히 정의a) 주요 목표 설정가독성 향상: 코드를 더 쉽게 이해하고 유지보수할 수 있게 개선.성능 최적화: 처리 속도, 메모리 사용량, API 응답 시간을 개선.테스트 가능성 개선: 코드의 단위 테스트 작성 및 통합 테스트 용이성 증가.재사용성 향상: 중복 코드를 제거하고 공통 로직을 추출.기술 부채 상환: 초기 개발 시 급하게 구현한 부분이나 비효율적인 코드를 수정.2. 리팩토링을 위한 사전 준비a) 코드의 상태를 평가코드 리뷰:코드가 복잡하거나 반복되는 패턴을 식별.비효율적인 SQL 쿼리, 불필요한 메서드 호출, 중복된 로직 등 확인.정적 분석 도구 활용:SonarQube, Checkstyle, PMD 등을 사용해 코드 품질을 분석.b) 충분한 테스트 코드 작성테스트 코드 확.. 2025. 1. 24.
자바 컬렉션 프레임워크 종류와 사용 사례 자바에는 다양한 컬렉션 프레임워크가 존재한다. 프로젝트를 진행하고 관련 내용을 공부하다 보면 컬렉션이 굉장히 많이 나오지만 무슨 기준으로 해당 컬렉션을 사용했는지 감이 안와서 관련 내용을 찾아봤다. 컬렉션 프레임워크의 주요 인터페이스 및 구현체컬렉션 프레임워크는 크게 List, Set, Queue, Deque, Map의 다섯 가지 주요 인터페이스로 나눌 수 있다. List (순서 유지, 중복 허용)요소가 순서를 가지고 있으며, 중복을 허용합니다.사용 상황: 순서가 중요한 데이터, 중복된 데이터 허용.주요 구현체ArrayList배열 기반, 랜덤 접근이 빠름, 삽입/삭제는 느림데이터가 많고 읽기 위주인 경우LinkedList노드 기반, 삽입/삭제가 빠름, 랜덤 접근이 느림데이터 삽입/삭제가 빈번한 경우Vec.. 2025. 1. 23.