반응형

컴퓨터 과학(CS) 12

객체 지향 프로그래밍의 4가지 특징

개요상속: 기존 클래스의 속성과 메서드를 물려받아 재사용하고 확장할 수 있는 개념.다형성: 동일한 인터페이스(메서드)가 여러 형태로 동작할 수 있게 하는 개념.캡슐화: 객체의 상태와 행위를 하나의 단위로 묶고, 내부 구현을 숨기고 외부와의 인터페이스만 제공하는 개념.추상화: 시스템의 복잡한 세부사항을 숨기고 중요한 기능만을 드러내는 개념. 상속기존 클래스에서 정의된 속성과 메서드를 새로운 클래스로 물려받아 재사용할 수 있게 해주는 OOP의 기본 개념자식 클래스는 부모 클래스의 멤버를 상속받고, 이를 확장하거나 변경할 수 있다.이를 통해 코드 재사용성을 높이고, 유지보수를 용이하게 만든다. 상속을 사용하면 코드 중복을 피할 수 있으며, 일반적으로 "is-a" 관계를 나타낸다.예를 들어, "자동차"는 "탈 ..

네트워크 프록시

개요프록시(Proxy)는 네트워크 통신에서 중개 서버 역할을 하는 시스템이다.클라이언트와 서버 사이에서 데이터를 중계하거나 대리로 처리하는 기능을 수행한다.클라이언트가 직접 목적지 서버에 요청을 보내지 않고, 프록시 서버를 통해 요청을 전달하는 방식이다.를 통해 익명성, 보안, 접근 제어, 캐싱 등의 기능을 제공할 수 있다. 항목설명정의클라이언트와 서버 사이에서 데이터를 중계하는 중개 서버.주요 기능1. 익명성 제공2. 접근 제어3. 콘텐츠 필터링4. 캐싱5. 보안 강화6. 지리적 차단 우회종류1. 정적 프록시 (Forward Proxy)2. 리버스 프록시 (Reverse Proxy)3. 웹 프록시 (Web Proxy)4. 익명 프록시 (Anonymous Proxy)5. 투명 프록시 (Transparen..

네트워크 보안

개요네트워크 보안은 컴퓨터 네트워크를 보호하기 위해 사용하는 다양한 기술과 절차를 의미한다.주요 목표는 네트워크의 무결성, 기밀성 및 가용성을 유지하는 것기술의 발전과 함께 보안 위협도 증가하고 있기 때문에 네트워크 보안은 현대의 디지털 환경에서 매우 중요한 요소이다.기밀성 : 데이터가 인가된 사용자만 접근할 수 있도록 보호하는 것, 암호화 기술이 흔히 사용된다.무결성 : 데이터가 변조되거나 손상되지 않도록 하는 것, 데이터 체크섬이나 해시 함수를 사용하여 확인한다.가용성 : 필요할 때 데이터를 사용할 수 있도록 보장하는 것, DoS 공격을 방어하기 위한 방어책이 필요하다.네트워크 보안의 기술 및 방법으로는 방화벽, 침입 방지&탐지 시스템, VPN, 암호화, 인증이 있다.  방화벽(Firewall)네트워..

네트워크 HTTPS

개요HTTPS(Hypertext Transfer Protocol Secure)는 HTTP에 보안 계층을 추가한 프로토콜로, 웹에서 데이터를 안전하게 주고받기 위한 암호화된 통신을 제공한다.기본적인 HTTP는 데이터를 평문(암호화되지 않은 상태)으로 전송한다.따라서 비밀번호, 신용카드 정보같이 민감한 정보가 유출될 위험이 있다.이를 방지하기 위해 HTTPS는 SSL/TLS 프로토콜을 사용하여 통신을 암호화하고, 인증 및 데이터 무결성을 보장한다.  HTTP vs HTTPS항목HTTPHTTPS보안성데이터가 평문으로 전송됨, 보안 없음SSL/TLS로 암호화된 데이터 전송인증서버의 신원을 확인할 방법 없음SSL/TLS 인증서를 통해 서버 신원 확인 가능데이터 무결성데이터 변조에 취약데이터 변조 방지, 무결성 보..

네트워크 기기

개요네트워크 기기는 컴퓨터 네트워크에서 데이터의 전송, 수신, 라우팅, 관리를 담당하는 장치이다.주로 데이터를 전달하고, 트래픽을 제어하며, 네트워크 보안을 유지하는 등의 역할을 수행한다.  라우터컴퓨터 네트워크에서 서로 다른 네트워크 간의 데이터 전송을 관리하는 네트워크 장치패킷이라 불리는 데이터 조각을 송신지에서 목적지로 전달하는 역할한다.이 과정에서 최적의 경로를 찾는 것이 주요 기능이며, 가정용에서 대규모 기업 및 인터넷 서비스 제공업체(ISP) 네트워크까지 다양한 환경에서 사용된다. 라우터의 주요 기능은 다음과 같다.목적지 주소(IP 주소)를 기준으로 가장 효율적인 경로를 선택하여 패킷을 송신지에서 수신지로 전달한다.네트워크를 여러 부분으로 분할하여 트래픽을 분산하고, 병목 현상을 줄이며, 성능..

네트워크 DNS

개요DNS(Domain Name System)는 인터넷에서 도메인 이름을 IP 주소로 변환해 주는 시스템이다.쉽게 말해 사용자가 웹사이트에 접속하려고 할 때, 도메인 이름(예: www.example.com)을 입력하면 이 이름을 해당하는 IP 주소(예: 192.168.1.1)로 변환해 주는 역할을한다.를 통해 사용자는 복잡한 숫자 형태의 IP 주소를 기억할 필요 없이 알아보기 쉬운 도메인 이름만으로 웹사이트에 접속할 수있다. DNS는 인터넷이 원활하게 작동하도록 해 주는 핵심 시스템이다. 웹사이트를 방문할 때마다 수십 번씩 DNS 요청이 일어나며, 그 덕분에 우리는 복잡한 IP 주소 대신 익숙한 도메인 이름만 기억하면 되는 편리함을 누리고 있다.  DNS의 역할도메인 이름을 쉽게 기억할 수 있도록 사용하..

네트워크 대역폭

개요대역폭은 네트워크나 통신 시스템에서 데이터가 전송될 수 있는 최대 용량을 의미한다.컴퓨터를 사용하다 보면 Kbps, Mbps 등을 접한적이 있을 것이다.해당 단위들은 주로 초당 전송할 수 있는 데이터의 양을 나타내며 대역폭의 단위를 의미한다.대역폭이 클수록 더 많은 데이터를 더 빠르게 전송할 수 있다.  대역폭의 종류전송 대역폭 : 실제로 전송되는 데이터의 양을 나타내며, 대역폭의 실제 성능을 측정하는 데 사용된다. 네트워크의 혼잡이나 지연, 패킷 손실 등이 영향을 미칠 수 있다.용량 대역폭 : 네트워크가 이론적으로 지원할 수 있는 최대 데이터 전송 속도이다. 이는 기술적 한계나 장비의 성능에 따라 달라질 수 있다. 주파수 대역폭주파수 대역폭은 통신 신호에서 사용되는 주파수 범위를 말한다.아날로그 신..

메모리 관리 페이징

개요운영체제가 물리적 메모리와 가상 메모리를 관리하는 기법 중 하나이다.페이징을 통해 프로그램이 실제로 사용 가능한 물리적 메모리보다 더 많은 메모리를 사용하는 것처럼 동작할 수 있다.이를 통해 메모리 사용의 효율성을 높이고, 다수의 프로그램이 동시에 실행될 수 있게 도와준다.  페이징의 개념페이징은 가상 메모리와 물리적 메모리를 일정한 크기의 블록으로 나누는 기법이다. 가상 메모리: 프로그램이 참조하는 메모리 공간물리적 메모리: 실제 하드웨어에 있는 메모리 (RAM) 가상 메모리는 페이지라는 고정 크기 블록으로 나누어지고, 물리적 메모리도 같은 크기의 프레임으로 나누어진다.페이지와 프레임의 크기는 보통 4KB, 8KB와 같은 값으로 설정된다. *고정 크기 블록가상 메모리의 블록은 가상 메모리 공간에서 ..

프로세스 (process)

개요컴퓨터가 실행할 수 있는 프로그램의 인스턴스를 말하며, 이는 운영체제의 핵심 개념 중 하나이다.운영체제는 여러 가지 프로세스를 관리하고, 그들 간의 자원 경쟁을 조정하며, 시스템 자원을 효율적으로 사용하도록 한다. 1. 프로세스의 구조프로세스는 프로그램의 인스턴스로, 실행 중에 여러 구성 요소로 나눌 수 있다.코드 섹션: 실행할 프로그램 코드가 저장된 메모리 공간데이터 섹션: 전역 변수 및 정적 변수가 저장되는 영역힙: 프로그램 실행 중 동적으로 할당되는 메모리 공간 예를 들어, malloc이나 new와 같은 메모리 할당 함수를 통해 할당된 메모리가 여기에 포함된다.스택: 함수 호출과 관련된 정보(지역 변수, 매개 변수, 리턴 주소 등)가 저장되는 메모리 영역, 스택은 함수 호출 시마다 증가하고, 함..

멀티 쓰레딩 (Multi-threading)

개요하나의 프로세스 안에서 여러 개의 쓰레드를 동시에 실행시키는 기법이를 통해 CPU의 자원을 보다 효율적으로 사용할 수 있으며, 특히 여러 작업을 병렬로 처리해야 하는 경우에 성능 향상을 기대할 수 있다.멀티 쓰레딩은 주로 응용 프로그램에서 응답성을 높이거나 동시에 여러 작업을 수행해야 할 때 사용한다. 1. 쓰레드(Thread)란?쓰레드는 프로세스 내에서 실행되는 가장 작은 단위이다.하나의 프로세스는 여러 개의 쓰레드를 가질 수 있으며, 각 쓰레드는 독립적으로 실행될 수 있다.동일한 프로세스 내의 쓰레드들은 메모리 공간을 공유하며, 이 공유된 메모리에는 힙 영역과 전역 변수 등이 포함된다. 2. 멀티 쓰레딩의 장점 병렬 처리: 여러 작업을 동시에 실행할 수 있어 CPU 자원을 더 효율적으로 사용할 수..

728x90
반응형