250328 TIL
·
TIL
Kubernetes여러 대의 서버(노드)를 묶어서 하나처럼 다룰 수 있게 해주는 컨테이너 관리 시스템대규모의 서비스는 여러 서버가 필요한데 여러 개의 컨테이너를 관리 함Kubernetes의 구성요소Pod컨테이너를 감싸는 작은 박스. 실제로 앱이 동작하는 최소 단위Node컨테이너를 실행하는 물리 서버나 가상 머신Cluster여러 노드들이 모인 쿠버네티스의 전체 시스템Deployment"이 앱을 몇 개 돌려줘!" 라고 지시하는 설계도Service사용자들이 앱에 접속할 수 있게 연결해주는 문Volume데이터 저장공간 (컨테이너는 죽으면 날아가는데, 여기에 저장하면 살아남음)Namespace여러 팀이 섞여 있어도 각자 자기 공간처럼 나눠서 쓰게 해주는 구역 Kubernetes가 해주는 일앱 자동 배포Deploy..
250327 TIL
·
TIL
Spring Boot Actuator애플리케이션의 상태를 모니터링하고 관리할 수 있는 **운영 도구들(endpoints)**을 제공하는 라이브러리 build.gradle 의존성 추가dependencies {implementation 'org.springframework.boot:spring-boot-starter-actuator'}Actuator 관련 빈(Bean)들이 등록되고, 여러가지 모니터링/관리용 Endpoint가 생성기본 Endpoint/actuator/health애플리케이션의 헬스 상태 확인 (예: UP, DOWN, OUT_OF_SERVICE)/actuator/info버전, 작성자, 빌드 시점 등 커스텀 애플리케이션 정보 노출 가능/actuator/metrics힙 메모리 사용량, GC 횟수, ..
250326 TIL
·
TIL
Nginx빠르고 가벼운 웹 서버이자 리버스 프록시, 로드 밸런서, 정적 파일 서버 기능을 수행하는 웹서버역할 설명🌐 웹 서버정적 파일(html/css/js) 서비스🔁 리버스 프록시클라이언트 요청 → 백엔드 API로 전달외부 클라이언트 요청을 내부 서버로 중계, 서버 IP/포트를 감추고 보안을 강화🔃 로드 밸런서여러 서버(API)로 트래픽 분산🔐 HTTPS SSL 게이트웨이인증서 붙여서 보안 연결 처리🚪 게이트웨이Spring, Node 등 앱 앞단에 둬서 전체 진입점 역할실습[사용자 브라우저] | ▼ [NGINX 1] [NGINX 2] | \\ / | | ▼ ▼ | | [Spring Boot ..
250321 TIL
·
TIL
리눅스 환경에서 서버 실행 하기🐳Docker 사용docker-compose.ymlservices: amazonlinux-ssh: build: . container_name: amazonlinux-ssh ports: - "2222:22" - "9090:8080" volumes: - "./data:/workspace" restart: always포트 포워딩 설정ports: - "2222:22" - "9090:8080"컨테이너의 포트를 호스트(내 컴퓨터)와 연결해주는 설정호스트 포트 → 컨테이너 포트2222→22 (SSH)9090→8080 (웹 앱)[내 컴퓨터] | | 2222 9090 ↓ ↓[컨테..
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..