전체 글 324

[Spring Security] 8-1. OAuth2 Resource Server

1. OAuth2 Resource Server보호된 자원을 관리하는 서버✅ 보호된 자원의 요청에 대한 인증 과정을 담당함 Protect Access with an OAuth2 Access Token구분설명검증JWT자체 서명 토큰public key 사용Opaque Token토큰 내용을 알 수 없는 토큰인정 서버의 introspection 엔드포인트에 확인 요청 설정) JWT더보기더보기spring: security: oauth2: resourceserver: jwt: issuer-uri: https://my-auth-server.com@Configuration@EnableWebSecuritypublic class SecurityConfig { @Bean ..

[gRPC] Status Codes

1. Status CodegRPC 호출은 마지막에 status 하나를 클라이언트에게 돌려줌보통 code, description으로 구성됨 2. 자주 쓰이는 코드코드의미생성주체재시도 관점예시OK성공서버/라이브러리재시도 불필요정상 저장CANCELLED호출 취소주로 호출자/서버 컨텍스트보통 자동 재시도 아님클라이언트 취소, 서버에서 cancel 감지DEADLINE_EXCEEDED정해진 시간 안에 응답 못 받음라이브러리에서 자주 생성상황 따라 가능3.5초 deadline 초과INVALID_ARGUMENT입력값 자체가 잘못됨애플리케이션이 직접같은 요청 재시도 의미 없음빈 content, 잘못된 roomId 형식NOT_FOUND대상 없음애플리케이션이 직접상태 바뀌기 전엔 의미 없음채팅방 없음ALREADY_EXIST..

Network 2026.04.17

[gRPC] Deadlines

1. Deadline클라이언트가 "이 시각 이후에는 더 이상 응답을 기다리지 않겠다" 라고 정하는 시간✅클라이언트는 이 시각이 넘으면 호출을 포기하고 실패로 간주함 필요성분산 시스템에서는 서버가 느려지거나 네트워크가 밀림으로 인한 지연이 발생할 수 있음⚠️ 만약 deadline이 없다면, 클라이언트가 계속 대기하게 되어 지연이 전체 시스템에 전파될 수 있음 2. ClientDEADLINE_EXCEEDED 상태deadline 초과 시, 클라이언트가 호출에 대해 받는 상태 3. ServerCANCELLED 상태서버에서 작업 중 deadline 시간을 초과할 경우, 계속 하던 작업을 자동 취소함✅ 단, 작업중인 것은 롤백하는 코드를 작성해줘야 함 4. PropagationgRPC 요청이 체이닝 형식일 경우, ..

Network 2026.04.17

[Tomcat 11] 1. Architecture

1. ArchitectureTomcat Server└── Service ├── Connector (HTTP / AJP) ← 요청을 받는 입구 └── Engine ← 요청 처리 총괄 ├── Host (www.site.com) │ ├── Context (/) │ ├── Context (/chat) │ └── Context (/admin) └── Host (api.site.com) ├── Context (/) └── Context (/v1)구성 요소정의역할Server톰캣의 전체 인스턴스이자 최상위 컨테이너여러 Service를 담고 전체 서버를..

Spring/Spring MVC 2026.04.16

[Tomcat 11] 2. Connector

1. HTTP 1.1 Connector특정 TCP 포트에서 연결을 받아서, 요청을 처리를 하게 하는 입구 (Engine으로 넘겨 처리함)non-async 요청 1개당 worker thread 1개를 처리 동안 점유함 2. AttributesCommon Attributes속성설명의미protocol어떤 HTTP connector 구현을 사용할지 정하는 설정현재 톰캣이 NIO 기반으로 동작하는지 이해하는 기준asyncTimeout비동기 요청의 기본 timeout 시간async 요청이 오래 걸릴 때 timeout 원인 해석 가능maxParameterCount요청에서 허용할 최대 파라미터 개수파라미터 폭주나 비정상 요청으로부터 서버 보호maxPartCountmultipart 요청에서 허용할 최대 part 개수파일..

Spring/Spring MVC 2026.04.15

[리눅스 마스터] 6-2. 쉘

