개발기술 (127) 썸네일형 리스트형 실시간 통신 기술의 개발 역사 실시간 통신 기술의 개발 역사 & WebSocket의 등장 배경웹 초창기에는 클라이언트가 서버의 데이터를 가져오는 단순한 방식이었지만, 점점 더 동적인 데이터를 실시간으로 받아야 할 필요성이 커짐. 이를 해결하기 위해 Polling, Long Polling, SSE 같은 방법이 등장했고, 이후 WebSocket이 실시간 양방향 통신의 최적 솔루션으로 자리잡음.실시간 통신 기술의 역사적 흐름시기기술특징한계1990년대 후반Polling클라이언트가 일정 주기로 서버에 요청네트워크 부하 심함, 실시간성 부족2000년대 초반Long Polling (Comet 기법)서버가 응답을 지연하여 실시간성 개선여전히 HTTP 요청-응답 방식, 서버 부하 큼2000년대 중반 (~2009)SSE (Server-Sent Even.. WebSocket 네트워크의 선택기준✅ 📌 "어떤 데이터인가?" → 데이터 유형에 맞는 최적의 프로토콜을 선택할 수 있음.✅ 📌 "어떤 방향으로 가는가?" → 단방향 vs 양방향에 따라 불필요한 기술 도입을 피할 수 있음.✅ 📌 "속도와 효율성이 중요한가?" → 과도한 리소스 사용을 막고 최적의 성능을 유지할 수 있음.웹소켓의 특징1. 양방향 통신 (Full-Duplex)클라이언트와 서버가 동시에 데이터를 주고받을 수 있어 실시간 데이터 처리가 가능 :채팅, 게임, 주식 시세, 실시간 알림에 적합2. 연결 유지 (Persistent Connection)HTTP는 요청마다 새로운 TCP 연결을 생성해야 하지만, 웹소켓은 한 번 연결 후 지속적으로 재사용 가능.기존 HTTP 방식보다 **응답 지연(Latency)**이 .. 백엔드 개발자와 프론트 엔드 이해도 왜 백엔드 개발자가 프론트엔드 코드를 알아야 할까?✅ 1. 클라이언트와의 통신을 이해해야 문제 해결이 빠름API를 만들었다고 끝이 아니라 클라이언트가 정상적으로 요청을 보내고 응답을 받는지 확인해야 함.CORS 문제, JSON 직렬화/역직렬화 문제, WebSocket 연결 문제 등이 생길 때 프론트 코드를 알아야 빠르게 원인을 파악할 수 있음.✅ 2. 테스트를 직접 할 수 있어야 함프론트엔드 없이 Postman, 브라우저 콘솔, WebSocket 클라이언트 등으로 API를 직접 테스트할 줄 알아야 함.REST API → Postman이나 cURL 활용WebSocket → 브라우저 콘솔에서 new WebSocket()으로 직접 연결 후 테스트 가능✅ 3. 프론트엔드와 협업할 때 커뮤니케이션이 원활해짐프론트.. Jenkins CI/CD 자동화 https://youtubetranscript.com/?v=6YZvp2GwT0A&t=150 YouTube Transcript - read YouTube videos youtubetranscript.com Jenkins는 오픈소스 기반의 자동화 서버로, CI/CD(Continuous Integration/Continuous Delivery) 파이프라인을 구축하고 관리하는 데 널리 사용됩니다. Jenkins를 활용하면 소프트웨어 개발, 빌드, 테스트, 배포 과정을 자동화하여 개발 속도와 품질을 크게 향상시킬 수 있습니다.Jenkins CI/CD란?CI(Continuous Integration):코드 변경 사항을 지속적으로 통합하고 빌드 및 테스트를 자동화하는 프로세스입니다.Jenkins는 개발자가 변경한 코.. 스프링 환경설정 ; 스프링 부트 Spring Boot란?1. Spring Boot는 Spring Framework를 더 쉽게 사용하도록 만든 확장 도구입니다.Spring Framework는 강력한 기능을 제공하지만, 설정이 복잡하고 개발 초기 설정에 시간이 많이 걸립니다.Spring Boot는 이러한 초기 설정을 자동화하고, 필요한 기능들을 빠르게 적용할 수 있도록 돕는 프레임워크입니다.2. Spring Boot의 주요 특징자동 설정(Autoconfiguration)Spring Boot는 대부분의 설정을 자동으로 처리합니다. 예를 들어, 데이터베이스를 연결하거나, 웹 서버를 실행할 때, 추가적인 설정 없이도 바로 동작합니다.자동 설정(@EnableAutoConfiguration)**클래스 경로(classpath)**에 존재하는 의존성(.. 보안의 개념과 기술 보안의 개념 (CIA Triad) 보안은 데이터를 보호하고, 시스템 및 사용자에 대한 신뢰성을 확보하며, 위협으로부터 자산을 안전하게 관리하는 것입니다. 이는 기밀성(Confidentiality), 무결성(Integrity), **가용성(Availability)**이라는 세 가지 주요 개념(CIA Triad)을 중심으로 이루어집니다. 기밀성 (Confidentiality) :데이터나 자원에 대한 비인가된 접근을 방지.적용기술 :암호화(Encryption) : 데이터를 비인가된 사용자가 읽을 수 없도록 변환데이터가 허가된 사용자나 시스템만 접근 가능하도록 보장.적용기술 :접근 제어(Access Control) : 인가된 사용자만 암호화된 데이터에 접근하거나 복호화할 수 있도록 권한 관리무결성 (Integ.. 메일서버 도메인 싸이클 메일 서버의 전체 동작 방식은 메일 발송(Sending), 메일 전송(Transferring), 그리고 **메일 수신(Receiving)**의 3단계로 나뉩니다. 이를 통해 이메일이 작성된 사용자로부터 최종 수신자까지 전달됩니다. 1. 메일 서버의 전체 동작 과정(1) 메일 발송 (Mail Sending)사용자가 이메일 클라이언트(Outlook, Gmail 등)를 통해 이메일을 작성하고 "Send" 버튼을 누르면 시작됩니다.이 단계에서 사용하는 주요 프로토콜은 **SMTP (Simple Mail Transfer Protocol)**입니다.과정사용자가 메일 작성:메일 클라이언트에서 수신자 주소(To), 제목, 본문, 첨부파일 등을 작성.작성된 데이터를 SMTP 서버로 전송.SMTP 서버로 전송:클라이언트.. 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(인증 기관)에 의해 서명되었는지 확인.인증서에 포함된 도메인 이름과 접속한 도메인이 일치하는지 확인.인증.. 이전 1 ··· 4 5 6 7 8 9 10 ··· 16 다음