2024/04/27 10

자바 기본

💡 Java의 특징을 설명해주세요.1 Java는 객체지향 프로그래밍 언어입니다.  기본 자료형을 제외한 모든 요소들이 객체로 표현되고,  객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어입니다.자바의 장점 JVM(자바가상머신) 위에서 동작하기 때문에 운영체제에 독립적이다. GabageCollector를 통한 자동적인 메모리 관리가 가능하다.   -   JV(M의) - GC 장첨자바의 단점 느리고, 제약이 많습니다  JVM 위에서 동작하기 때문에 실행 속도가 상대적으로 느리다. 다중 상속이나 타입에 엄격하며, 제약이 많다.💡 JVM의 역할에 대해 설명해주세요. Java Byte Code를 OS에 맞게 해석 해주는 역할을 하고  가비지컬렉션을 통해 자동적인 메모리 관리를 해줍니다. JVM..

CS : HTTP 1 -> 3 / HTTPS / SSL/TLS

HTTP 1.0?기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었습니다. 이는 RTT 증가를 불러오게 되었습니다 RTT 증가 이유?서버로부터 파일을 가져올 때마다 TCP의 3-way 핸드쉐이크를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점RTT? Round Trip Time패킷 왕복 시간을 말합니다. 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간RTT의 해결 방법?이미지 스플리팅 코드 압축 이미지 Base64 인코딩이미지 스플리팅?많은 이미지를 다운로드받게 되면 과부하가 걸리기 때문에 많은 이미지가 합쳐 있는 하나의 이미지를 다운받고,   background-img의 position을 이용하여 이미지를 표현하는 방법코드 압축?개행 문자, 빈 칸을 없애서 코드의 크기를 ..

CS : 네트워크 기기 / IP / NAS

네트워크 기기의 처리 범위?계층별로 처리 범위를 나눕니다.  상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가합니다.  예를 들어 L7 스위치는 애플리케이션 계층을 처리한느 기기로, 그 밑 모든 계층의 프로토콜을 처리할 수 있으나 AP는 물리 계층밖에 처리하지 못합니다. 계층별 대표 기기를 말하라애플리케이션 계층 : L7 스위치 인터넷 계층 : 라우터, L3 스위치 데이터 링크 계층 : L2위치, 브리지 물리 계층 : NIC, 리피터, AP가 있습니다.스위치?여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비입니다. L7 스위치?어플리케이션 계층의 대표 기기입니다.  로드밸런서라고 하며 서버의 부하를 분산시..

CS : PDU / 네트워크 프로토콜 / 캡슐화 등

PDU란?네트워크의 어떠한 계층에서 계층으로 데이터가 전달될떄 한 덩어리의 데이터 단위를 프로토콜 데이터 유닛이라고 합니다 Protocol Data Unit 의 구성 제어 관련 정보들이 포함된 헤더 데이터를 의미하는 페이로드로 구성되어 있습니다 PDU의 명칭 계층마다 부르는 명칭이 다릅니다  애플리케이션 계층에서는 메세지 전송 계층에서 TCP는 세그먼트, UDP는 데이터그램 인터넷 계층에서는 패킷 링크 : 데이터 링크 계층에서는 프레임. 물리 계층에서는 비트입니다.  그래서 HTTP 헤더를 까보면 모두 문자열입니다.PDU 효율?가장 아래 계층인 비트로 송수신하는것이 모든 PDU 중 가장 빠르고 효율성이 높으나 APPLICATION 계층에서는 string을 기반으로 송수신을 합니다.  헤더에 authori..

CS : 네트워크 기본

OSI 7계층과 TCP/IP 4계층의 차이점은 무엇인가요? OSI 계층은 애플리케이션 계층을 세 개로 쪼개고 링크 계층을 데이터 링크 계층 물리 계층으로 나눠서 설명하는 것이 다르며  인터넷 계층을 네트워크 계층으로 부른다는 점이 다릅니다.  O... 많네 -> 7 애셋 링 -> 데링 물 인네HTTP 2와 1의 차이점? 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며,  멀티플렉싱,  헤더 압축,  서버 푸시,  요청의 우선순위 처리 를 지원하는 프로토콜입니다.멀티플렉싱?HTTP2의 장점으로, 여러 개의 스트림을 사용하여 송수신한다는 것입니다/  이를 통해 특정 스트림의 패킷이 손실되었다고 하더라도 해당 스트림에만 영향을 미치고 나머지 스트림은 멀쩡하게 동작할 수 있습니다.서버 푸시?HTTP 1..

CS : 스레드 / 멀티 스레딩 / 동시성 / 공유 자원 / race condition / critical section / CPU 스케쥴링 알고리즘

