250317 TIL
·
TIL
JUnitJava에서 자동화된 단위 테스트(Unit Test)를 실행할 수 있도록 도와주는 프레임워크▪️간단한 어노테이션 기반 테스트 (@Test, @BeforeEach, @AfterEach 등)▪️TDD (테스트 주도 개발)에 적합▪️자동 테스트 실행 & 결과 검증 (assertEquals(), assertThrows())▪️독립적인 테스트 환경 제공 (@BeforeEach로 매번 새 객체 생성) ➕단위 테스트(Unit Test)란?▫️코드의 작은 단위(클래스, 메서드)를 독립적으로 테스트하는 것Calculator.add(3, 4) //**7을 반환하는지 확인** ➕통합 테스트(Integration Test)▫️각각의 단위(클래스, 모듈, 서비스)들이 조합되었을 때, 올바르게 동작하는지 검증하는 테스트..
250305 TIL
·
TIL
Spring Security 세션 관리 설정.sessionManagement(session -> session .maximumSessions(1) // 동시 접속 허용 개수 1개 .maxSessionsPreventsLogin(false) // 이전 로그인 유지 여부)▪️maximumSessions(N)▫️한 사용자가 동시에 로그인할 수 있는 세션 개수를 N개로 제한▫️같은 계정으로 여러 개의 브라우저에서 로그인하려고 하면, 이전 로그인 세션이 끊길 수 있음▪️maxSessionsPreventsLogin(true/false)▫️false → 나중에 로그인한 사람이 접속 가능, 먼저 로그인한 사람은 자동 로그아웃됨.▫️true → 먼저 로그인한 사람이 계속 유지, 나중에 로그인한 사람은 차단됨.C..
250304 TIL
·
TIL
@Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityEx4Config { private final CustomUserDetailsService customUserDetailService; // DB에서 사용자 정보를 조회하는 서비스 @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http // CSRF(Cross-Site Request Forgery) 보안 비활성화 (테스트 용도로 설정) .csrf(httpSecurity..
250228 TIL
·
TIL
Spring SecuritySpring Security는 요청을 가로채서 필터를 통과하게 한다 ▪️build.gradle 파일implementation 'org.springframework.boot:spring-boot-starter-security'Spring Security 의존성 추가의존성만 추가하고 아무 설정을 안 했을 때 아래처럼 설정한 것처럼 동작 한다@Configuration@EnableWebSecurity@Slf4jpublic class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { //기본 설정 -- 스프링 시큐리티만 그..
250227 TIL
·
TIL
서블릿 컨텍스트 & 쓰레드 풀클라이언트(브라우저, 앱 등)가 요청을 보내면, 서블릿 컨테이너(톰캣, Jetty 등)가 이를 처리.요청을 처리하려면 쓰레드가 필요한데, 요청이 올 때마다 새 쓰레드를 만들면 성능 부담(비용)이 크기 때문에, 미리 여러 개의 쓰레드를 만들어두고 재사용하는 방식(쓰레드 풀)을 사용.즉, “요청 하나당 쓰레드 하나"가 배정되지만, 이 쓰레드는 매번 새로 생성되지 않고 쓰레드 풀에서 가져와 사용.✅ 요청이 끝나면 쓰레드는 풀에 반환되고, 다음 요청이 다시 해당 쓰레드를 재사용할 수 있음.➕비동기 요청 처리를 지원기본 쓰레드 수Tomcat의 기본 쓰레드 관련 설정설정값 기본값 설명maxThreads200요청을 처리할 수 있는 최대 쓰레드 개수minSpareThreads10최초 생성되..
250226 TIL
·
TIL
double > Double 차이점둘 다 실수 값을 저장하지만,double ▶️ 기본형 (primitive type)▫️기본 값 : 0.0 ▫️Stack 메모리에 저장Double▶️ 참조형 (Wrapper class) 주소를 가지고 있는 객체임 ▫️ 기본 값 : null (객체이므로 Null 값 할당 가능) ▫️ Double 클래스의 메서드 사용 가능 (parseDouble, toString 등) ▫️ Heap 메모리에 저장 (객체이므로)// 기본형 doubledouble a = 10.5;// 객체형 DoubleDouble b = 20.5; // 자동 박싱 (Auto-boxing)double c = b; // 자동 언박싱 (Auto-unboxing)System.out.println(b.toStr..