반응형

전체 글 24

[DevOps] AWS(Amazon Web Services)

AWS란?AWS(Amazon Web Services)는 아마존에서 제공하는 세계 최대의 클라우드 컴퓨팅 플랫폼 / AWS는 인터넷을 통해 서버, 스토리지, 데이터베이스, 네트워킹, 인공지능(AI), 보안 등 다양한 IT 인프라 서비스를 제공합니다. 사용자는 초기 투자 없이 필요한 만큼만 비용을 지불하고, 즉시 리소스를 확장하거나 줄일 수 있음AWS의 주요 서비스1. EC2 (Elastic Compute Cloud) - 가상의 컴퓨터(서버)를 생성해주는 서비스- 리눅스/윈도우 선택 가능, 인스턴스 타입 선택 가능- 웹 서버, 백엔드 서버 운영에 사용2. S3 (Simple Storage Service) - 파일 저장 서비스 (무제한 확장 가능)- 백업, 이미지/동영상 저장, 정적 웹사이트 호스팅에 많이 사..

DevOps 2025.07.23

[DevOps] 원격 접속 프로토콜(Telnet / SSH)

원격 접속 프로토콜 (Remote Desktop Protocol, RDP) 이란?네트워크를 통해 다른 컴퓨터에 접속하는 기능 전체를 의미, 명령어 기반으로 원격 시스템에 접속하고 조작할 수 있는 네트워크 프로토콜 대표적인 원격 접속 프로토콜 종류 프로토콜포트특징보안Telnet23가장 오래된 원격 접속 방식, 텍스트 기반평문(암호화 없음)SSH (Secure Shell)22Telnet을 대체한 표준 원격 접속 방식암호화 전송, 키 기반 인증RDP (Remote Desktop Protocol)3389윈도우 GUI 원격 접속용기본 암호화VNC (Virtual Network Computing)5900크로스플랫폼 GUI 원격 접속암호화 기본 없음 (보안 보완 필요)FTP/SFTP21/22파일 원격 전송 (접속 ..

DevOps 2025.07.10

[DevOps] 소켓 통신(Socket Communication)

소켓 통신이란?소켓 통신(Socket Communication)은 네트워크를 통해 두 컴퓨터(또는 장치)가 데이터를 주고받는 방법 중 하나 인터넷으로 웹사이트를 보거나, 메신저로 메시지를 주고받을 때 대부분 소켓을 기반으로 한 통신이 사용됨소켓의 구성IP 주소: 상대방 컴퓨터의 주소포트 번호: 그 컴퓨터에서 어떤 프로그램과 통신할지 지정프로토콜: 주로 TCP 혹은 UDP 소켓 통신의 기본 흐름1. 서버와 클라이언트 설정서버(Server): 기다리는 쪽. 클라이언트의 요청을 받음클라이언트(Client): 요청을 보내는 쪽2. 통신 과정 예시 (TCP 기반)서버가 소켓을 열고 포트를 바인딩하고 대기클라이언트가 소켓을 열고 서버 IP와 포트로 접속 시도서버가 접속을 수락두 소켓 사이에 데이터 송수신통신 종료 ..

DevOps 2025.06.04

[DevOps] DNS (Domain Name System)

DNS란 ? 도메인 네임 시스템(Domain Name System)의 약자로,사람이 읽기 쉬운 도메인 주소를 컴퓨터가 이해할 수 있는 IP 주소로 바꿔주는 시스템EX) example.com -> 123.123.123.123 와 같이 주소를 매핑해주는 전화번호부 같은 역할DNS 작동원리 웹사이트 주소를 입력브라우저에 www.google.com 입력브라우저가 캐시 확인내 컴퓨터(로컬)나 최근 방문 기록에 google.com의 IP가 저장돼 있나 확인없으면 DNS 서버에 질문내 인터넷 회사(ISP)가 제공하는 DNS 서버에 google.com IP 를 물음DNS 서버가 모르면 루트 서버로 이동DNS 서버가 바로 답 못하면, 인터넷 최상위 Root DNS Server로 가서 물어봄"com"을 관리하는 Top L..

DevOps 2025.04.28

[DevOps] TLS/SSL 인증서

SSL란? (Secure Sockets Layer)1990년대에 넷스케이프가 개발한 웹 서버와 클라이언트(브라우저) 간의 데이터 암호화를 위해 만들어진 보안 프로토콜 현재는 보안 취약점으로 인해 더 이상 사용되지 않음TLS란? (Transport Layer Security)SSL의 후속 버전으로, 현재는 TLS 1.2 또는 TLS 1.3을 대부분의 웹사이트에서 사용 중 흔히 말하는 SSL 인증서는 대부분 TLS 인증서를 의미 HTTPS => SSL 또는 TLS 인증서가 적용된 HTTPSSL/TLS의 필요성 보안되지 않은 상태이면 ID, 비밀번호, 카드번호 등이 평문으로 전송됨SSL/TLS를 쓰면 통신 내용이 암호화되어 내용이 유출되어도 해독 불가 클라이언트와 서버가 서로 신원 확인 가능(인증서 기반)TL..