스레드?프로세스의 실행가능한 가장 작은 단위입니다. 프로세스는 여러 스레드를 가집니다.  코드 데이터 스택 힙을 각각 생성하는 프로세스와는 달리 스레드는 코드, 데이터, 힙은 스레드끼리 서로 공유합니다. 그 외 영역(스택, 스레드 상태)은 각각 생성됩니다 동시성?서로 독립적인 작업들을 작은 단위로 나누고 동시에 실행되는 것처럼 보여주는것 멀티 스레딩프로세스 내 작업을 여러개의 스레드로 처리는 기법이며, 스레드끼리는 서로 자원을 공유하기 때문에 효율성이 높습니다.  예로 웹 요청을 처리할때 새 프로세스를 생성하는 대신 스레드를 사용하는 웹 서버는 훨씬 적은 리소스를 소비하며, 한 스레드가 중단되어도(blocked) 다른 스레드는 실행 상태(running)일 수 있기 때문에 중단되지 않은 빠른 처리가 가능합..

CS : 쓰레드 / 프로세스 / 메모리 할당 / PCB / 컨텍스트 스위칭 / 멀티 프로세싱 / IPC

쓰레드 : 대기 상태란?ready는 CPU 스케쥴러로부터 CPU 소유권이 넘어오기를 기다리는 상태입니다.  이 떄 메모리 공간이 충분하면 메모리를 할당받고, 아니면 아닌 상태로 대기하고 있습니다. 쓰레드 : 대기 중단 상태란?ready suspended는 메모리 부족으로 일시 중단 0 : Process?컴퓨터에서 실행되고 있는 프로그램을 말하며, CPU 스케쥴링의 대상이 되는 task라는 용어와 거의 같은 의미입니다.  프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어납니다. 이후 O/S의 CPU 스케쥴러에 따라 CPU가 프로세스를 실행합니다. 0 : 스레드는?프로세스 내 작업 흐름을 지칭합니다/ 7 : 소스 코드와 프로그램, 프로세스의 관계, 실행 과정 (C언어 기준) 소스 코드 -> 전처..

CS : 메모리 / 할당 / 페이지 폴트 / 스레싱 등

메모리 관리 기법인 가상 메모리에 대해 알려줘 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것  가상 주소(logical address)와  실제 주소(physical address)가 매핑되어 있고,  프로세스의 주소 정보가 들어 있는 페이지 테이블로 관리됩니다.  이 때 속도 향상을 위해 TLB를 사용합니다.TLB는? 메모리와 CPU 사이에 있는 주소 변환을 위한 캐시입니다.  페이지 테이블에 있는 리스트를 보관하며  CPU가 페이지 테이블까지 가지 않도록 해 속도를 향상시킬 수 있는 캐시 계층입니다.가상 주소는 어떻게 실제 주소로 변환되나?MMU : 메모리 관리 장치에 의해 실제 주소로 변환되며, 이 덕분에 사용자는 실제 주소를 의..

CS : OS / 캐시 / 캐시매핑

OS의 큰 역할 4가지를 말해주세요 1. CPU 스케쥴링과 프로세스 관리 2. 메모리 관리 3. 디스크 파일 관리 4. I/O 디바이스 관리  CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리합닌다.  한정된 메모리를 어떤 프로세스에 얼마나 할당해야 하는지를 관리합니다.  디스크 파일의 보관 방법을 관리합니다.  I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는것을 관리합니다. - O/S의 정확한 정의에 대해 말해주세요 O/S는 인터페이스이며, 사용자가 컴퓨터를 쉽게 다룰 수 있게 합니다.  한정된 메모리나 시스템 자원을 효율적으로 분배합니다.  운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없는 것을 펌웨어라고 합니다. - 컴퓨터는 어..

CS : DB / 트랜잭션 / 키

#separator:tab#html:false쓰레드 : 실행 상태란? running은 CPU 소유권과 메모리를 할당받고  인스트럭션 수행중임을 의미 CPU burst가 일어났다고도 표현쓰레드 : 종료 상태란? 메모리와 CPU 소유권을 모두 놓고 가는 상태 자연스러운 종료 + 부모가 자식 프로세스를 강제시키는(abort) 비자발적 종료 자식 프로세스에 할당된 자원의 한계치를 넘어서거나 부모 프로세스가 종료 or 사용자가 process.kill 등 여러 명령어로 프로세스를 종료할때 발생 프로세스의 메모리 구조 4가지를 말하라 동적 : 힙 / 스택 정적 : 데이터  / 코드 프로세스의 키워드 : cpu 소유권 + 메모리 트랜잭션이란? DB에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말하며 DB에 q..