블록 암호 - AES
·
공부한 것
보호되어 있는 글입니다.
암호학 - 고전 암호 공격
·
공부한 것
보호되어 있는 글입니다.
암호학 - 고전 암호
·
공부한 것
보호되어 있는 글입니다.
CS 기초 - 1
·
공부한 것
컴퓨터 과학(Computer Science): 컴퓨터를 이용한 모든 작업과 그 기반 이론을 연구하는 학문.빅 앤디안: 가장 왼쪽이 있는(큰) 바이트부터 메모리의 낮은 주소에 저장.리틀 앤디안: 가장 오른쪽에 있는(작은) 바이트부터 매모리의 낮은 주소에 저장.
[DB] 데이터베이스란?
·
공부한 것
데이터베이스를 사용하는 이유?데이터를 왜 저장해야할까프로그램이 실행될 때 램에 데이터를 저장하지만 휘발성임사용자의 행동, 설정, 기록, 로그 등의 데이터를 계속 남아있어야함그래서 데이터를 영구적으로 저장하고 관리할 시스템이 필요함파일시스템, 데이터베이스파일 시스템저장 형태 : csv, txt, json 등 단순 파일 형태접근 방식 : 파일 전체를 다 읽고 직접 처리함동시성 : 파일 단위로 접근함 -> 충돌 위험 있음확장성 : 파일 수가 많아지면 관리가 어려움신뢰성 : 수정 중에 오류 시 데이터가 깨짐데이터 베이스저장 형태 : 구조적 데이터접근 방식 : 쿼리로 필요한 데이터만 조회함동시성 : 트랜잭션으로 동시 접근 제어확장성 : 인덱스, 샤딩 등으로 대규모 처리신뢰성 : ACID 보장으로 데이터 안정성 확..
[FE] 마이크로 프론트엔드 아키텍처
·
공부한 것
마이크로 프론트엔드(Micro Frontend) 아키텍처백엔드의 마이크로서비스(Microservice) 개념을 프론트엔드 영역으로 확장한 아키텍처 패턴.즉, 하나의 대규모 프론트엔드 애플리케이션을 여러 개의 독립적인 “작은 프론트엔드 애플리케이션”으로 나누어 개발·배포하는 구조를 말함.프론트엔드를 여러 개의 독립적인 애플리케이션(마이크로 앱)으로 분리하여, 각각 별도로 개발·배포하고 최종적으로 하나의 UI로 통합하는 아키텍처사용 하는 이유대규모 프로젝트의 복잡성 감소, 팀 단위 독립성 확보, 부분 배포 및 업데이트 용이성을 위해 사용구조Container (또는 Shell): 전체 프레임워크 역할을 하는 메인 앱. 공통 스타일, 라우팅, 인증 등을 담당.Micro Apps: 독립적으로 동작하는 각 서비스 ..
[백엔드] Spring
·
공부한 것
초기 자바 개발은? EJB 구조가 너무 복잡하고 설정 파일(XML)이 너무 많고 코드가 무겁고 단순한 기능도 구현 절차가 길고 비효율적.그래서? SPRING FRAMEWORK 개발왜 만들었냐.복잡한 설정 단순화.객체간 의존성 자동 관리 (DI)POJO(Plain Old Java Object) 형태로 개발 가능스프링의 장점생산성 향상 – 설정 자동화, 의존성 관리로 개발 시간 단축유지보수 용이 – 결합도를 낮추어 코드 변경이 쉬움테스트 용이성 – Mock 객체 기반 단위 테스트 지원대규모 확장성 – 스프링 부트, 클라우드, 시큐리티 등으로 확장 가능커뮤니티·문서 풍부 – 전 세계적으로 가장 널리 사용되는 자바 프레임워크임.
[서버] Nginx
·
공부한 것
Nginx(엔진엑스)웹 서버 소프트웨어로, HTTP, 리버스 프록시, IMAP/POP3 프록시 서버 기능 등을 제공함. 높은 성능과 안정성을 목표로 개발. 적은 리소스로 많은 동시 연결을 처리할 수 있도록 설계됨.핵심 아키텍처이벤트 기반 (Event-Driven) 및 비동기 (Asynchronous) 방식: 요청을 처리하기 위해 새로운 프로세스나 스레드를 생성하는 대신 마스터 프로세스(Master Process)가 설정 파일을 읽고, 그 하위에 있는 소수의 워커 프로세스(Worker Process)가 실제 연결을 처리함. 하나의 워커 프로세스는 여러 개의 연결을 동시에 처리할 수 있음. I/O 작업이 발생하면 운영체제 커널에 작업을 위임하고 다른 이벤트를 처리하는 방식으로 동작하여 CPU와 메모리 자원을..
[백엔드] NestJS
·
공부한 것
NestJS란Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크핵심 아키텍쳐의존성 주입 (Dependency Injection): 클래스가 필요한 의존성(객체)을 외부에서 주입받는 디자인 패턴. 이를 통해 구성 요소 간의 결합도를 낮추고 테스트 용이성을 높임.모듈성 (Modularity): 애플리케이션의 코드를 관련된 기능 집합인 모듈 단위로 구성. 각 모듈은 특정 기능에 관련된 구성 요소들을 캡슐화함.데코레이터 (Decorators): 클래스, 메서드, 프로퍼티에 메타데이터를 추가하는 TypeScript 기능. NestJS는 데코레이터를 사용하여 라우팅, 의존성 주입 등 프레임워크의 핵심 기능을 정의함.구성 요소컨트롤러 (Controllers): 특정 경로(Endpoint)로 들어오는 클라이..
[서버] 쿠버네티스(Kubernetes)
·
공부한 것
쿠버네티스란? 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리해주는 오픈소스 플랫폼.사용하는 이유자가치유: 실행 중인 컨테이너에 문제가 생기면, 쿠버네티스가 이를 감지하고 자동으로 재시작하거나 교체하여 서비스 중단을 최소화함.오토 스케일링: CPU 사용량이나 트래픽 같은 부하에 따라 컨테이너의 수를 자동으로 늘리거나 줄여 리소스를 효율적으로 사용함.자동홛횐 롤아웃과 롤백: 새로운 버전의 앱을 배포할 때, 서비스 중단 없이 점진적으로 업데이트 할 수 있음. 만약 배포에 문제가 생기면 이전 버전으로 롤백 가능.서비스 디스커버리 및 로드 밸런싱: 여러 컨테이너에 걸쳐 네트워크 트래픽을 분산시키고, 컨테이너의 IP 주소가 계속 바뀌더라도 안정적으로 서비스를 찾아 연결할 수 있도록 함.핵심 요소팟(Pod)..