[레벨 0] 캐시 메모리의 개념과 역할에 대해 설명해주세요.
·
면접
캐시 메모리의 개념과 역할에 대해 설명해주세요.캐시 메모리의 개념캐시 메모리는 CPU가 자주 사용하는 데이터와 명령어를 임시로 저장하는 고속 버퍼 메모리입니다. RAM보다 훨씬 빠른 속도로 데이터를 읽고 쓸 수 있어, CPU의 접근 시간을 크게 단축시킵니다.캐시 메모리의 역할접근 시간 단축CPU와 RAM 사이의 속도 차이를 줄여 시스템 성능을 향상시킵니다.데이터 전송 속도 증가자주 사용되는 데이터를 고속의 캐시에 저장하여 데이터 전송 속도를 높입니다.데이터 트래픽 감소RAM에 대한 접근 횟수를 줄여 시스템 버스의 트래픽을 감소시킵니다.전력 소비 감소RAM에 비해 적은 전력을 사용하여 에너지 효율성을 높입니다.캐시 메모리의 지역성(Locality)캐시 메모리의 지역성은 크게 두 가지 유형으로 나눌 수 있습..
[레벨 0] 컴퓨터 시스템에서 CPU, RAM, 저장 장치의 역할과 이들이 어떻게 상호 작용하는지 설명해주세요.
·
면접
컴퓨터 시스템에서 CPU, RAM, 저장 장치의 역할과 이들이 어떻게 상호 작용하는지 설명해주세요.CPU(Central Processing Unit)CPU(중앙 처리 장치)는 컴퓨터 시스템의 핵심 구성 요소로, 데이터를 처리하고 명령을 실행하며 다른 하드웨어와 상호작용하여 컴퓨터를 작동시키는 역할을 합니다.CPU의 주요 역할명령어 처리 (Instruction Processing)CPU는 메모리에서 명령어를 가져와(Fetch), 이를 해독(Decode)하고 실행(Execute)합니다.이 과정은 Fetch-Decode-Execute 사이클로 반복됩니다.연산 수행 (Computation)산술논리연산장치(ALU)를 통해 산술 연산(덧셈, 곱셈 등)과 논리 연산(AND,OR 등)을 수행합니다.데이터 전송 (Dat..
[CS] 운영체제와 컴퓨터
·
CS
운영체제의 역할과 구조운영체제의 역할운영체제의 역할은 크게 네 가지가 있음.1. CPU 스케줄링과 프로세스 관리 : CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리함.2. 메모리 관리 : 한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리함.3. 디스크 파일 관리 : 디스크 파일을 어떠한 방법으로 보관할지 관리함.4. I/O 디바이스 관리 : I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리함. 운영체제의 구조유저 프로그램이 맨 위에 있고 그 다음으로 GUI, 시스템콜, 커널, 드라이버가 있으며 가장 밑에 하드웨어가 있는 구조임. 그리고 여기서 GUI, 시스템콜, 커널, 드라이버 부분이 바로 운영체제를 지칭함. 참고로 G..
[CS] HTTP
·
CS
HTTP/1.0HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었음. 이는 RTT 증가를 불러오게 됨.서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점이 있었음. RTT패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간 RTT의 증가를 해결하기 위한 방법매번 연결할 때마다 RTT가 증가하니 서버에 부담이 많이 가고 사용자 응답 시간이 길어졌음. 이를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용하곤 했음. 이미지 스플리팅많은 이미지를 다운로드받게 되면 과부하가 걸리기 때문에 많은 이미지가 합쳐 있는 하나의 이미지를 다운로드 받고, 이를 기반으로 bac..
[CS] IP 주소
·
CS
ARP컴퓨터와 컴퓨터 간의 통신은 흔히들 IP 주소 기반으로 통신한다고 알고 있지만 정확히 말하자면 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신함. APR(Address Resolution Protocol)란 IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜임.ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환함. 이와 반대로 RARP를 통해 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환하기도 함. 위의 그림처럼 장치 A가 ARP Request 브로드캐스트를 보내서 IP 주소에 해당하는 MAC 주소를 찾음. 그러고 나서 해당 주소에 맞는 장치 B가 ARP Reply 유니캐스트를 통해 MAC 주소를 반환하는 ..
[CS] 네트워크 기기
·
CS
네트워크는 여러 개의 네트워크 기기를 기반으로 구축됨. 네트워크 기기의 처리 범위네트워크 기기는 계층별로 처리 범위를 나눌 수 있음. 물리 계층을 처리할 수 있는 기기와 데이터 링크 계층을 처리할 수 있는 기기 등이 있음. 그리고 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가함. 애플리케이션 계층 : L7 스위치인터넷 계층 : 라우터, L3 스위치데이터 링크 계층 : L2 스위치, 브리지물리 계층 : NIC, 리피터, AP 애플리케이션 계층을 처리하는 기기애플리케이션 계층을 처리하는 기기로는 L7 스위치가 있음. L7 스위치스위치는 여러 장비를 연결하고 데이터 통신을 중재하며 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비임. L7 스위치는 로..
[CS] TCP/IP 4계층 모델
·
CS
인터넷 프로토콜 스위트(internet protocol suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 포토콜의 집합이며, 이를 TCP/IP 4계층 모델로 설명하거나 OSI 7계층 모델로 설명하기도 함. 계층 구조TCP/IP 계층은 네 개의 계층을 가지고 있으며 OSI 7계층과 많이 비교함. TCP/IP 계층과 달리 OSI 계층은 애플리케이션 계층을 세 개로 쪼개고 링크 계층을 데이터 링크 계층, 물리 계층으로 나눠서 표현하는 것이 다르며, 인터넷 계층을 네트워크 계층으로 부른다는 점이 다름. 이 계층들은 특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계되었음. 애플리케이션 계층애플리케이션(application) 계층은 FTP, HTTP, SSH, SMTP, DNS 등 ..
[CS] 네트워크의 기초
·
CS
네트워크네트워크는 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어임.네트워크란 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미함.여기서 노드란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미함. 처리량과 지연 시간처리량처리량(throughput)은 링크 내에서 성공적으로 전다로딘 데이터의 양을 말하며 보통 얼만큼의 트래픽을 처리했는지를 나타냄.'많은 트래픽을 처리한다' = '많은 처리량을 가진다'단위로는 bps(bits per second)를 사용함. 초당 전송 또는 수신되는 비트 수.처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의..
[CS] 프로그래밍 패러다임
·
CS
프로그래밍 패러다임프로그래밍 패러다임(programming paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론.선언형 프로그래밍선언형 프로그래밍(declarative programming)이란 '무엇을' 풀어내는가에 집중하는 패러다임이며, "프로그램은 함수로 이루어진 것이다." 라는 명제가 담겨 있는 패러다임 함수형 프로그래밍함수형 프로그래밍(functional programming)이란 선언현 패러다임의 일종. 순수 함수출력이 입력에만 의존하는 것을 의미함. 고차 함수함수가 함수를 값처럼 매개변수로 받아 로직을 생성할 수 있는 것. 일급 객체변수나 메서드에 함수들 할당할 수 있음함수 안에 함수를 매개변수로 담을 수 있음함수가 함수를 반환할 수 있음객체지향 프로그래..
[잡담] 2024년 카카오 모빌리티 iOS 주니어 개발자 지원&코딩테스트
·
잡담
서류 지원서류 지원은 무난하게 통과되었다. 자소서는 따로 쓰지 않았고, 이력서만 제출하였다. 아마 서류는 정말 이상한 것 아니면 다 붙여주는게 아닐까 싶다. 1차 코딩테스트1차 코딩테스트는 10월 5일에 진행했다. ChatGPT의 발전 때문일까? 1차 코딩테스트임에도 불구하고 검색 불가, 외부 IDE 사용 불가 조건이 붙었다. 뭐 나와는 상관없는 항목이라 무시했다. 코딩테스트는 codility에서 진행이 되었다. 코딜리티는 한번도 쓰지 않던 플랫폼이라 생소하여 테스트를 하기 전에 몇문제를 간단하게 풀어보았다. 샘플 데이터는 예제와 똑같이 구성되어 쉽게 푸는 듯 싶었지만 제출을 하니 여러가지 반례들이 튀어나와 점수를 깎아먹었다. 진짜 존재하는 반례들을 전부 모아놓은 듯한 채점이었다. 그래서 단순 구현도 반..