# CS

10118개의 포스트

함수형 프로그래밍이란?

함수형 프로그래밍 명령형 프로그래밍을 기반으로 개발했던 개발자들은 개발하는 소프트웨어의 크기가 커짐에 따라, 복잡하게 엉켜있는 스파게티 코드를 유지보수하는 것이 매우 힘들다는 것을 깨닫게 되었다. 그리고 이를 해결하기 위해 함수형 프로그래밍이라는 프로그래밍 패러다임에 관심을

약 2시간 전
·
0개의 댓글
·
post-thumbnail

교착 상태 해결 방법

교착 상태 해결 방법 운영체제는 교착 상태가 일어나지 않도록 해야한다. 운영체제는 교착 상태를 예방, 회피, 회복 할 수 있다. 예방은 교착 상태 발생 조건에 부합하지 않게 자원을 분배하는 것이다. 회피는 교착 상태가 발생하지 않을 정도로 자원을 분배하다가 교착 상태 발생 위험이 있다면 자원을 할당하지 않는 방식을으로 회피할 수 있다. 회복은 자원을 제약 없이 할당하다가 교착 상태가 검출</span

약 5시간 전
·
0개의 댓글
·
post-thumbnail

[CS] CORS(Cross Origin Resource Sharing)

CORS란? Cross Origin Resource Sharing의 약자로, origin 간 리소스를 공유할 수 있도록 하는 정책 브라우저는 보통 다른 origin에서 요청을 보내는 것을 금지하고, 같은 origin 간 공유를 허용하는 정책 (SOP,same-origin-policy) 을 사용한다 브라우저는 http 관련 통신이 일어날 때 cors 검증을 해야하는 지 아닌 지 판단하고, 서버에 cors 검증을 요청한다. > 💡 Open API 등 다른 출처(origin)에 자원을 요청하는 경우가 많아졌다. 다른 origin의 요청을 허용하기 위해 서버에서 허용한 origin과 헤더의 origin을 비교해 검사하는 것이 CORS의 핵심 원리이다. 출처(Origin)란? Protocol, Host, port 번호 를 합친 것을

약 11시간 전
·
0개의 댓글
·
post-thumbnail

[OS] 시작하기

구성 > - 운영체제 공부하기 > - 커널 vs 배포판 > - (리눅스) 커널 디렉토리 구조 > - 부팅 메세지 > > 이 정리는 23-2에 수강한 오퍼레이팅 시스템 강의를 기반으로 하였습니다. 운영체제 공부하기 운영체제는 크게 4가지 단계로 공부한다. 운영체제가 사용하는 명령어를 공부하는 것(ls, cp ..) 운영체제가 제공하는 시스템 함수를 공부하는 것(read, write ..) 운영체제의 내부 작동 원리를 이해하기 위해 운영체제의 소스 코드를 읽고 5가지 주요 컨셉을 공부하는 것 운영체제를 만드는 것 이번 오퍼레이팅 시스템 강의에선 3번까지 학습하는 것을 목표로 한다. 3번의 운영체제의 5가지 주요 컨셉은 interrupt, process, file, memory, io로 구성된다. 그리고 이번 학기엔 이 5가지의 컨셉이 실제 소스 코드로 어떻게 구현되어있는지 읽어보고, 변경 해보고 하는 활동이 되겠다. 커널

약 18시간 전
·
0개의 댓글
·
post-thumbnail

컴퓨터 네트워크 (2)

