개발기술 (131) 썸네일형 리스트형 HTTPS 의 TLS 동작과정 1단계: 클라이언트 헬로 (Client Hello)클라이언트(예: 브라우저)가 서버에 요청을 보냅니다:지원하는 암호화 방식 목록(Cipher Suite).난수(Random Data) 1개.사용할 TLS 버전.2단계: 서버 헬로 (Server Hello)서버는 클라이언트의 요청에 응답하며 다음 정보를 보냅니다:선택한 암호화 방식(예: AES-256-GCM).난수(Random Data) 1개.서버의 디지털 인증서(SSL/TLS 인증서):서버의 공개 키 포함.신뢰할 수 있는 인증 기관(CA)에 의해 서명됨.3단계: 인증서 검증클라이언트는 서버가 보낸 디지털 인증서를 검증합니다:인증서가 신뢰할 수 있는 CA(인증 기관)에 의해 서명되었는지 확인.인증서에 포함된 도메인 이름과 접속한 도메인이 일치하는지 확인.인증.. AI개발자와 백엔드 개발자 백엔드 개발자와 AI 개발자의 비교 요약 역할 및 목적구분백엔드 개발자AI 개발자목적비즈니스 로직과 도메인 모델을 설계하여 안정적이고 확장 가능한 서버 애플리케이션 구축.데이터를 기반으로 패턴을 학습하고 예측, 분류, 생성 등을 수행하는 모델 설계 및 최적화.주요 작업- API 설계 및 구현- 데이터베이스 연동- 인증, 권한, 트랜잭션 관리- 네트워크 연결 및 통합 관리.- 데이터 전처리 및 분석- 머신러닝/딥러닝 모델 설계- 학습 및 튜닝- 모델 서빙 및 배포.핵심 초점도메인 이해를 기반으로 시스템의 상태와 동작을 정의하고, 비즈니스 요구사항을 코드로 구현.데이터 이해를 기반으로 수학적 모델링과 학습을 통해 목표를 최적화.2. 모델링의 관점구분백엔드 개발자AI 개발자모델링 대상도메인 엔터티(Entity.. Java의 메모리 영역과 static의 의미 Java는 실행 중에 프로그램의 데이터를 저장하고 관리하기 위해 JVM(Java Virtual Machine) 내부에서 여러 메모리 영역으로 나누어 관리합니다. 주요 메모리 영역은 다음과 같습니다:1. 메모리 영역의 구성Method Area (메서드 영역):클래스 로더(Class Loader)에 의해 로드된 클래스와 관련된 메타데이터, static 변수, 상수, 메서드 코드, 클래스 정보 등이 저장됩니다.특징:모든 스레드가 공유.클래스 수준의 데이터를 저장하므로, 클래스가 한 번 로드되면 해당 데이터는 프로그램 종료 시까지 유지.Heap (힙 영역):모든 객체와 배열이 저장되는 영역.JVM의 Garbage Collector에 의해 관리되며, 참조되지 않는 객체는 자동으로 제거됩니다.특징:모든 스레드가 공.. Security JWT,세션, 쿠키방식 스프링 Security 동작방식 사용자 인증은 시스템이나 애플리케이션에 접근하려는 사용자가 실제로 그 사용자가 맞는지 확인하는 과정이다. 사용자 경험과 확장성도 고려해야 한다. 이미 사용자 인증을 마친 회원이 페이지를 이동할 때마다 사용자 인증을 하게 된다면 사용자에게는 굉장히 불편한 서비스가 될 것이며, 서비스가 성장함에 따라 확장에 유연하지 못하다면, 확장 비용을 무시할 수 없게 된다. 따라서, 사용자 인증 방식들을 보안성, 사용자 경험, 확장성을 중심으로 비교해 보고 선택하는 것이 중요하다. Security 관리방식은 크게 두가지 방식으로 나뉜다. Stateless이냐 혹은 Session-Based이냐. Stateless는 서버가 클라이언트의 이전 상태를 기억하지 않는 방식으로, 매 요청마.. Java, Javascript, Python 비교 1. 실행환경설치 및 구성Java: 코드를 작성한 뒤Java Compiler (javac)가 바이트코드로 컴파일되어 JVM (Java Virtual Machine) 에서 플랫폼 독립적으로 실행 가능. 때문에 JDK를 반드시 설치해야 함. JVM 위에서 실행되기 때문에 런타임 오버헤드가 있음.JavaScript: 웹 브라우저에 이미 엔진이 내장되어 있어, 별도 설치 없이 사용 가능. 서버나 CLI 용도로 Node.js 설치 가능Python: 공식 사이트나 패키지 관리자(Conda, pip 등)를 통해 인터프리터를 설치하면 끝C/C++ : C/C++ Compiler가 코드를 기계어 코드로 컴파일되어 플랫폼에 의존적입니다. 네이티브 코드로 컴파일되어 실행되므로 일반적으로 Java보다 빠름. 저수준 메모리 .. 코딩테스트 탐색문제 (DFS,BFS,DP) 그래프이론으로 정의되는 문제그래프 탐색문제 : 그래프를 노드간 관계(함수 혹은 adj list 관계 등)로 표현하고 각 노드를 탐색한 후 특정한 동작/함수를 실행함.노드를 특정한 경우의 수로 생각할 수 있으며 코드로는 객체의 특정한 상태(state) 로 표현함, 각 노드는 객체의 attribute 값이 다른 상태.그래프 탐색 문제 풀이의 관건은 노드/경우의 수를 어떻게 객체와 개체의 attribute로 표현할 것인지. 그리고 노드간 의 관계인 엣지는 어떤 Method 관계(객체의 attribute를 바꾸는 함수)로 표현할 것인지. 그리고 더 나아가 시간복잡도 최적화를 위해서 엣지 커트를 어떻게 구현할 것인지에 대한 문제이다.DFS와 For/if문 차이경우의 수 관점에서는 컴퓨터의 모든 동작은 tree로 .. 대규모 서비스는 어떻게 서비스되는가 1. 클라이언트 요청 시작DNS 조회사용자가 브라우저에 https://example.com을 입력하면, **DNS(Domain Name System)**가 도메인 이름을 서버의 IP 주소로 변환.브라우저 → 로컬 DNS 캐시에서 IP 확인 (이미 조회된 경우 바로 반환).로컬에 없으면 ISP DNS 서버로 요청.ISP 서버에도 없으면 최종적으로 권한 있는 DNS 서버(Authoritative DNS)로 요청.DNS 서버의 역할:사용자 요청을 적합한 서버로 라우팅하기 위해 IP 주소를 반환.예: example.com에 대해 192.168.1.1 반환. 2. 트래픽 라우팅로드 밸런싱로드 밸런싱은 정적인 파일이든 동적인 요청이든 상관없이 모든 요청에 대해 트래픽을 분산하는 방식으로 동작합니다DNS 기반 로드 .. 모니터링 툴 1. Prometheus란?Prometheus는 오픈소스 모니터링 및 경고 시스템으로, 시계열 데이터(Time Series Data)를 수집하고 저장하며, 쿼리를 통해 이를 분석합니다.Prometheus의 주요 특징시계열 데이터 수집:**메트릭(metric)**이라고 불리는 데이터를 시계열(Time Series) 형식으로 수집.예: CPU 사용률, 메모리 사용량, 네트워크 트래픽.Pull 기반 데이터 수집:Prometheus 서버가 모니터링 대상(Exporter)에서 데이터를 **끌어오는 방식(Pull)**으로 수집.Query Language (PromQL):데이터를 분석하고 시각화하기 위한 쿼리 언어.복잡한 데이터 처리를 쉽게 수행 가능.알림(Alerting):특정 조건이 충족되면 AlertManage.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 17 다음