분류 전체보기
-
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 주소란 인터넷에 접속하기 위해 컴퓨터나 스마트폰 등에 부여하는 고유한 주소라고 정의할 수 있..
-
쓰레드(thread)와 프로세스(process)공부 2016. 6. 23. 19:43
Thread란하나의 프로그램내에서 여러 개의 실행 흐름을 두기 위한 모델하나의 프로세서(실행 중인 프로그램)에서 각 독립적인 일의 단위인 스레드(Thread)로 여러 작업을 처리할 수 있다. 즉 하나의 프로세서에서 병렬적으로 여러 개 작업을 처리하기 위해서는 각 작업을 스레드화하여 멀티스레딩이 가능하게 해야 한다.Process란간단하게 말하면 실행중인 프로그램.프로세스는 사용 중인 파일, 데이터, 프로세서의 상태, 메모리 영역 주소 공간, 스레드 정보, 전역 데이터가 저장된 메모리 부분 등 수 많은 자원을 포함하는 개념. 종종 스케쥴링의 대상이 되는 작업이라고 불리기도 함쓰레드와 프로세스의 차이점프로세스는 완벽히 독립적이기 때문에 메모리 영역(Code, Data, Heap, Stack)을 다른 프로세스와..
-
비동기(Async)통신과 동기(Sync)통신공부 2016. 6. 23. 19:26
동기(Sync)동기식 전손은 한 문자 다누이가 아닌 미리 정해진 수 만큼의 문자열을 한 묶음으로 만들어서 일시에 전송하는 방법. 해당 방법에서 데이터와는 별도로 송신 측과 수신 측이 하나의 기준 클럭으로 동기신호를 맞춰 동작함수신측에서는 클럭에 의해 비트를 구별하게 되므로, 동기식 전송을 위해선 데이터와 클럭을 위한 2회선이 필요.송신측에서 2진 데이터들을 정상적인 속도로 내보내면 수신측에서는 클럭의 한사이클 간격으로 데이터를 인식 동기식 전송은 비동기식에 비해 전송효율이 높음수식측에서 비트를 계산해야 하고 문자를 조립하는 별도의 기억장치가 필요해 비동기보다 가격이 높음송신측에서 전송된 데이터를 수식측에서 정확히 수신하기 위해 보내는 측과 받는 측의 각 비트가 동일한 타이밍이 취해져야 하는데, 이때 송수..
-
parameter (또는 argument) 앞에 *, ** (아스테리크 = asterisk = 별표) 의미언어/파이썬 & 장고 2016. 6. 23. 18:47
장고 orm이나 파이썬 코드를 보면 *args, **kwargs를 확인할 수 있습니다.해당 뜻은 어떤 파라미터를 몇개를 받을지 모르는 경우 사용한다 라고 하지만 막연하기 때문에 예를 들어 설명하겠습니다.*args *args는 파라미터를 몇개를 받을지 모르는 경우 사용하고 튜플 형태로 전달됩니다. def test(*args): print(args) test('a','b','c') #결과 ('a', 'b', 'c')위처럼 argument로 여러 값을 던지고 해당 함수에서 tuple을 사용할 수 있습니다. dict타입과 같이 변수 자체를 그대로 넘기면 튜플 내에 데이터 1개로 취급됩니다.def test(*args): print(args) a = {'name': 'a', 'name2': 'b', 'name3':..
-
젠킨스란?서버 2016. 6. 20. 20:41
젠킨스를 통해 지속적인 통합 (CI: Continuous Integration)을 행할 수 있다. 형상관리(git, 서브버전 등)와의 연동젠킨스와 같은 CI툴이 등장하기 전에는 일정시간마다 빌드를 실행하는 방식이 일반적이었다. 특히 개발자들이 당일 작성한 소스들의 커밋이 모두 끝난 심야 시간대에 이러한 빌드가 타이머에 의해 집중적으로 진행되었다. 젠킨스는 정기적인 빌드에서 더 업그레이드 해 서브버전, Git와 같은 버전관리 툴과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정 할 수 있다. 개발 도중의 커밋은 빈번하게 일어나기 때문에 커밋 횟수만큼 빌드를 실행하는 것이 아니라 큐잉되어 자신이 실행될 차례를 기다리게 된다. 코드의 변경과 함께 이뤄지는 자동화 빌드와..
-
RestFul API웹 2016. 6. 20. 20:15
Rest API란REST는 HTTP/1.1 스펙과 동시에 만들어졌는데, HTTP 프로토콜을 정확히 의도에 맞게 활용하여 디자인하게 유도하고 있기 때문에 디자인 기준이 명확해지며, 의미적인 범용성을 지니므로 중간 계층의 컴포넌트들이 서비스를 최적화하는 데 도움이 된다. REST의 기본 원칙을 성실히 지킨 서비스 디자인은 “RESTful 하다.” 라고 흔히 표현.무엇보다 이렇게 잘 디자인된 API는 서비스가 여러 플랫폼을 지원해야 할 때, 혹은 API로서 공개되어야 할 때, 설명을 간결하게 해주며 여러 가지 문제 상황을 지혜롭게 해결하기 때문에 (버전, 포맷/언어 선택과 같은) REST는 최근의 모바일, 웹 서비스 아키텍처로서 아주 중요한 역할을 하고 있다.웹 아키텍처 클라이언트/서버 (Client/Serv..
-
세션, 쿠키, 캐시웹 2016. 5. 21. 16:51
세션과 쿠키, 캐시의 정의에 대해 매번 햇갈려 정리합니다. 1. Stateless 프로토콜기본적인 HTTP통신의 원칙은 Stateless입니다. 클라이언트의 상태를 가지지 않는 서버 처리 방식을 말합니다. 다시 말해, 클라이언트와의 첫번째 통신에서 데이터를 받았다고 해도 두번째 통신에서 이 데이터를 계승하지 않는 처리 방식입니다. 하지만 실제 서비스에서는 이와 같은 기본 원칙보다 Stateful한 방식이 필요한 경우가 많습니다. 예를 들어, 상품을 선택하고, 구입을 하는 예를 생각해 봅니다. 상품 선택의 통신이 끝난후, 상품 구입의 리퀘스트가 서버로 보내지게 될 터인데, 여기서 만약 서버가 선택한 상품의 정보(상태)를 가지고 있지 않다면 유저는 상품을 구입 할 수가 없습니다. 따라서 웹 어플리케이션 개발..