Development 20

[면접을 위한 CS 전공 지식 노트] 3.3 프로세스와 스레드

Section 3. 프로세스와 스레드프로세스란?컴퓨터에서 실행되고 있는 프로그램이며, 이는 곧 프로그램이 메모리에 올라가 인스턴스화된 것을 의미한다. CPU 스케줄링의 대장이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다.  스레드란?프로세스 내 작업의 흐름을 지칭한다. 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다.  3.3.1 프로세스와 컴파일 과정컴파일 과정전처리주석 제거: 소스 코드에 작성된 //나 /* */로 된 주석을 다 지움. 주석은 프로그램 실행에 필요 없기 때문임.헤더 파일 추가: 코드에 #include 같은 외부 파일을 가져오는 명령이 있으면, 실제 그 파일 내용을 가져와서 소스 코..

Development/CS 2025.01.15

[면접을 위한 CS 전공 지식 노트] 3.2 메모리

Section 2. 메모리3.2.1 메모리 계층레지스터CPU 안 작은 메모리휘발성속도 가장 빠름기억 용량 가장 적음캐시L1, L2 캐시 지칭(L3도 존재)휘발성속도 빠름기억 용량 적음주기억장치=RAM휘발성속도 보통기억 용량 보통보조기억장치=HDD, SSD비휘발성속도 낮음기억 용량 많음  캐시개념데이터를 미리 복사하는 임시 저장소빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리캐싱 계층이란?메모리-CPU 사이 속도 차이를 해결하기 위해 중간에 레지스터 계층을 둠. 이처럼 속도 차이 해결을 위해 계층 사이에 있는 계층을 캐싱 계층이라고 함.캐싱  계층을 두는 것 말고, 캐시를 직접 설정할 때는 어떻게 할까?자주 사용하는 데이터를 기반으로 설정함.자주 사용하는 데이터 어떻게 알아? ..

Development/CS 2025.01.15

[면접을 위한 CS 전공 지식 노트] 3.1 운영체제와 컴퓨터

운영체제(OS, Operating System)란?컴퓨터 하드웨어를 관리하는 소프트웨어이며 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중개자 역할을 하여 한정된 메모리나 시스템 자원을 효율적으로 분배한다. 운영체제의 목적은 사용자가 프로그램을 편리하고 효율적으로 수행할 수 있는 환경을 제공하는 데 있다.  Section 1. 운영체제와 컴퓨터3.1.1 운영체제의 역할과 구조 운영체제의 역할CPU 스케줄링과 프로세스 관리: (1) CPU 소유권을 어떤 프로세스에 할당할지 (2) 프로세스의 생성과 삭제 (3) 자원 할당 및 반환 관리 메모리 관리: 프로세서에 메모리 할당 관리디스크 파일 관리: 디스크 파일 보관 방법 관리I/O* 디바이스 관리: 마우스, 키..

Development/CS 2025.01.15

네트워크 심화 공부 - IP, 너 누구야

※ [혼자 공부하는 네트워크] 책을 참조하여 내용을 구성함. IP(인터넷 프로토콜)란? 네트워크 계층(인터넷 계층)의 가장 핵심적인 프로토콜로, IP 주소 지정과 IP 단편화를 수행한다.IPv4, IPv6 두 가지 버전이 있으며, 일반적으로 IP주소를 이야기 할 때는 IPv4를 의미한다.  1. IP 주소 지정과 IP 단편화 IP 주소 지정(IP Adressing): IP 주소를 바탕으로 송수신 대상을 지정하는 것IP 단편화(IP fragmentation): 전송하고자 하는 패킷의 크기가 MTU라는 최대 전송 단위보다 클 경우, 이를 MTU 크기 이하의 복수 패킷으로 나누는 것. 쉽게 말하자면, MTU 보다 큰 데이터그램은 전송이 불가능 하기 때문에 MTU 보다 작은 크기로 만들어 주는 과정을 의미함. ..

Development/CS 2025.01.10

[면접을 위한 CS 전공 지식 노트] 2.5 HTTP

Section 5. HTTP애플리케이션 계층HTTP/1.0부터 HTTP/3까지 발전을 거듭해옴2.5.1 HTTP/1.0HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었다.서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문에 RTT 증가라는 단점이 있다.RTT 증가란?패킷 왕복 시간이다. 패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간을 뜻한다.서버에 부담이 많이 가고 사용자 응답 시간이 길어지는 단점이 있다.RTT 증가 해결방법은?이미지 스플리팅: 많은 이미지를 다운로드 받으면 과부하가 걸린다. 따라서 많은 이미지가 합쳐 있는 하나의 이미지를 다운로드받고, 이를 기반으로 background-image의 position을 이..

Development/CS 2025.01.08

[면접을 위한 CS 전공 지식 노트] 2.4 IP 주소