1. 분기문코드) if더보기a=10if [ $a -gt 5 ]; then echo "a는 5보다 크다"firead aif [ $a -gt 0 ]; then echo "양수"elif [ $a -eq 0 ]; then echo "0"else echo "음수"fi 표) 조건 연산자더보기연산자의미-eq같다-ne같지 않다-gt크다-lt작다-ge크거나 같다-le작거나 같다 2. 산술 연산코드) $(( ))더보기echo $((a-b)) 3. 문자열head텍스트 파일이나 표준 입력의 앞부분을 출력하는 명령어 표) 주요 옵션더보기옵션의미-n출력할 줄 수 지정-c출력할 문자 수 지정 tail파일이나 입력 데이터의 마지막 부분을 출력 표) 주요 옵션더보기옵션의미-n마지막 n줄 출력-c마지막 n 문자(..

OS/Linux 2026.03.10

[MySQL][SQL] 8. TCL

1. TCL데이터베이스에서 트랜잭션의 실행 흐름을 제어하는 SQL 명령어 2. 명령어명령어설명특징START TRANSACTION트랜잭션 시작 COMMIT변경 사항을 확정트랜잭션 종료 (Rollback 불가)ROLLBACK변경 사항 취소- 트랜잭션에서 수행한 내용 모두 취소됨- 트랜잭션이 비정상 종료되면 자동 롤백됨SAVEPOINT트랜잭션 내 특정 지점 지정이 지점을 기준으로 부분 롤백이 가능함ROLLBACK TO SAVEPOINT지정된 지점으로 되돌림트랜잭션 실행 중 오류로 인해 재실행 시, 전체 롤백이 아닌 부분롤백으로 계산량을 줄일 수 있음 예시더보기START TRANSACTION;INSERT INTO tc_test VALUES('a');INSERT INTO tc_test VALUES('b');INS..

Database/Mysql 2026.03.08

[MySQL][SQL] 7. DCL

1. DCL사용자 계정과 권한을 제어하는 SQL 명령어mysql 시스템 스키마의 권한 테이블에 반영됨 2. 명령어Grant사용자 또는 역할에 데이터베이스 객체에 대해 권한을 부여하는 명령어✅ Grant Option: 자신이 가진 권한을 다른 사용자에게 다시 부여할 수 있음 표) Scope더보기Scope예시GlobalGRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';DatabaseGRANT SELECT ON sales_db.* TO 'user1'@'localhost';TableGRANT SELECT, INSERT ON sales_db.orders TO 'user1'@'localhost';ColumnGRANT SELECT(name, price) ON sales_db...

Database/Mysql 2026.03.08

[MySQL][SQL] 5. Set Operation

1. 합집합UNION두 개 이상의 Select 결과를 합쳐서 하나의 결과 집합으로 만드는 연산자 (중복 제거)✅ 위 → 아래 순서로 합침✅ 컬럼 개수, 컬럼 타입, 컬럼 순서가 맞아야 함 코드) Union더보기(SELECT column1, column2FROM table1)UNION(SELECT column1, column2FROM table2;) UNION ALL두 개 이상의 Select 결과를 합쳐서 하나의 결과 집합으로 만드는 연산자 (중복 포함)✅ 성능이 Union보다 빠름✅ 컬럼 개수, 컬럼 타입, 컬럼 순서가 맞아야 함 코드) Union All더보기(SELECT column1, column2FROM table1)UNION ALL(SELECT column1, column2FROM table2;)..

Database/Mysql 2026.03.07

[MySQL][SQL] 4. Subquery

1. SubquerySQL 문 안에 포함된 또 다른 SELECT 문✅ 결과 기반 처리 (다른 쿼리 결과를 조건으로 사용)✅ 중첩 가능 종류구분정의특징Nested SubqueryWHERE 절 내부에 작성되는 서브쿼리조건 필터링에 사용, 여러 행 반환 가능Scalar Subquery하나의 값만 반환하는 서브쿼리반환값 1행 1열, 여러 값 반환 시 오류FROM SubqueryFROM 절에 작성되는 서브쿼리가상 테이블 생성, alias 필수, JOIN 가능Correlated Subquery외부 쿼리의 값을 사용하는 서브쿼리외부값 참조, 행마다 실행, 성능이 JOIN보다 느릴 수 있음 코드) Nested Subquery더보기SELECT *FROM employeesWHERE department_id IN ( ..

Database/Mysql 2026.03.05