IP Address 인터넷의 호스트/라우터를 유일하게 정의할 수 있는 32비트(4 bytes) 주소 체계(IPv4). 인터넷 상의 두 호스트는 동일한 IP Address를 사용할 수 없음. Netid : network를 정의 (ex : 전화국 2220-3XXX) Hostid : network에 있는 host를 식별(정의) (ex : 뒤 XXX 부분) Decimal motation IP Address는 일반적으로 아래와 같이 마침표로 구분된 4개의 숫자가 있는 10진수 형식으로 표시됨. 각 10진수 숫자는 아래처럼 32비트 숫자 네 개와도 같음 (이진 표기법 이용) 외우기 어렵기 때문에 문자로 도메인 이름을 만들어 사이트 주소로 활용함(ex. www.naver.

약 21시간 전
·
0개의 댓글
·

컴퓨터 네트워크 (1)

Network layer (네트워크 레이어) 한 컴퓨터에서 다른 컴퓨터까지 데이터를 주고 받게 하는 역할. 데이터 패킷이 전송되고 라우팅되는 방법을 제어하는 OSI 모델 또는 TCP/IP 모델에서 중요한 계층임. Network-layer functions Forwarding : 차를 몰고 길을 찾아가는 개념. 목적지 IP 주소에 따라 패킷을 올바른 출력 인터페이스로 전달해서 패킷이 목적지로 이동하도록 함. Routing : 출발지에서 목적지로 가는 최적의 경로를 결정해줌. Physical Address (물리적 주소) 해당 기계에 부여된 고유 주소. IP와는 다르게, 한 번 부여되면 영원히 바뀌지 않음. 어떤 곳에선 MAC Address라고 부르기도 함. 링크 주소로도 알려져 있으며, LAN이나 WAN에서 정의된 노드의 주소임. Data link layer에 의해 사용되는 frame에도 포함되며 이것이 최하위 계층

약 22시간 전
·
0개의 댓글
·

프로세스 VS 프로세서

프로세스(Process) 프로세스는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다. 여러 개의 프로세서를 사용하는 것을 멀티프로세싱이라고 하며 같은 시간에 여러 개의 프로그램을 띄우는 시분할 방식을 멀티태스킹이라고 한다. 프로세스 관리는 운영 체제의 중요한 부분이 되었다. 특징 하나의 시스템에서 여러 개의 프로세스가 동시에 실행될 수 있다. 각 프로세스는 독립적인 실행 환경을 가지며, 다른 프로세스와는 격리되어 있다. 프로세스는 운영 체제로부터 할당받은 자원을 사용하며, 각각의 프로세스는 독립된 메모리 공간을 가지고 있다. 프로그램과 프로세스 프로그램은 일반적으로 하드 디스크 등에 저장되어 있는 실행코드를 뜻하고, 프로세스는 프로그램을 구동하여 프로그램 자체와 프로그램의 상태가 메모리 상에서 실행되는 작업 단위를 지칭한다. 예를 들어, 하나의 프로그

어제
·
0개의 댓글
·
post-thumbnail

CSㅣIP주소 - ARP, 홉바이홉, 라우팅 테이블, 게이트웨이, IP주소 체계, DHCP, NAT

IP주소는 '인터넷 계층'에서 쓰인다. > ARP(Address Resolution Protocol) ARP 컴퓨터와 컴퓨터가 통신하는 것에 대해서, 흔히 IP주소를 기반으로 통신한다고 알고 있지만, 정확히 이야기 하면, 'IP주소에서 ARP를 통해 MAC주소를 찾아, MAC주소를 기반으로 통신'하는 것이다. ARP(Address Resolution Protocol)이란, IP주소로부터 MAC주소를 구하는 IP와 MAC주소의 다리 역할을 하는 프로토콜이다. ARP를 통해 '가상주소인 IP주소를 실제 주소인 MAC주소로 변환'한다. 이와 반대로 RARP를 통해 실제 주소인 MAC주소를 가상주소인 IP주소로 변환하기도 한다. 예

2일 전
·
0개의 댓글
·
post-thumbnail

컴퓨터구성 (5)

9/26(화) 요약정리 과제 1장에서는 조합회로, 순차회로, 어떻게 설계하는지에 대해서 배웠음. 2장에서는 IC칩에 대해서 배울 것. 2-1. IC Chip 1) Advantages of I.C. (Intergration Circuits 칩의 장점) 사이즈가 작아진다 비용이 적게 든다. 열의 발생량을 줄일 수 있고 신뢰도가 높아진다. 운영 속도가 증가한다. 2) Size 크기로 가지고 분류할 수 있는데 분류 기준은 IC칩에 들어가는 로직 회로들의 개수로 분류 할 수 있다. SSI : IC칩에 들어가는 로직 회로들이 수십개인 경우 MSI : 수백개 LSI : 수천개 VLSI : 수천개 이상 ~ 일반적으로, IC칩의 사이즈는 어느정도 되지만, 회로 자체가 차지하는 부분은 굉장히 작다. 입력 신호는 들어가야하고 출력 신호는 나와야하기 때문에 그것들을 위한 핀들이 양쪽에 여러개 꽂혀있다. 결론적으로, 칩 자체는 공간을