Section 4. IP주소2.4.1 ARP컴퓨터 - 컴퓨터 통신은 IP 주소에서 ARP를 통해 MAC 주소를 찾아 MAC 주소를 기반으로 통신한다. ARP(Address Resolution Protocol)란?IP주소로부터 MAC 주소를 구하는 IP  MAC 주소 다리 역할을 한다. ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환한다.   RAPR는 실제 주소인 MAC 주소를 가상 주소인 IP 주소로 변환하기도 한다.  *브로드캐스트: 송신 호스트가 전송한 데이터가 네트워크에 연결된 모든 호스트에 전송되는 방식*유니캐스트: 고유 주소로 식별된 하나의 목적지에 1:1로 데이터로 전송하는 방식 2.4.2 홉바이홉 통신홉바이홉 통신이란? IP 주소를 통해 통신하는 과정이다. 수많은 ..

Development/CS 2025.01.08

[면접을 위한 CS 전공 지식 노트] 2.3 네트워크 기기

Section 3. 네트워크 기기2.3.1 네트워크 기기의 처리 범위네트워크 기기는 계층별로 처리 범위를 나눌 수 있다. 상위 계층을 처리하는 기기는 하위 계층을 처리할 수 있지만 그 반대는 불가하다. (상➡️하 가능/ 하➡️상 불가능)계층네트워크 기기애플리케이션 계층L7 스위치인터넷 계층라우터, L3 스위치데이터 링크 계층L2 스위치, 브리지물리 계층NIC, 리피터, AP  2.3.2 애플리케이션 계층을 처리하는 기기애플리케이션 계층 처리 기기: L7 스위치 스위치란?여러 장비를 연결하고 데이터 통신을 중재한다. 목적지가 연결된 포트로만 전기 신호를 보내 데이터를 전송하는 통신 네트워크 장비이다. L7 스위치란?서버의 부하를 분산하는 기기이다. 로드밸런서라고도 한다. 클라이언트-(요청)-> 뒤쪽의 여러..

Development/CS 2025.01.08

[면접을 위한 CS 전공 지식 노트] 2.2 TCP/IP 4계층 모델

Section 2. TCP/IP 4계층 모델인터넷 프로토콜 스위트란?인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합을 의미한다. TCP/IP 4계층 또는 OSI 7계층 모델로 설명하기도 한다. 인터넷 프로토콜 스위트(TCP/IP, OSI 계층)의 특징특정 계층이 변경되었을 때 다른 계층이 영향을 받지 않도록 설계되었다.예를 들어, 전송 계층에서 TCP -> UDP 변경이 이뤄졌다 하더라도, 인터넷 웹 브라우저를 다시 설치할 필요는 없다. 즉, 유연하게 설계되었다는 것이다.  2.2.1 계층 구조TCP/IP 4계층 모델이란?네트워크에서 사용되는 통신 프로토콜의 집합으로, 계층들은 프로토콜의 네트워킹 범위에 따라 4 개의 추상화 계층으로 구성된다.  1. 애플리케이션 계층개념: FTP,..

Development/CS 2025.01.08

[면접을 위한 CS 전공 지식 노트] 2.1 네트워크의 기초

Section 1. 네트워크의 기초네트워크란?노드(네트워크 장치 *서버, 라우터, 스위치 등)와 링크(유선/무선)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미한다. 2.1.1 처리량과 지연 시간좋은 네트워크란?처리량 🔼의미: 성공적으로 전달·처리된 데이터 양(트래픽)단위: bps - 초당 전송/수신되는 비트 수 영향을 주는 요소 - 트래픽(접송량), 네트워크 장치 간 대역폭, 네트워크 중 발생된 에러, 장치의 하드웨어 스펙지연 시간 🔽요청이 처리되는 시간. 즉, 메시지가 두 장치 사이를 왕복하는데 걸린 시간영향을 주는 요소 - 매체 타입(무선/유선), 패킷 크기, 라우터 패킷 처리 시간장애 빈도 🔽좋은 보안 2.1.2 네트워크 토폴로지와 병목 현상네트워크 토폴로지란?노드와 링크가 어떻게 배..

Development/CS 2025.01.08

Google OAuth2.0 소셜 로그인 프로세스 (SpringBoot, Vue)

Eatory 프로젝트를 진행하며 구글 소셜 로그인을 구현하였다.내가 헤매었던 부분을 공유하고, 이를 정리해 기록하고자 한다.  들어가기에 앞서, Google Cloud 에서 클라이언트 등록을 해야 한다.등록 방법은 아래 블로그를 참고했다.https://velog.io/@bdd14club/백엔드-2.-구글-소셜-로그인-구현하기⚠️ 위 블로그 글과 다르게 Redirect URI는 localhost:5173(프론트)로 설정해야 한다.개발환경은 다음과 같다.백: SpringBoot프론트: Vue3  구글 소셜 로그인은 다음과 같은 과정을 통해 이루어진다.1. Google 로그인 시작1️⃣ 사용자 요청: 사용자가 구글 로그인 버튼을 클릭한다.2️⃣ 클릭 시,  아래 URL로 이동하게끔 Vue를 구현한다.https..

Development/PJT 2024.12.14