DevOps 2025.04.16

[DevOps] 로드 밸런싱(Load Balancing)

로드 밸런싱이란?여러 서버로 네트워크 트래픽을 분산하여 부하를 줄이고 성능 최적화 가능대규모 웹사이트, 애플리케이션, 데이터 센터에서 안정적인 서비스 제공을 위해 필수적으로 사용 중인 기술 로드 밸런싱의 필요성성능 향상: 단일 서버에 모든 요청이 집중되는 것을 방지하고 여러 서버로 트래픽을 분산하여 처리 속도를 높임고가용성 : 특정 서버에 장애가 발생해도 다른 서버가 요청을 처리하여 서비스 중단을 방지확장성 : 서버를 추가하여 트래픽 증가에 유연하게 대응할 수 있음보안 강화: DDoS 공격 등의 부하를 여러 서버에 분산하여 공격에 대한 대응력을 높일 수 있음 로드 밸런서의 유형1. 하드웨어 로드 밸런서물리적인 장비로 구현되며, 고성능이지만 비용이 높음.대표적인 제품: F5 BIG-IP, Citrix Ne..

DevOps 2025.04.01

[Database] B-Tree 인덱스

인덱스(Index)란?데이터베이스 테이블 내의 데이터가 많은 경우 원하는 데이터를 탐색하는 시간이 오래 걸린다. 데이터가 많은 테이블끼리 조인할 경우 속도가 크게 저하된다. 사전의 목차와 같이 원하는 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 하는 개념을 인덱스라 한다.인덱스를 구현하기 위해 대부분의 경우 B-Tree(balanced tree) 또는 해시 테이블 자료구조를 사용하며, 이 글에서는 B-Tree 인덱스의 원리와 구조, 장단점에 대해서 다룬다.B-Tree의 특징1. 균형 유지B-Tree는 항상 균형을 유지하여 모든 리프 노드가 동일한 깊이에 위치함따라서 최악의 경우에도 검색 성능이 O(log n) 으로 일정하게 유지2. 한 노드에 여러 개의 키(key) 저장..

Database 2025.03.26

[Database] 트리거(Trigger)

트리거(Trigger)란?트리거(Trigger)는 특정 이벤트(INSERT, UPDATE, DELETE)가 발생할 때 자동으로 실행되는 기능으로, 특정 테이블에서 데이터가 변경될 때 추가적인 로직을 실행하고 싶을 때 사용로그 기록, 특정 필드 자동 업데이트 등으로 활용 가능 트리거 실행 원리DBMS 내부에는 테이블 별로"연결된 트리거 목록"을 메타데이터(시스템 테이블)로 관리 중사용자가 DML(INSERT/UPDATE/DELETE) 명령을 실행하면, ➔ DB 엔진이 해당 테이블의 트리거를 자동으로 찾아서 호출이벤트 리스너와 비슷한 개념-- 트리거 리스트 조회 (PG)SELECT *FROM pg_triggerWHERE NOT tgisinternal; -- 내부 시스템 트리거 제외--tgname 트리거 이..

Database 2025.03.18

[JAVA] 파일 다운로드 API

개요API가 호출되었을 때 서버에 저장된 파일을 로컬 PC에 내려주는 API서버 내 저장된 경로와 파일명으로 파일 객체를 생성하고, Byte 배열로 변환 후 getoutputstream을 이용해 파일을 내려준다. HttpServletResponse 관련 메소드getOutputStreamHTTP 응답을 처리할 때 웹 서버는 클라이언트로 응답을 보내기 위해 HttpServletResponse 객체를 사용 response.getOutputStream()은 이 HttpServletResponse 객체를 통해 HTTP 응답의 바디에 데이터를 쓸 수 있는 스트림을 얻어옴. 이후에 데이터를 이 스트림에 쓰면, 해당 데이터가 HTTP 응답의 바디로 전송됨 일반적으로 파일 다운로드를 위해서는 생성된 파일을 스트림으로 변..

JAVA 2025.03.12

[PostgreSQL] Vacuum

📌 Vacuum이란?PostgreSQL은 MVCC (Multi-Version Concurrency Control)을 사용하여 트랜잭션을 관리하는데, 이를 위해 삭제되거나 업데이트된 레코드(튜플)가 즉시 제거되지 않고 Dead Tuple로 남아 있게 되며, 이를 정리하는 과정을 VACUUM이라 부름.+ Dead Tuple : UPDATE와 DELETE 시 기존 데이터를 즉시 삭제하지 않고 이전 버전으로 남겨둠으로써 생기는 미사용 데이터. 📌 MVCC (Multi-Version Concurrency Control)란?데이터베이스에서 동시에 여러 트랜잭션이 접근할 때 일관성과 성능을 유지하기 위해 사용하는 기법으로 PostgreSQL, Oracle, MySQL (InnoDB), MS SQL Server ..

Database 2025.03.05
반응형