본문 바로가기

분류 전체보기176

SQL(2) DML(데이터 조작 언어)실행 즉시 방영되는 영구적 변경을 위한 명령어의 집합이 아니며 복구가 가능(설정에 따라 복구가 불가능 할 수 있다.)1. INSERT 문 — 데이터 삽입테이블에 새로운 데이터를 추가기본 문법INSERT INTO 테이블명 (컬럼1, 컬럼2, ...)VALUES (값1, 값2, ...);예시INSERT INTO Student (id, name, age)VALUES (1, '철수', 20);모든 컬럼 순서대로 값을 넣을 경우 컬럼 생략 가능:INSERT INTO Student VALUES (2, '영희', 22);INSERT INTO ... VALUES ...는 우리가 직접 값을 써서 삽입하는 방식이고,INSERT INTO ... SELECT ... 문은 다른 테이블의 검색결과를 기반.. 2025. 3. 28.
SQL(1) 1. SQL 명령어의 종류DDLData Definition Language데이터베이스 구조를 정의하거나 변경하는 언어DMLData Manipulation Language데이터를 조작하는 언어 (조회, 삽입, 수정, 삭제)DCLData Control Language데이터베이스에 대한 권한 제어와 보안 관리2. DDL (데이터 정의 언어)데이터베이스 객체를 생성/변경/삭제할 때 사용주요 객체스키마(Schema) = 데이터베이스(DB)테이블(Table) = 실제 데이터 저장 구조뷰(View) = SELECT 문 결과를 가상의 테이블처럼 사용인덱스(Index) = 검색 속도 향상시퀀스(Sequence) = 자동 번호 생성주요 명령어CREATE객체 생성CREATE TABLE, CREATE DATABASEALTER.. 2025. 3. 28.
Redis, kafka RedisRedis는 기본적으로 인메모리 키-값 저장소야. 데이터가 메모리에 있어서 정말 빠르고, 보통은 캐시로 많이 사용.그리고 pub/sub 구조를 지원해서 메시지 전달에도 사용.또한 Redis Streams 같은 기능을 통해 간단한 메시지 큐 시스템으로도 사용.특징 요약하자면:빠르다 (메모리 기반이라서)구조가 단순하고 사용하기 쉽다캐시, 세션 저장, 일시적인 메시지 처리에 적합메시지 보관 기간이 짧고, 디스크 내구성이 약해 (기본은 휘발성)언제?서버 간 간단한 pub/sub 통신이 필요할 때로그인 세션 저장이나 캐시 용도로요청을 큐에 잠깐 쌓았다가 백그라운드 처리할 때 (예: 이메일 발송 대기열)KafkaKafka는 일종의 분산 메시징 시스템 또는 이벤트 스트리밍 플랫폼으로 보면 된다.기본적으로 모.. 2025. 3. 27.
HTTP 상태 코드 종류 예외처리 상태코드org.springframework.http.HttpStatusSpring에서 제공하는 HTTP 상태 코드(enum) 클래스[HttpStatus 공식 JavaDoc 보기 (Spring)]https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/http/HttpStatus.html주요 HTTP 상태 코드 종류200HttpStatus.OK성공201CREATED리소스 생성 완료 (POST 응답 등)204NO_CONTENT응답 본문 없음 (삭제 등)400BAD_REQUEST클라이언트 요청 오류 (잘못된 파라미터 등)401UNAUTHORIZED인증 실패 (로그인 안 됨 등)403FORBIDDEN권한 없음.. 2025. 3. 27.
서버 보안 서버 보안 개요기본 구성클라이언트: 서버에 요청을 보내는 컴퓨터서버: 서비스를 제공하는 컴퓨터통신채널: 인터넷을 통해 데이터 교환구성도클라이언트(App → OS → 트래픽 제어, 암호화) ⇅ 인터넷 ⇅서버(App → OS → 트래픽 제어, 암호화)서버 침입 과정 (4단계)1️⃣ 정보 수집: 공격 대상 결정2️⃣ 권한 획득: 일반 사용자 → 관리자 권한 상승3️⃣ 공격 수행: 로그 삭제, 백도어 설치4️⃣ 재침입: 다른 시스템 공격, 정보 유출 등서버 공격 유형1. 계정 크랙 공격방식 설명전수 공격 (Brute Force)가능한 모든 패스워드를 시도사전 공격 (Dictionary)사전 파일에 있는 단어들로 시도 (빠름)• 사전 파일: 서버를 이용하는 사람의 다양한 정보로 생성2. 네트워.. 2025. 3. 26.
사이버 공격 사이버 공격 개요정의: 인터넷을 통해 다른 컴퓨터에 접속하여 시스템을 손상시키거나 무단 침입하는 행위기본 방식: 시스템 설정 오류, 보안 취약점 등을 악용하여 관리자 권한을 탈취 기술 발전에 따른 공격 다양화네트워크 패킷 조작웹사이트 취약점 악용무선 환경에서의 스마트폰 공격 다양한 사이버 공격악성코드(malicious Code, Malware)악의적인 용도로 사용될 수 있는 코드가 심어진 유해 프로그램의 총칭악성코드 종류: 바이러스, 웜, 트로이 목마, 백도어, 스파이웨어, 랜섬웨어 등무분별한 인터넷 사용으로 인한 감염이 많음예방 방법: 의심스러운 웹사이트 방문 자제, 수상한 이메일 확인하지 않기, 문자나 메신저로 오는 인터넷 주소 함부로 접속하지 않기, 이메일 문자 메신저로 받은 첨부 파일 함부로 열지.. 2025. 3. 25.
JWT & CRSF 전체 JWT 인증 흐름 (Spring Security 기준)[클라이언트] ---> [Spring Security] ---> [JwtAuthenticationFilter] ---> [JwtTokenProvider] ↑ ↓[Authorization: Bearer 토큰] 토큰 검증 및 유저 정보 추출 ↓ [SecurityContextHolder에 인증 등록]사용자가 로그인하여 JWT 토큰을 발급받음이후 요청 시 Authori.. 2025. 3. 25.
Jest와 React Test Library(RTL) Jest는 테스트 실행기 + 검증 도구React Testing Library (RTL)는 React 컴포넌트 렌더링 & DOM 쿼리 도구 Jest는 언제 사용하는가?비즈니스 로직 / 유틸 함수 / API / 상태 변경을 테스트할 때// utils/calc.tsexport const sum = (a: number, b: number) => a + b;test('sum 함수 테스트', () => { expect(sum(2, 3)).toBe(5); // ✅ Jest만으로 충분});사용하는 기능test(), describe(), expect()jest.fn(), mockReturnValue()beforeEach(), afterAll()resolves, rejects (비동기 처리)컴포넌트가 아닌 일반 함수/비.. 2025. 3. 25.
서버 없이 이미지에서 텍스트를 추출 tesseract js Tesseract.jsTesseract.js는 브라우저에서 돌아가는 순수 JavaScript OCR(광학 문자 인식) 라이브러리입니다.이미지에서 텍스트를 추출할 수 있으며, 별도의 서버 없이 클라이언트만으로 동작해요.특징작동 환경브라우저 또는 Node.js 모두 지원언어 지원영어, 한글 포함 다국어 (학습 파일 필요)동작 방식이미지 → WebAssembly → 텍스트 추출의존성Web Worker + WASM 파일설치 방식npm install tesseract.js 또는 CDN/로컬 로드 가능오픈소스무료, MIT 라이선스기본 사용법 (v6 기준)import { createWorker } from 'tesseract.js';const worker = await createWorker();await worke.. 2025. 3. 24.