3일 전
·
0개의 댓글
·
post-thumbnail

인터넷 네트워크

IP IP는 인터넷 프로토콜. 지정한 IP 주소에(IP Address)에 데이터를 전달한다. 패킷(Packet)이라는 통신 단위로 데이터를 전달한다. 클라이언트와 서버 둘다 패킷으로 데이터를 전달한다. | ---|---| 프로토콜 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙 IP 프로토콜의 한계 비연결성 클라이언트에서 서버로 패킷을 보내는데, 서버가 꺼져있어도 일단 전송한다. 비신뢰성 중간에 패킷이 사라지는 경우나 순서대로 오지 않는경우가 발생. 프로그램 구분 같

3일 전
·
0개의 댓글
·
post-thumbnail

React Hook.. ✨

React! 리액트에는 두 가지 형태의 컴포넌트가 있다.! > Class, Functional Component! 요즘엔 함수형 컴포넌트를 많이 쓴다지만 라이프 사이클의 이해를 위해선 클래스형 컴포넌트의 이해도 필요할 거 같다! 클래스형과 함수형의 가장 큰 차이는 여러 가지가 있지만 아무래도 라이프 사이클 메서드의 사용에 있어서가 가장 클 것 같다! > 클래스형 컴포넌트에서의 리액트 라이프 사이클입니당 잠깐 보는 클래스형 컴포넌트에서의 라이프 사이클 메서드 > ### 1. Mount - 컴포넌트가 생성되는 시기 > constructor > 컴포넌트의 생성자 메서드, 컴포넌트가 생성됐을 때 가장 먼저 실행이 되고 pro

3일 전
·
1개의 댓글
·
post-thumbnail

교착 상태

교착 상태 교착 상태를 해결하는 것은 운영체제가 해야하는 중요한 임무이다. 교착 상태란 무엇일까? 프로세스를 실행하기 위해서는 자원이 필요하다. 두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다리면 둘 중 어느 프로세스도 더이상 진행할 수 없는 교착상태가 된다. 위의 이미지와 같이 게임 프로세스는 자원 A를 점유하고 있고, 웹 브라우저 프로세스는 자원 B를 점유하고 있다고 가정해보자. 그리고, 게임 프로세스는 자원 A를 점유한 채 자원 B의 사용이 끝나길 기다리고, 웹 브라우저 프로세스는 자원 B를 점유한채 자원 A의 사용이 끝나기를 기다리는 상황이 발생할 수 있다. 이 경우 두 프로세스는 계속해서 실행도 못한 채 서로 끝나기를 기다리게 될 것이다. 이를 교착상태라고 한다.

3일 전
·
0개의 댓글
·
post-thumbnail

[운영체제] CPU 스케줄링 알고리즘

