CS & ITS/CS CS & ITS/CS 2024. 2. 20. 소켓(Socket)과 웹소켓(WebSocket) 차이점 더보기 참고 문서 RFC 6455: The WebSocket Protocol Wikipedia: WebSocket(Browser implementation) 이 문서의 내용 더보기 소켓과 웹소켓의 차이점을 살펴보고 관련 기술 용어에 대해서 정리합니다. 소켓(Socket)이란? 네트워크 환경에서 두 노드 간의 양방향 통신을 위한 연결 지점을 의미합니다. 더보기 일반적으로 통신의 대상이 되는 노드는 프로그램을 지칭하며 앤드포인트(Endpoint)라고도 부릅니다. 네트워크 통신을 위해서 앤드포인트 간에 소켓을 생성합니다. 소켓은 앤드포인트 내 유일한 포트(Port) 번호와 매핑됩니다. 앤드포인트 내 여러 개의 포트가 열려있더라도 포트 번호에 따라서 소켓을 특정 할 수 있습니다. 소켓을 구성하려면 TCP/IP .. CS & ITS/CS 2024. 2. 20. 비선점 프로세스 스케줄링(Non-Preemptive scheduling) 이 문서의 내용 더보기 OS는 CPU를 효율적으로 사용하기 위해서 프로세스 스케줄링을 수행합니다. 멀티 프로세스 환경에서 Context Switching에 따른 오버헤드가 발생하며, 이를 최소화 하기 위한 기법이 프로세스 스케줄링입니다. 프로세스 스케줄링은 크게 선점 스케줄링과 비선점 스케줄링으로 구분되며 구현 방식에 따라서 더 세분화됩니다. 비선점 스케줄링(Non-Preemptive scheduling) 다른 프로세스가 CPU를 사용하고 있을 때 이를 선점하지 못하고 CPU 할당을 대기하는 스케줄링입니다. 비선점 스케줄링은 구현 방식에 따라서 다음과 같이 구분됩니다. FCFS/FIFO SJF Priority based HRN 단순 선입 선출로 CPU 선점 CPU burst time이 짧은 작업부터 CP.. CS & ITS/CS 2023. 12. 28. WS(Web Server)와 WAS(Web Application Server) 차이점 이 문서의 내용 더보기 웹 서버와 웹 애플리케이션 서버의 가장 큰 차이점은 역할과 처리 내용입니다. 웹 서버는 정적 리소스를 관리하며 웹 애플리케이션 서버는 비즈니스 로직과 데이터 처리를 담당합니다. 즉 웹 서버는 프론트 앤드, 웹 애플리케이션 서버는 백앤드에 해당합니다. WS(Web Server) 웹 서버(WS)는 정적인 웹 리소스를 서비스하기 위한 소프트웨어입니다. 정적 리소스는 HTML CSS Javascript 이미지 및 파일 등을 의미합니다. HTML 삽입 미리보기할 수 없는 소스 웹 서버는 클라이언트의 HTTP 요청에 맞는 정적 리소스를 반환합니다. 따라서 비즈니스 로직이나 데이터를 처리하는 대신 단순히 정적 리소스로 구성된 웹 페이지를 제공하는 것이 목적입니다. 구분 비고 정적 리소스 제공 .. CS & ITS/CS 2023. 12. 19. SQL 구문 쿼리를 위한 Statement와 Prepared statement 차이점 이 문서의 내용 더보기 Statement와 Prepared statement는 프로그래밍에서 SQL 구문을 실행하기 위한 객체입니다. 기본적으론 SQL 구문이 쿼리되려면 1. 쿼리 문장 분석 2. 컴파일 3. 실행 단계를 거칩니다. Statement 쿼리 실행을 위한 SQL 구문을 하나의 문자열로 전달합니다. String sql = "SELECT id, name FROM table WHERE id = " + id; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); 자바에서 문자열 타입과 다른 변수 타입의 합(+) 연산 결과는 문자열입니다. 예시의 SQL 구문은 변수를 사용하는것처럼 보이지만 실제로는 id 입력에 .. CS & ITS/CS 2023. 12. 18. Ad-Hoc 쿼리와 저장 프로시저(SP, Stored Procedures) 차이점 이 문서의 내용 Ad-Hoc 쿼리란? Ad-Hoc은 일반적으로 날 쿼리라고도 부르는 SQL 구문 그 자체를 의미합니다. SELECT * FROM table WHERE id = 123 프로그래밍에서는 다음과 같은 SQL 구문이 될 수 있습니다. String sql = "SELECT * FROM table WHERE id = " + id; Ad-Hoc의 가장 큰 문제는 쿼리 구문이 변수에 의해서 캐싱되지 않는다는 점입니다. int id = 123; String sql0 = "SELECT * FROM table WHERE id = " + id; id = 234; String sql1 = "SELECT * FROM table WHERE id = " + id; 위 코드에서 두 개의 sql0 sql1은 SELEC.. CS & ITS/CS 2023. 12. 4. QoS란(Quality of Service)란? MQTT의 QoS 동작 방식 더보기 참고 문서 ibm.com: Qualities service provided by mqtt client 이 문서의 내용 더보기 MQTT(Message Queueing Telemetry Transport)는 IoT와 같은 제한된 혹은 대규모 트래픽을 처리하기 위한 프로토콜입니다. TCP/IP 프로토콜 위에서 동작하지만 더 가볍고 기존 프로토콜의 여러 제약에서 자유롭습니다. QoS(Quality of Service)란? QoS는 데이터 전송 과정에서 품질을 보장하는 레벨-수준을 의미합니다. IoT는 Wifi, Bluetooth, ZigBee와 같은 무선 네트워크 망에서 통신하기 때문에 유선 통신보다 더 불안정한 환경에서 동작합니다. 이처럼 불안정한 통신 망에서 프로토콜 수준에서 품질을 보장하기 위한 기.. CS & ITS/CS 2023. 11. 27. FQCN(Full Qualified Class Name)이란? 이 문서의 내용 더보기 클래스 이름을 정의하는 방법은 일반적으로 두 가지가 있습니다. 단순히 클래스 이름을 부르는 Simple Name과 클래스가 위치한 경로를 포함하는 FQCN이 있습니다. FQCN(Full Qualified Class Name) 클래스 이름을 정의하는 방법으로 클래스가 위치한 전체 경로와 계층적인 구조를 포함합니다. 예를 들어 자바에서의 FQCN은 패키지의 경로를 포함합니다. package io.example.test; public class FQCNTest { public static void printFQCN() { System.out.println(FQCNTest.class.getName()); } } 예제의 코드를 실행하면 출력 결과는 .입니다. io.example.test.F.. 이전 1 다음