CS지식
-
메모리 주소란 무엇인가CS지식/운영체제 2021. 6. 12. 22:57
오늘 알아 볼 메모리 주소에서 말하는 메모리는 메인메모리, RAM에서의 주소에 대해 알아볼 것이다. 메모리 주소를 알아보기 전, 메모리에 대해 간단히 알아보자. 메모리는 CPU가 작업을 수행하는 데 있어 필요할 때 직접 액세스 할 수 있도록 운영 체제, 응용 프로그램 및 기타 정보등을 저장하는 하드웨어이다. CPU의 작업공간으로서 메모리의 용량도 중요하지만 메모리를 관리하는 방법이 CPU의 성능에 큰 영향을 미친다. 메모리는 크게 2가지의 영역으로 구분되는데 운영체제 영역과 사용자 영역이 있다. 운영체제는 중요한 역할을 하기 때문에 사용자가 운영체제 영역을 침범하지 못하도록 분리하여 메모리를 사용한다. 사용자 프로세스는 메모리에 들어올 때 운영체제 영역으로 지정된 영역 이외의 사용자 영역에 저장된다. 위..
-
클라이언트 식별이란 무엇인가?CS지식/네트워크 2021. 6. 11. 22:23
웹 서버는 수 많은 클라이언트들과 동시에 통신해야하는 경우가 발생할 수 있다. 이러한 경우에 웹 서버는 클라이언트의 요청을 모두 처리해야할 뿐만 아니라 어떤 클라이언트와 통신하는지 알아야 한다. 왜 클라이언트를 식별해야하고 식별하면 무엇이 좋을까? 클라이언트를 알고 있다면 각각의 클라이언트에게 맞춤 서비스를 제공할 수 있고 클라이언트가 매번 입력해야하는 정보(주소나 결제에 자주쓰는 수단 정보 등)을 데이터베이스에 저장하여 저장된 클라이언트 정보를 사용할 수 있다. 하지만, HTTP를 사용하여 통신을 하게 되면 HTTP는 stateless(연결에 대한 정보가 없고 매 요청은 독립적으로 처리)이기 때문에 통신하고 있는 상대방이 누구인지 알 수 없다. 그러면 어떻게 HTTP 통신에서 클라언트를 식별할 수 있을..
-
정규화란 무엇인가?CS지식/데이터베이스 2021. 6. 10. 23:34
정규화는 데이터베이스에 존재하는 릴레이션(테이블)에 무언가를 가하고 만지며 정규(정식으로 된 규정)화 한다는 것인데 무엇을 하고 왜 하는 것일까? 정규화의 개념을 보면 무엇을 하고 왜 하는 것인지 알 수 있다. 정규화란 이상 현상이 발생하는 테이블의 설계를 수정하여 정규 테이블로 만드는 과정이다. 정규 테이블이라는 것은 관계형 데이터베이스에 저장될 데이터의 중복이 최소화된 구조를 뜻한다. 그러면 이상 현상은 무엇일까? 이상 현상은 데이터를 삽입, 삭제, 수정을 할 때 사용자의 예상 외의 현상이 발생하여 데이터의 일관성이 깨지는 현상이다. 이상 현상에는 삽입 이상, 삭제 이상, 갱신 이상이 있다. 삽입 이상은 데이터 삽입 시 특정 속성(attribute)에 해당하는 값이 없어 필요하지 않은 NULL 값을 ..
-
교착 상태란 무엇인가CS지식/운영체제 2021. 6. 9. 22:31
교착 상태는 시스템 내에서 2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 자신의 작업을 더 이상 진행하지 못하는 상태를 말한다. 교착 상태가 어떻게 보면 프로세스가 작업을 진행하지 못한다는 면에서 Starvation과 비슷해 보일 수 있다. 하지만, Starvation은 운영체제의 정책에 의해 특정 프로세스가 작업을 진행하지 못하는 것이고 교착 상태는 프로세스들이 작업을 진행하다가 자연스럽게 발생하는 현상이다. 그래서 Starvation은 발생하지 않도록 새로운 정책을 추가해서 해결할 수 있지만 교착 상태는 운영체제가 상황을 감시하다가 교착 상태가 발생하면 강압적으로 해결해야한다. 교착 상태가 발생할 수 있는 여러 경우가 있는데 그 중 시스템 자원, 공유 변수, 응용 프로그램을 사용할 ..
-
게이트웨이(Gateway)란 무엇인가?CS지식/네트워크 2021. 6. 8. 16:11
웹은 점점 사용자 수가 많아지고 처음에는 간단한 문서를 전달하는 용도였으나 사용자의 요구사항이 많아지면서 복잡한 기능을 구현해야했다. 이에 따라 더 복잡한 리소스(동적 페이지나 데이터베이스를 통한 콘텐츠 등)가 요구되기 시작했고 모든 리소스를 한 개의 애플리케이션으로만 처리하기 어려워졌다. 이를 해결하기 위해 게이트웨이를 만든 것이다. 게이트웨이는 누군가(클라이언트, 서버)에게 요청을 처리해달라는 부탁을 들어줘야하고 요청에 대한 응답을 할 수 있다. 이러한 게이트웨이는 동적인 콘텐츠를 생성하거나 데이터베이스에 질의를 보낼 수 있다. 또한, HTTP 트래픽을 다른 프로토콜로 변환하여 클라이언트가 다른 프로토콜을 알 필요 없이 서버에 접속할 수 있게 하는 역할을 한다. 아래의 예시 그림을 보자. 클라이언트는..
-
ER 모델이란 무엇인가?CS지식/데이터베이스 2021. 6. 7. 23:12
ER(Entity-Relationship model)은 개념적 데이터 모델의 대표적인 모델로 개체와 개체 간의 관계를 이용하여 현실세계를 개념적 구조로 표현하는 방법이다. 여기서 말하는 개체(entity)는 어떠한 각자만의 의미를 가진 동물이나 사물 또는 형태가 없는 개념과 사건을 뜻한다. 이러한 개체에는 개체를 나타내는 특성이 있을텐데 그 특성을 속성(attribute)라 한다. ER모델이 무엇인지 아래의 그림을 보며 이해해보자. 사람이라는 개체와 음식이라는 개체가 존재한다. 두 개체는 사람이 음식을 먹는다라는 관계를 가지고 있다. 이렇게 개체와 개체 간의 관계로 표현하는 것이 ER모델이다. ER모델을 사람들이 보기 쉽고 이해하기 쉽게 나타낸 것이 ERD(ER Diagram)이다. ERD는 직사각형, ..
-
프로세스 간 통신(IPC)란 무엇인가CS지식/운영체제 2021. 6. 6. 23:18
프로세는 시스템 내에서 자신이 가진 code, stack, data를 쓰면서 독립적으로 실행되기도 하지만 프로세스끼리 서로 데이터를 주고받으며 협업하기도 한다. 여기서 프로세스끼리 데이터를 주고받기 위해 프로세스 간 통신(이하 IPC)이 이루어지고 IPC에는 같은 컴퓨터 내에 있는 프로세스끼리 통신 뿐만 아니라 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와도의 통신도 의미한다. 이러한 프로세스 간 통신에는 여러 종류가 존재한다. 1) 전역 변수를 이용한 통신 전역변수를 이용한 통신은 공동으로 관리하는 메모리를 사용하여 데이터를 주고받는 것으로 송신측은 전역변수에 데이터를 쓰고, 수신측은 전역변수의 값을 읽어 통신이 이루어진다. 주로 직접적으로 관련이 있는 프로세스 간에 사용되는 통신방식이다. 예를 들어..
-
캐시(Cache)란 무엇인가?CS지식/네트워크 2021. 6. 5. 21:50
캐시를 한 마디로 표현하면 웹에서 자주 쓰이는 리소스의 사본은 자동으로 보관하는 HTTP 장치이다. 캐시는 어떠한 이유로 나타나게 된 것일까? 먼저 캐시가 없는 보통의 환경을 생각해보자. 클라이언트가 여럿 존재하고 리소스를 가지고 있는 서버가 존재할 것이다. 여러 클라이언트가 자주 쓰는 페이지가 존재한다면 페이지에 접속할 때마다 항상 서버에 요청을 보내고 서버는 같은 리소스를 클라이언트들에게 매 번 보내야 된다. 똑같은 바이트들이 네트워크를 통해 전송이 이루어지면 네트워크 대역폭이 소모되고 웹 서버에 부하를 주게 된다. 이러한 점을 개선하기 위해 나온 것이 캐시이다. 클라이언트와 가까운 곳에 캐시를 두어 자주 요청되는 리소스의 사본을 저장하고 추후에 같은 요청에 대해서는 캐시에서 응답을 줄 수 있기 때문..