CPU 스케줄링 알고리즘 선입 선처리 스케줄링 (FCFS 스케줄링 :First Come First Served Scheduling) > 선입 선처리 스케줄링 / FCFS 스케줄링 :준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식 선입 선처리 스케줄링은 호위 효과가 발생할 수 있다는 단점이 있다. 호위 효과(convoy effect) : 모든 다른 프로세스들이 하나의 긴 프로세스가 CPU를 양도하기를 기다리는 것 최단 작업 우선 스케줄링 (SJF 스케줄링 :Shortest Job First Scheduling) > 최단 작업 우선 스케줄링 / SJF 스케줄링 : 준비 큐에 삽입된 프로세스들 중 CPU이용 시간의 길이가 가장 짧은 프로세스부터 실행하는 스케줄링 방식 최단 작업 우선 스케줄링은 기본적으로 비선점형 스케줄링 알고리즘으로 분류되지만, 선점형으로 구현될 수 있다. ➡ `최소 잔여 시간 우

3일 전
·
0개의 댓글
·
post-thumbnail

네트워크 네트워크 계층

1. 네트워크 계층 > 네트워크 계층은 서로 다른 네트워크를 연결해 데이터를 전송하는 역할을 한다. 데이터 링크 계층에서는 이더넷 프로토콜을 기반으로 데이터를 전송했다. 그러나 동일한 네트워크 내에서는 데이터 전송이 가능해도 다른 네트워크로는 데이터를 전송하지 못한다는 한계가 있다. 네트워크 간의 통신을 가능하게 하는 것이 바로 네트워크 계층의 역할이다. 2. IP(Internet Protocol) 다른 네트워크로 데이터를 전송하려면 라우터라는 네트워크 장치가 필요하다. 그런데 데이터의 목적지를 알 수 없다면 라우터도 데이터를 보내지 못한다. 네트워크를 식별하는 IP 주소가 필요하다. IP 주소만 있으면 다른 네트워크로 데이터를 전송할수 있다. > IP주소는 어떤 네트워크의 어떤 컴퓨터인지 식별하는 주소다. IP 주소는 ISP(인터넷 서비스 제공자)에게서 받을 수 있다. 2-1. IP(Internet Protocol) 헤더 IP(Intern

3일 전
·
0개의 댓글
·
post-thumbnail

Unity 내일배움캠프 TIL 0927 | 프로그래머스 타겟 넘버 | 비트마스킹

오늘은 팀 프로젝트에서 디자인 때문에 하루종일 그림만 그린 관계로 .. TIL 주제는 아침에 풀었던 알고리즘! 타겟 넘버 > ### 문제 주어진 numbers 배열의 원소에 적절하게 + 또는 - 부호를 붙여서 모두 합했을 때 그 합이 target이 되는 경우의 수를 구하는 문제 생각의 흐름 음! DFS로 풀면 되겠군! 왜? numbers의 최대 길이가 20이므로 완전 탐색 가능 마이너스 부호를 붙일 숫자를 고르면 될 것 같다! 고른다? -> 부분 집합 -> DFS 시도 아침에 머리가 잘 안 돌아가서 DFS로 풀어내지 못했다. 사고방식이 자꾸 이상하게 돌아가서 점점 조건이 추가되고 너무 더럽게 풀어버려서 결국 시간 초과가 나버렸다!!! 정말.. 처참한 코드였고... 이미 지워버려서

4일 전
·
0개의 댓글
·

Port-security와 슈퍼넷팅, STP

Port-security > 특정 포트에 Port-Security 기능을 사용하여 포트에 학습할 수 있는 MAC주소의 수를 제한하거나 포트에 MAC 주소를 설정하여 허가된 MAC 주소만 접속 가능하도록 설정하는 것입니다. 출처 MAC 주소를 핸들링한다는 점에서 알 수 있듯이 L2에서 동작하는 개념이다. 특정 포트에 특정 MAC 주소를 매핑해서 안전한 MAC 주소값만 허용하는 개념 참고 슈퍼넷팅 (Supernetting) > Subnetting의 반대. 즉, 여러개의 작은 네트워크를 합쳐서 하나의 큰 네트워크를 만드는 것 따라서 이러한 경우 슈퍼넷팅이라 부른다. 10.0.0.0/24 + 10.0.1.0/24 + 10.0.

4일 전
·
0개의 댓글
·

[네트워크] 슬라이딩 윈도우, 파이프라이닝, TCP 3&4 way handshake, 흐름 및 혼잡 제어

목차 1. 슬라이딩 윈도우란? 2. Go Back N란? 3. Selective Repeat란? 4. TCP란? 5. 3 way handshake 개념 및 동작과정 6. 4 way handshake 개념 및 동작과정 7. 흐름 제어란? 8. 혼잡 제어란? 9. 빠른 재전송이란? 📌 신뢰적 데이터 전송의 원리 Sliding window 슬라이딩 윈도우란? [그림

4일 전
·
0개의 댓글
·
post-thumbnail

4.3 트랜잭션과 무결성

4.3.1 트랜잭션 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 데이터베이스에 접근하는 방법은 쿼리이다. 즉 여러 개의 쿼리들을 하나로 묶는 단위 ACID : 원자성, 일관성, 독립성, 지속성 원자성(atomicity) All or Nothing 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나 보장하는 특징 ex) 트랜잭션을 커밋 했는데, 문제가 발생하여 롤백하는 경우 그 이후에 모두 수행되지 않음을 보장 트랜잭션 단위로 여러 로직들을 묶을 때 외부 API를 호출하는 것이 있으면 안된다. 만약 있다면 롤백이 일어났을 때 어떻게 해야 할 것인지에 대한 해결

4일 전
·
0개의 댓글
·

디자인 패턴과 프로그래밍 패러다임 - 2

프로그래밍 패러다임 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론 선언형 : 무엇을 풀어내는가에 집중하는 패러다임. "프로그램은 함수로 이루어진 것이다" 함수형 : 순수 함수들을 블록처럼 쌓아 로지을 구현하고 고차 함수를 통해 재사용성을 높인 프로그래밍 패러다임. 함수가 일급 객체 순수 함수 : 출력이 입력에만 의존하는 것, 한 함수에 매개변수 a, b가 주어졌을 때에, 출력 결과가 a랑 b로만 영향을 받아야지 다른 전역 변수 c 같은 것에 영향을 받으면 안된다. 고차 함수 : 함수가 함수를 값처럼 매개변수로 받아 로직을 생성할 수 있는 것 이때 해당 언어가 일급 객체라는 특징을 가져야 함 변수나 메서드에 함수를 할당 가능 함수 안에 함수를 매개변수로 담기 가능 함수가 함수를 반환 가능 -

4일 전
·
0개의 댓글
·

[CS-study][네트워크] 3주차 (쿠키/세션/웹스토리지, 세션/토큰 기반 인증, JWT(JSON Web Token), OAuth)

쿠키/세션/웹스토리지 쿠키 쿠키는 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 작은 데이터 파일 사용자 인증이 유효한 시간을 명시 가능 세션 세션은 쿠키를 기반하고 있지만, 사용자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버 측에서 관리 세션 ID를 부여하며 웹 브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증상태를 유지 사용자에 대한 정보를 서버에 두기 때문에 쿠키보다 보안에 좋지만, 사용자가 많아질수록 서버 메모리를 많이 차지하게 됨 쿠키와 세션의 차이점 사용자의 정보가 저장되는 위치가 다름 세션의 서버의 처리가 필요하기 때문에 요청 속도가 더 빠르고 보안 면에서도 더 좋다. 하지만 무분별하게 만들다보면 서버의 메모리가 감당할 수 없다. 로컬 스토리지와 쿠키의 차이 1) 로컬 스토리지는 5MB~10MB 정도로 큰 양의 데이터 저장에 적합, 쿠키는 각각 약 4KB의 작은 데이터 크기를 가지고 있으며, 도메인

5일 전
·
0개의 댓글
·