분류 전체보기
-
[DB] NoSQL이란?DB 2016. 6. 26. 13:39
NoSQL 이란 NoSQL은 "Not Only SQL" 이라고도 불린다. 우리가 익숙하게 사용하고있는 RDBMS 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미한다. 일반적인 DBMS로 처리하기에 비용이 많이 들거나 효과적이지 못한 부분을 해결할 목적으로 개발되었고 대용량의 로그 처리나 Write가 많은 경우에 사용되지만, 제품에 따라 각기 그 특성이 매우 달라서 NoSQL을 하나의 제품군으로 정의할 수는 없다.NoSQL 등장 배경빅 데이터 시대를 맞이하여 서비스를 제공하는 시스템에서 많은 양의 데이터를 효율적으로 처리가 필요하게 되었다. 이로인해 데이터의 분산처리( 샤딩 ), 빠른 쓰기 및 데이터의 안정성 ( 복제 ) 즉, 분산형 구조를 통해 데이터를 여러 대의 서버에 분산해 저..
-
Page Replace Algorithm공부/OS 2016. 6. 26. 13:07
Page Replace Algorithm이란?Virtual memory system에서 페이지 부재(page fault)가 발생했을때 주기억장치(메모리)의 모든 페이지 프레임이 사용중이라면 어느 페이지 프레임을 교체할 지 결정하는 알고리즘FIFO(First In First Out)페이지 교체 시, 메모리에 올라온지 가장 오래된 페이지를 내쫓는다.장 점: 가장 간단한 페이지 교체 알고리즘 단 점:가장 오래된 페이지가 초기화 모듈이라면 성능이 저하될 수 있음Belady의 모순(Belady's anomaly)프로세스에게 프레임을 더 주었는데 오히려 페이지 부재율이 더 증가하는 현상OPT(Optimal)앞으로 가장 오랜 동안 사용되지 않을 페이지를 찾아 교체한다 장 점: 모든 알고리즘보다 낮은 페이지 부재율 B..
-
가상 메모리 (virtual memory)공부/OS 2016. 6. 26. 13:00
프로세스와 가상 메모리모든 프로세스는 자신만의 가상 주소 공간을 가지고 있다. 32비트/64비트 프로세스는 각 비트수에 맞게 최대 4GB/16GB의 주소 공간을 가진다.모든 프로세스들은 자신만의 주소 공간을 가지기 때문에, 특정 프로세스 내에서 쓰레드가 수행될 때 해당 쓰레드는 프로세스가 소유하고 있는 메모리에 대해서만 접근이 가능하다. 다른 프로세스에 의해 소유된 메모리는 숨겨져 있으며, 접근이 불가능하다.따라서, A 프로세스가 0x12345678 주소에 무엇인가를 저장하였지만, B 프로세스 역시 0x12345678 주소에 무엇인가를 저장할 수 있으며, 이 주소들은 완전히 독립되어 있는 것이다.즉, 가상 메모리는 프로세스의 logical memory와 physical memory를 분리하기 위해 생겨난..
-
데드락(Deadlock)공부/OS 2016. 6. 25. 22:34
데드락이란?프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태예를 들어 P1과 P2가 리소스 A,B 둘 다를 얻어야 한다고 가정한다. t1(첫 번째 시간)에 P1이 리소스 A를 얻고 P2가 리소스 B를 얻었다면 t2(다음 시간)때 P1은 리소스 B를, P2는 리소스 A를 기다리게 된다. 하지만 서로 원하는 리소스가 상대방에게 할당되어 있기 때문에 이 두 프로세스는 무한정 기다리게 되는데 이러한 상태을 DeadLock상태라고 한다.데드락 발생 조건데드락은 아래 네 가지 조건이 동시에 성립 할 때 발생한다. 즉, 아래의 네 가지 조건 중 하나라도 성립하지 않도록 만든다면 데드락을 해결할 수 있다.상호 배제 (Mutual exclusion)자원은 한 번에 한 프로세스만이 사용할 수 있어야 한다점유 대기..
-
스핀 락(Spin lock), 크리티컬 섹션(Critical section), 세마포어(Semaphore), 뮤텍스(Mutex)공부/OS 2016. 6. 25. 22:33
스핀 락Spin Lock 은 이름이 뜻하는대로, 만약 다른 스레드가 lock을 소유하고 있다면 그 lock이 반환될 때까지 계속 확인하며 기다리는 것이다. "조금만 기다리면 바로 쓸 수 있는데 굳이 컨텍스트 스위칭으로 부하를 줄 필요가 있나?" 라는 컨셉으로 개발된 것으로 크리티컬 섹션에 진입이 불가능할때 컨텍스트 스위칭을 하지 않고 잠시 루프를 돌면서 재시도 하는 것을 말합니다. Lock-Unlcok 과정이 아주 짧아서 락하는 경우가 드문 경우(즉; 적절하게 크리티컬 섹션을 사용한 경우) 유용하다. Spin Lock 은 다음과 같은 특성을 갖는다.Lock을 얻을 수 없다면, 계속해서 Lock을 확인하며 얻을 때까지 기다린다. 이른바 바쁘게 기다리는 busy wating이다.바쁘게 기다린다는 것은 무한 ..
-
OS공부/OS 2016. 6. 25. 22:32
OS란?컴퓨터의 하드웨어와 소프트웨어를 제어하며, 사용자가 컴퓨터를 쓸 수 있게 만들어주는 프로그램OS의 목표어플리케이션을 위한 기본 실행 환경을 제공해 사용자의 프로그램을 정확하게 실행컴퓨터 시스템을 편리하고 효율적이고 안전하게 사용할 수 있게 만듬OS의 관점resouce allocator - 컴퓨터 시스템의 자원(소프트웨어, 하드웨어)를 할당해주고 이것들을 효율적으로 관리control program - 사용자 프로그램 실행과 I/o 장치 실행을 통제한다.kernel - 컴퓨터 운영체계의 가장 중요한 핵심으로서 운영체계의 다른 모든 부분에 여러 가지 기본적인 서비스를 제공한다.멀티 프로세스/ 멀티 테스킹 : 여러 작업은 동 시간에 메인메모리 안에서 유지되고 이러한 프로세스들은 cpu time, I/o ..
-
Memcached, Redis캐시시스템 2016. 6. 25. 15:37
MemcachedMemcached란?무료로 사용할 수 있는 오픈소스이며 분산 메모리 캐싱 시스템데이터 베이스의 부하를 줄여 동적 웹 어플리케이션의 속도개선을 위해 사용되기도 함DB나 API호출 또는 렌더링 등으로부터 받아오는 결과 데이터를 작은 단위의 key - value 형태로 메모리에 저장하는 방식Memcached는 필요량보다 많은 메모리를 가졌을 때, 시스템으로부터 메모리를 사용하고 필요로하는 메모리가 부족한 경우 이를 더 쉽게 가져다 사용할 수 있도록 만들어 줌Memcached 사용여부에 따른 메모리 운영방식 Memcached를 사용하지 않을 땐 분리되어 있는 메모리에 대해 각각의 서버에서 사용할 수 있는 것은 할당된 메모리 크기만큼인데 Memcached를 적용할 경우에는 논리적으로 결합되어 있기..
-
[Django] model 내 DateTimeField 사용시 RuntimeWarning: DateTimeField received a naive datetime 에러언어/파이썬 & 장고 2016. 6. 25. 11:28
장고에서 제공하는 모델을 사용하여 개발할 때, settings.py에 아래와 같이 설정이 되어 있을 것입니다.LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Asia/Seoul' USE_I18N = True USE_L10N = True USE_TZ = True pgsql 테이블 내 컬럼 타입이 timestamp without time zone인 것을 테이블 스키마를 장고로 inspectdb를 할 시, DateTimeField로 정의가 됩니다.그리고 사용자는 해당 컬럼에 대해 datetime.now()와 같이 값을 넣을 때, 문제가 발생합니다.settings.py 에 정의 된 것처럼, timezone이 서울로 되어 입력이 되어야 하지만, 실제 들어간 데이터를 확인해 보면 UTC기준으로 입..
-
x86 서버, 블레이드 서버, 랙 마운트 서버서버 2016. 6. 25. 11:12
x86 서버란x86서버란 데이터센터내의 각 서버x86서버는 x86 CPU를 기반으로 작동하는 서버를 말한다. x86 CPU는 과거에는 PC를 위해 만들어졌는데, 시간이 흐른 뒤에 서버에서도 사용되기 시작했다. PC보다 작업량이 많은 서버에서 x86 CPU는 제 역할을 하지 못했다. 불안정하고 오류가 쉽게 발생했기 때문이다. 그러던 중 인텔이 아예 서버와 워크스테이션을 위한 CPU ‘제온’을 출시하면서 x86서버 기능은 조금씩 나아지기 시작했다. AMD에서도 ‘옵테론’과 같은 서버용 CPU에 투자하기 시작했다. 이러한 기술 발전 때문에 x86서버는 성능이 향상됐고, 서버 시장에 주류 제품군으로 자리잡고 있다.x86 서버의 주요 형태는 블레이드와 랙마운트가 있다. x86서버 vs 유닉스 서버서버 시장은 크게..
-
공인 IP, 사설 IP, 고정 IP, 유동 IP공부 2016. 6. 23. 19:52
1. IP 주소란?먼저 IP 주소가 무엇인지를 알아보자. IP 주소란 위키백과에 다음과 같이 정의되어 있다.IP 주소(Internet Protocol address, 표준어: 인터넷규약주소)는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호이다. 네트워크에 연결된 장치가 라우터이든 일반 서버이든, 모든 기계는 이 특수한 번호를 가지고 있어야 한다. 이 번호를 이용하여 발신자를 대신하여 메시지가 전송되고 수신자를 향하여 예정된 목적지로 전달된다. IP 주소를 줄여서 IP라고 부르기도 하나 IP는 인터넷 규약 자체를 가리키는 말이기 때문에 엄밀하게는 구별해야 한다.요약하자면 IP 주소란 인터넷에 접속하기 위해 컴퓨터나 스마트폰 등에 부여하는 고유한 주소라고 정의할 수 있..