본문 바로가기

전체 글

세마포어 (Semaphore) 세마포어 운영체제 리소스를 경쟁적으로 사용하는 다중 프로세스에서 상용하는 기술. 시스템 범위에 걸쳐 있고 파일 시스템상에서 파일 형태로 존재한다. 다중 프로세스 동기화 시키는 방식 이진수 외의 값을 가질 수 있다. -> 동기화 대상이 하나 이상일 때 사용 소유할 수 없으며, 다른 세모포어가 해제할 수 없다. 뮤텍스 프로세스 범위에서 사용되며, 해당 프로세스 종료시 자동으로 없어진다. Mutual exclusion 상호 배제, critical section을 가진 쓰레드들이 running time 겹치지 않게 하는 방법 locking & unlocking 사용 이진수 값만 갖는다. -> 동기화 대상이 하나 뿐일 때 사용하는 방식 소유가 가능하고, 소유주가 책임을 진다. critical section 다중 .. 더보기
Paxos Protocol 핵심 정리 최근 구글 서버의 에러가 잦는 일이 있었다. 구글에서 문제가 발생한 이유에 대해 설명글을 올렸고 그것을 보다가 Paxos protocol이라는 것을 처음 듣게 되어 공부해보았다. 구글 문서에 보면 distributed database에서 paxos protocol을 사용한다고 했다. 문맥상 분산 환경에서 사용하는 프로토콜이라는 것을 짐작해보았다. Paxos란? Paxos, 1989년 Leslie Lamport에 의해서 소개되었다. 팩소스는 신뢰할 수 없거나 실패할 수 있는 processers 네트워크에서 합의 문제를 해결하기 위한 프로토콜 그룹, 여러 노드 사이에서 하나의 값을 도출하기 위한 synod 알고리즘이다. 어떤 노드도 leader는 아님. leader가 없어서 발생하는 문제가 있다. livel.. 더보기
IT 용어 설명(7): 클라우드 서비스 안녕하세요, 오늘은 클라우드 서비스의 정의와 종류에 대해서 얘기해보려고 합니다. 많은 분들이 클라우드 서비스를 사용하고 있습니다. 네이버의 N 클라우드, 애플의 아이클라우드, dropbox 등이 있습니다. 이런 서비스 덕에 우리의 삶의 질도 많이 상승하였습니다. 과거보다 더 많은 데이터를 저장하고, 어디서나 접근할 수 있습니다. 저는 예전부터 NCloud에 휴대폰 사진을 계속 저장해놓고 있어, 과거 사진을 보고 싶으면 종종 들어가서 볼 수 있는 점이 좋다고 생각합니다. 일할 때에도, 클라우드에 피피티나 파일을 공유하기 너무 편리합니다. 클라우드 서비스란? 클라우드가 '구름'이라는 뜻입니다. 구름이 하늘에 떠있으면 특정 지역의 여러 사람들이 같은 구름을 볼 수 있습니다. 이런것과 같이 어떤 회사에서 어떤 .. 더보기
비개발자를 위한 IT 용어 설명(6): WWW 안녕하세요, 오늘은 WWW, world wide web에 대해서 얘기해보려고 합니다. 대부분의 사람들이 웹을 거의 매일 사용하고 있습니다. 하지만 웹이 뭐예요?라고 질문한다면 명쾌하게 대답하기 힘듭니다. world wide web을 웹이라고 간단하게 부르겠습니다. WWW이란? 전세계의 정보를 인터넷과 연결된 컴퓨터에서 접근할 수 있도록 하는 매개체입니다. 우리는 웹을 통해 문서를 검색하고, 원하는 문서를 볼 수 있습니다. 브라우저와는 다른 것입니다. 문서를 가져와 화면에 띄워주는 것이 브라우저고, 문서를 사용자와 연결시켜주는 매개체는 web입니다. Web의 역사 웹은 1980년대에 팀 버너 스리라는 사람에 의해서 만들어졌습니다. 처음에는 특정 집단(물리학자들)의 데이터를 공유하기 위해 만들어진 것이었습니.. 더보기
비개발자를 위한 IT 용어 설명(5): Github 안녕하세요, 오늘은 깃헙이라는 용어에 대해서 설명해보려고 합니다. IT 회사에 다니시는 분들이라면 꼭 한 번은 들어봤을 법한 용어입니다. Github과 Git 등의 용어들에 대한 설명과 이런 툴 혹은 기능들이 왜 필요한지에 대해서 설명할 예정입니다. Github란? Github란, 소프트웨어의 소스코드나 데이터를 저장하는 저장소입니다. 코드를 서버에 저장할 수 있는 시스템입니다. 그렇다면 여기서 떠오르는 질문이 있는데요, 다른 cloud 시스템으로도 소스코드나 데이터를 저장할 수 도 있는데 왜 깃헙 이유명해졌을까요? 다른 서비스들과 다른 점이 무엇일까요? 다른 서비스와 다른 점은 소스코드의 버전관리를 해준다는 것입니다. 소스코드의 버전 관리라... 사실 개발자가 아니면 쉽게 이해하기 어려운 부분입니다. .. 더보기
비개발자를 위한 IT 용어 설명(4): API 안녕하세요, 오늘은 API(Application Programming Interface) 즉, 응용 프로그래밍 인터페이스에 대해서 설명해보려고 합니다. API 라는 단어는 생각보다 우리주변에서 많이 사용하는 단어입니다. 물론 처음 들어보는 분들도 있으실거에요. 처음 들어보았다고 너무 겁먹지 말고 기본 개념만 알고 있어도, 각 상황에서 이런 의미구나 하고 알 수 있습니다. 그러니까 끝까지 읽어주세요. API란? 사용자나 다른 프로그램에서 특정 프로그램에 접근, 접속할 수 있게 도와주는 것입니다. 특정 프로그램에 많은 사람들이 접근하기 위해서는 프로토콜이라는 규약을 지켜서 요청을 보내고, 정해직 규칙대로 응답을 받을 수 있습니다. 쉽게 생각해보면, 특정 휴대폰을 충전하기 위해서는 휴대폰에 연결 가능한 단자가.. 더보기
비개발자를 위한 IT 용어 설명(2): OS(Operation System) 운영체제 안녕하세요, 오늘은 OS(Operation System)의 개념에 대해서 설명해보려고 합니다. Operation System, 운영체제라고 합니다. 매일 컴퓨터나 휴대폰을 사용하신다면 사실 우리는 OS를 매일 사용중(?)이라고도 볼 수 있습니다. 컴퓨터 관련 학과 전공에서도 한학기 수업으로 배울만큼 방대하고 복잡한 개념입니다. 오늘 최대한 이해하기 쉽게 정리해볼 예정입니다. 이전 글에서는 데이터베이스에 대한 개념을 설명해두었습니다. 이전글도 필요하면 참고해주세요. 2020/09/06 - 비개발자를 위한 IT 용어 설명(1): SQL 비개발자를 위한 IT 용어 설명(1): SQL 안녕하세요, 오늘은 SQL이라는 용어에 대해 설명해보려고 합니다. 코딩을 조금은 배웠다고 하면 SQL 언어를 사용해서 데이터 베.. 더보기
비개발자를 위한 IT 용어 설명(2): 데이터 베이스(Database) 안녕하세요, 오늘은 데이터 베이스(Database)라는 용어 설명을 해보려고 합니다. 요즘에는 많은 정보들을 컴퓨터에 저장합니다. 컴퓨터에 특정 정보를 저장한다는 것은 데이터 베이스에 해당 정보를 저장한다는 것을 의미합니다. 제가 블로그에 글을 쓰면 티스토리라는 블로그 서버 데이터베이스에 해당 글이 저장되는 것입니다. (서버라는 용어는 추후에 설명드리겠습니다) 데이터베이스라는 용어를 잘 모르더라도 우리는 일상에서 데이터베이스를 사용하고 있습니다. 데이터베이스란? 여러 사람들이 공유할 목적으로 데이터를 통합하고 관리해주는 시스템입니다. 한 공간에 데이터를 저장, 수정, 삭제할 수 있는 것이며, 여러 사람들이 공유하는 공간을 의미합니다. 지금 이 글을 여러 사람이 볼 수 있는 이유도 하나의 데이터베이스에서 .. 더보기