목록Computer Science (88)
ecsimsw
Cache 매번 느린 메인 메모리에서 instruction을 가져오는 것이 아닌 프로세서와 메인 메모리 사이에 위치하여 자주 사용하는 명령어를 더 빠르게 가져올 수 있도록 하는 기술이다. instruction을 fetch 할 때, 특히 같은 구간을 반복해서 fetch 할 때, memory안 어떤 주소의 데이터(명령어)가 바뀌지 않는다면 메모리에서 바로 명령어를 가져오는 것이 아닌 좀 더 작고 빠른 장치에서 해당 주소에 해당하는 데이터를 기억해 두었다가 꺼내쓸 수 있는 임시 공간을 만들어서 메모리 접근을 줄인다. 고속의 장치는 비싸다. 가격이 비싸거나, 용량이 적거나, 발열이 크다. 다른 조건(가격, 발열)을 동일하게 한다면 고속의 저장 장치는 더 작은 공간을 갖게 된다. 그 말은 즉 모든 메모리의 데이터..
Pipelining 기존의 파이프라인을 적용하지 않은 멀티사이클 방식은, 한 명령어를 처리하고 그 이후에나 다음 명령어를 처리시켜 ALU를 사용 시에는 메모리가 쉬고, 메모리를 사용 시에는 ALU가 쉬었다. 즉 명령어의 단계 외의 다른 컴포넌트가 IDLE 상태로 처리를 대기하는 식이었다. 파이프라이닝은 여러 명령어를 중첩하여 명령어 처리 단계를 병렬 실행시키는 기술이다. 한 사이클 안에서 여러 명령어를 동시에 처리하여 쉬는 컴포넌트 없이 작업하여 더 효율적인 처리를 가능토록 한다. 위 그림에서의 예시라면 위의 파이프라인을 적용하지 않은 프로세서는 3개의 LW 명령어를 처리하는데 2400ps의 시간을, 아래 파이프파인을 적용한 프로세서는 약 1400의 시간을 사용한다. 이때 3개의 명령어가 아닌, 명령어를..
Slack으로 Github 알림 받기 / Github 앱 설정하기 팀 프로젝트를 진행하면서 깃헙의 알림을 메일이 아닌 자주 사용하는 메신저로 받을 수 있는 방법을 찾게 되었다. 특히 이슈를 올렸을 때 즉각 확인할 수 있도록 하고 싶었다. 슬랙의 Github 앱을 사용하면 지정한 레포지토리의 이벤트를 알림으로 받을 수 있다. 또는 슬랙 내에서 issue를 close하거나 새로운 이슈를 등록할 수 있다. 특히 레벨3에서 협업 미션을 진행하고 있는 다른 우테코 팀들에게 추천하고 싶어 글을 작성하게 되었다. Github App 설정하기 1. Slack Github App을 추가한다. 2. 알림을 받을 채널을 선택한다. 슬랙 앱 추가할 때 Select Channels 설정에서 알림 받을 채널을 설정할 수 있다. ..
쿠기로 로그인을 한다면 로그인 1. [C] 사용자가 입력한 ID,PW를 서버에 전송 2. [S] 사용자 정보가 맞다면 맞다는 응답 or 사용자 정보 응답 3. [C] 사용자 정보를 쿠키에 저장 사용자 정보가 필요한 요청 5. [C] 요청 헤더에 쿠키 추가 6. [S] 해당 쿠키로 사용자 정보 확인 7. [S] 사용자 정보로 요청 처리 위험 사항 쿠키 정보를 확인하는 것으로 사용자 정보를 확인할 수 있다. 추가 보안 로직이 없다면 쿠키를 탈취하는 것만으로도 사용자 정보가 필요한 요청에서 사용자를 흉내낼 수 있다. 세션으로 로그인을 한다면 로그인 1. [C] 사용자가 입력한 ID,PW를 서버에 전송한다. 2. [S] 사용자 정보가 맞다면 세션 생성, 서버에 저장 (SESSIONID - INFO) 3. [S]..
IP 주소가 부족하진 않을까? 2018년 말 기사를 보니, 010으로 시작하는 휴대폰 번호의 80% 이상이 이미 사용되어 고갈 시를 대비하고 있다고 한다. IP주소도 비슷하다. 엄청난 양의 노드가 생겼고, 앞으로는 더 많이 생길 것이다. 그렇게 되면 IP 주소가 부족하진 않을까? 서브넷팅 IPv4 주소는 네트워크 주소와 호스트 주소로 영역이 분리되어 있다. 32비트 중 일부는 네트워크 영역, 일부는 호스트 영역인 것이다. 이를 서브넷팅이라고 한다. 한 네트워크에 속하는 호스트의 개수를 줄여 라우팅 정보를 줄이기 위함이다. 다음과 같은 상황을 생각해보자. 한 택배 회사가 배송지를 분담하려고 한다. 지금까지는 '시', '구' 단위로만 택배를 처리해야 했다. 지금까지는 그렇게 불만이 없었는데, 어느 날 어떤 ..
IP주소가 있는데 MAC 주소가 왜 필요해? 제목에 많은 고민을 했다. IP 주소가 있는데 MAC 주소가 필요한 이유, MAC 주소와 IP 주소의 차이 등등,, 결론부터 말하면 이 글은 MAC 주소와 IP 주소가 둘 다 필요한 이유를 담고 있다. 나처럼 IP 주소나 MAC 주소 하나만으로 데이터 전달 목적지를 정하면 안 될까 하는 궁금증을 가진 독자들에게 내가 생각한 그 이유를 설명하고자 한다. 사용 계층이 다르다. IP 주소와 MAC 주소를 사용하는 계층이 다르다. IP 주소는 Network layer에서, MAC 주소는 Data Link 계층에서 사용된다. 위 그림의 Network 계층과 Data Link 계층의 프로토콜에서, Ethernet과 IP만 익숙하겠지만 실제로는 더 다양한 프로토콜이 존재한..
웹 사이트에 접속하는 과정 구글에 접속하는 방법은 쉽다. 주소창에 https://www.google.com 만 입력하면 된다. google.com 이 ip주소가 아니라는 건 안다. 우리가 봐온 ip주소는 192.168.151.112 같은 숫자 꼴이었으니 말이다. 이런 google.com, naver.com처럼 ip 주소를 문자로 표현할 수 있도록 하는 서비스를 DNS(Domain Name System)이라고 하고 그 문자열을 도메인이라고 한다. 이번 포스팅에서는 대충 DNS 서버로부터 ip주소를 얻어 서버에 페이지 리소스를 요청하고 응답받는다는 대답 말고, 조금 더 깊게 데이터를 요청하고 응답하기까지의 과정을 TCP/IP 모델의 역할과 함께 설명하고자 한다. 1. 목적지 ip 주소 확인 도메인 주소가 입..
Disk scheduling - 어떤 알고리즘으로 헤드를 움직여야 가장 효율적인 방식으로 디스크 큐의 request를 처리할 수 있을지에 대한 고민. FCFS (first come, first served) - 먼저 온 것부터 처리하면 간편하고, 공정하지만 다음 요청을 무시한 체 헤드를 왔다 갔다 움직여 비효율적이다. SSTF (shortest seek time first) - 현재 헤드의 위치에서 가장 가까운 위치의 요청부터 처리한다. - 큐에 요청이 계속 들어오고, 한 쪽으로 헤드가 편향되면서 starvation이 발생한다. SCAN - 헤드를 디스크 전체를 스캔하는 방식으로 큐의 작업을 처리해간다. - SCAN, C_SCAN, Look Scan, C_look Scan 방식이 있다. 1. SCAN :..