DB 트랜잭션과 격리수준, 격리수준을 구현하기 위한 방법들
데이터시스템에는 여러가지 문제가 생길 수 있다. 데이터베이스로의 쓰기 연산 실패, 데이터 조작 중 어플리케이션 다운, 애플리케이션과 데이터베이스 간 네트워크 통신 장애, 데이터베이스로의 동시 쓰기 등 여러가지 결함이 발생할 수 있다. 이러한 결함이 발생할 때면 데이터베이스 내 데이...
데이터시스템에는 여러가지 문제가 생길 수 있다. 데이터베이스로의 쓰기 연산 실패, 데이터 조작 중 어플리케이션 다운, 애플리케이션과 데이터베이스 간 네트워크 통신 장애, 데이터베이스로의 동시 쓰기 등 여러가지 결함이 발생할 수 있다. 이러한 결함이 발생할 때면 데이터베이스 내 데이...
컴퓨터 내부 장치들은 연산장치와 기억장치로 나누어진다.(+ 주변장치) 연산장치에는 CPU와 GPU가 존재하며, 기억장치로는 RAM, SSD, HDD 등이 있다. 연산장치는 일꾼으로 주어진 명령을 처리하는 역할을 할 뿐이며, 그 자체로 최대 처리 속도가 정해져있다.
HashTable(이하 해시테이블)은 데이터를 저장하고 빠른 검색을 하기위한 자료구조이다. 해시테이블에 데이터를 저장할때 키 값을 간단한 계산을 거쳐 인덱스로 만들고 해당 인덱스에 데이터를 저장한다.
프로세스 간의 협력, 분산 처리를 위해 멀티 프로세싱을 이용한다. 하지만 각각의 프로세스가 자신만의 메모리 공간을 가지고 있기 때문에 직접적으로 데이터를 공유할 수 없다. 따라서 자원을 공유하고 통신하기 위한 방법이 필요하다. 이러한 프로세스간 통신을 위한 방법을 IPC(Inter...
운영체제는 다수의 프로세스를 효율적으로 실행하기 위해 프로세스의 생명주기를 제어하는 프로세스 스케줄링 기능을 수행한다. 프로세스 스케줄링은 역할별로 단계를 나누어 new, ready, running, wait, suspend 상태로의 이전을 관리한다.
Stack Stack(스택) 자료구조는 이름 그대로 쌓아올리다와 같은 의미이다. 예를 들어, 책상위에 쌓인 책과 비슷한 구조라고 할 수 있다. 밑에서 책을 차곡차곡 올리고 뺄때는 위에서부터 빼낸다. 이러한 구조를 후입선출(LIFO, Last-In-First-Out) 구조라고 부른다...
Array와 List는 다수의 데이터를 저장하고 조작하는 기본적인 자료구조이자 다른 자료구조들을 구현하기 위해 중요한 자료구조이다.
우리가 컴퓨터를 사용할때 브라우저, 카카오톡 등 여러가지 응용 프로그램을 사용한다. 각 프로그램들은 실행되기 위해서 메모리 공간과 자원을 할당받아야하고 실행된 후에도 지속적으로 관리되어야 하는데 이와 같은 과정을 운영체제가 처리해준다. 즉, 운영체제는 메모리와 CPU를 사용하여 프...
자료구조는 다수의 데이터를 시간,메모리 효율적으로 처리할 수 있도록 도와준다. 자료구조의 성질을 잘 알고 있다면 상황에 맞춰 필요한 자료구조를 사용함으로써 효율적인 처리가 가능할 것이다. 다수의 데이터들을 효율적으로 처리하기 위한 여러가지 메커니즘, 자료구조에 대해서 알아보자
네트워크 액세스 계층(물리 계층 + 데이터 링크 계층)은 연결된 장치들 간에 직접적으로 통신을 하며 제어하는 역할을 한다. 바로 윗 계층인 인터넷계층이 경로를 확인한다면 탐색된 경로로 데이터를 내보내는 것이다. 이 계층에서는 통신 중 발생하는 문제들을 제어하는 기능을 가지고 있다....
IP는 총 32비트로 이루어진 주소체계다. 인터넷이 빠르게 발전함에따라 기존에 존재하는 IP 주소가 부족해지기 시작했다. 이에 여러가지 해결책들이 제시되었고 공식적으로 사용하고 있다.
인터넷(네트워크) 계층은 IP 주소를 이용해 최종 목적지까지 이동하는 역할을 맡는다. 방대한 인터넷에서 네트워크 간의 이동을 라우터가 처리해주며 그 과정에서 IP를 이용한다. 인터넷 계층의 핵심 프로토콜인 IP와 경로 라우팅을 위한 핵심 장비인 라우터에 대해서 알아보자.
네트워크의 여러 장비들을 거쳐 데이터 통신을 하는 방식에는 대표적으로 두 가지 매커니즘이 존재한다. 회선을 독점하여 사용하는 회선교환 방식과 데이터를 패킷으로 나누어 전송하는 패킷교환 방식이다.
앞선 포스트에서 TCP가 원활한 소통을 위해 흐름제어, 혼잡제어, 오류제어라고 불리는 전송제어방법을 사용하고 있다고 했다. 이번 포스트에서는 각 제어방법들이 가지고 있는 여러가지 메커니즘을 알아보자.
전송계층은 네트워크에서 데이터를 안정적으로 전송하기 위한 계층으로 신뢰성 있는 데이터 전송을 보장하는 역할을 한다. 전송계층의 아래계층들은 목적지 컴퓨터까지 전송을 해주는 역할을 하지만 목적지 도착 이후에 데이터의 확인을 하지는 않는다. 전송계층은 양 끝단에서 수문장의 역할로서 데...
OSI 7계층, TCP/IP 4계층 두 용어는 네트워크의 동작과정을 설명해주는 대표적인 모델들이다. 두 모델의 공통적인 특징은 역할을 계층으로 나누어 설명하고 있다는 것이다. 이러한 모델은 복잡한 네트워크의 원리를 쉡개 이해할 수 있도록 도우며 네트워크 동작 과정 중 문제가 생겼을...
원하는 사이트에 접속하기 위해 주소창에 www.naver.com, www.youtube.com등의 도메인을 입력하면 화면이 브라우저 창에 띄워진다. 우리는 인터넷상에서 서버의 위치를 찾기 위해선 IP주소가 필요하다는 것을 알고 있다. 그렇다면 어떻게 도메인 주소만으로 IP를 찾아낼...
HTTP(Hpyertext Transfer Protocol)는 인터넷에서 데이터를 전송하기 위한 프로토콜이다. 클라이언트와 서버 간의 상호작용을 위해서 설계되었고 인터넷상에서 여러가지 타입의 리소스들을 주고받을 수 있다.
기존 HTTP 방식은 전송 중 데이터를 가로챈다면 누구나 데이터를 읽을 수 있다. 즉, 데이터가 암호화되지 않은 상태로 인터넷상에서 돌아다닌다는 것이다. 이러한 보안문제를 해결하기 위해 통신데이터를 암호화하여 안전하게 데이터를 통신하는 방법이 HTTPS이다. HTTPS를 사용하면 ...
HTTP(Hyper Text Transfer Protocol)는 인터넷상에서 데이터를 주고받기 위한 프로토콜이다. HTTP는 오래전부터 인터넷상에서 사용되어져 왔는 만큼 여러 버전이 나오며 개선되어졌다. 현재는 대부분 HTTP 1.1을 사용하며 몇몇 IT기업에서는 2.0, 3.0까...
운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하고 사용자가 컴퓨터를 편리하게 사용할 수 있도록 도와준다. 응용프로그램, I/O디바이스들이 사용하고자 하는 하드웨어 자원들을 효율적으로 사용할 수 있도록 그 사이에서 자원관리를 한다고 볼 수 있다. 운영체제의 역할을 정리하자면 아...
운영체제는 프로그램들을 동작시키기 위해 하드웨어 리소스들을 할당받아 사용한다. 뿐만아니라 프로세스를 관리하고 메모리를 효율적으로 사용하기 위해 여러 가지 기술들을 사용한다. 우리들의 프로그램이 시작될때 운영체제에서는 어떤 일이 일어날까? 그 과정을 이해해보자.
네트워크란 무엇일까? Net와 Work의 합성어로써 컴퓨터들이 통신기술을 이용하여 그물망처럼 연결된 형태이다. 우리는 다른 사람들에게 파일을 공유하거나 어플리케이션을 이용하여 음악을 듣고 온라인에서 다른 사람을 만나 게임을 즐길 수 있다. 이 모든 것은 컴퓨터끼리 연결된 네트워크가...
브라우저 주소창에 https://www.naver.com 을 검색하면 어떤 과정을 거치게 될까? 내 컴퓨터에서부터 목적지를 찾아 이동하고 필요한 정보들을 받아온다. 이 과정에서 여러 장치들을 거치고 안정적인 커뮤니케이션을 위한 여러 기술들이 사용된다. 검색 후 우리들의 노트북에 화...