분류 전체보기
-
[DB] CDC란DB 2018. 12. 22. 21:42
Change Data Capture의 약어로 마지막으로 추출한 이후 변경된 데이터만 골라내는 기술을 의미합니다. 흔히 데이터 백업이나 통합 작업을 할 경우 방대한 데이터를 다뤄야 하는데 원본 소스 데이터 가운데 최근 변경된 데이터들만 골라 다른 시스템으로 옮기게 되면 시스템 로드도 줄이고 전체적인 작업 생산성을 향상시킬 수 있습니다. 특히 한 시스템에 있는 대량의 데이터를 정기적으로 추출해 다른 시스템으로 이동하는 데이터 통합이나 데이터 웨어하우스 업무의 경우 CDC 기술을 이용하면 데이터를 추출, 이동하는 시간을 크게 줄일 수 있습니다. 또한 24시간 운영해야 하는 필수적인 업무 시스템의 경우 CDC 기술을 이용하면 다운타임 없이 실시간 백업과 데이터 통합이 가능합니다.
-
CDN이란웹 2018. 12. 22. 21:26
CDN이란?CDN은 Content Delivery Network 의 약어로서 전 세계에 전략적으로 분산되어있는 서버 네트워크입니다(지리적으로). CDN은 사용자가 리소스를 다운로드 할 수있는 대체 서버 노드를 제공하여 작동합니다. 이러한 노드는 전 세계에 퍼져 있기 때문에 지연 시간 감소로 인해 컨텐츠의 빠른 응답과 다운로드 시간을 제공함으로써 사용자에게 더 가까운 전략적 이점을 제공합니다. 예를 들어, 미국에 거주하는 사용자가 중국에 있는 컨텐츠를 가져온다고 하면 거리가 멀기 때문에 느리고 국제회선을 사용해서 비용 또한 비쌉니다. CDN을 사용하면 미국의 CDN 서버에 복사를 하여 미국에 거주하고 있는 사용자의 요청을 미국 CDN으로 연결하기 때문에 비용, 속도를 보장할 수 있습니다.만약 1대의 CDN..
-
절차지향 VS 객체지향공부 2018. 12. 22. 18:35
절차지향(Procedural Programming)이란? 절차지향 프로그래밍이란 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법입니다. 대표적인 절차지향 언어에는 C언어가 있습니다. 이는 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리합니다. 옛날에는 하드웨어와 소프트웨어의 개발 속도차이가 크지 않았습니다. 하지만 하드웨어의 빠른 발전을 통해 컴퓨팅 환경은 급속도로 증가했지만 소프트웨어 개발 시간이 따라가지 못하게 되고 이런 상황에 소프트웨어의 개발시간을 단축하되 하드웨어에 기본적인 사양을 잡아먹어도 더 이상 큰 단점이 아니기에 모듈화, 캡슐화해서 개념적으로 접근하는..
-
SPA (Single Page Application)웹 2018. 12. 22. 17:00
데스크탑에 비해 성능이 낮은 모바일에 대한 니즈가 증가하여 스마트폰을 통해 웹페이지를 출력하기 위해서는 기존 방식과는 다른 접근이 필요했습니다. 이에 SPA 기법이 등장하게 되었습니다. SPA는 단순하게 1개의 페이지만 있는 어플리케이션 이라 정의할 수 있습니다. SPA는 웹사이트를 구성하는 방법 중 하나인데 보통 웹사이트처럼 여러 페이지가 있고 회원가입, 로그인, 글쓰기 등 복잡한 기능을 지원하지만, 이는 처음 호출된 HTML상에서 필요한 데이터만 호출하여 화면을 새로 구성해 주는 것으로 실제로 페이지의 이동이 일어나지 않습니다. 보통 웹사이트의 메뉴바, footer 부분 등 내용이 변하지 않아도 페이지를 이동할때마다 서버에서 코드를 생성해서 새로 읽고 클라이언트에서는 이 코드를 페이지에 렌더링하게 됩..
-
[Golang] 날짜 계산, 포맷 변경하기언어/Golang 2018. 12. 19. 21:30
Go언어에서 날짜계산이나 포맷변경은 극악입니다. 실제로 검색해보면 욕 한바가지 써놓은 것을 쉽게 볼 수 있습니다. 현재날짜 가져오기기본 현재날짜, utc, unix 별로 가져오는 로직입니다.package main import ( "fmt" "time" ) func main() { now := time.Now() nowUTC := time.Now().UTC() nowUNIX := time.Now().Unix() fmt.Println(now) fmt.Println(nowUTC) fmt.Println(nowUNIX) } // 결과 // 2018-12-19 20:42:08.219845 +0900 KST m=+0.000394187 // 2018-12-19 11:42:08.219846 +0000 UTC // 154..
-
[Golang] struct 리스트로 반환하기언어/Golang 2018. 12. 18. 23:39
struct 성질을 까먹고 한참 삽질하다가 정리하던 도중 중요한 부분을 기억했습니다...........GO에서 struct를 선언하는 방식은 여러가지가 있습니다. struct 성질을 먼저 복기한 후, struct를 리스트로 반환하는 코드를 설명하겠습니다.1. 빈 struct 객체 먼저 생성 후 데이터 채우기Article이란 빈 객체를 생성 후 데이터를 삽입하는 코드입니다.type Article struct { Title string } func main() { article := Article{} article.Title = "test" }2. GO 내장함수 new() 사용GO 내장함수인 new() 메소드를 사용하여 생성합니다.type Article struct { Title string } func m..
-
SSL Pinning보안 & 보안 2018. 12. 18. 20:35
ssl pinning은 HPKP (HTTP Public Key Pinning)에서 주로 사용되는 용어입니다. 이미 잘 알려져 있다시피 SSL/TLS 로 이루어진 암호화 통신은 중간자 공격 (Man in the Middle) 에 취약합니다. 특히 요즘에는 여러 보안장비들이 SSL Decryption 기능을 제공하며 이 중간자 공격 (Man in the Middle) 형태로 SSL 및 TLS 세션을 복호화 하여 내용을 검증하도록 되어 있습니다. 이 때 보안장비는 공격자와 마찬가지로 암/복호화에서 사용할 인증서를 임의로 교체하여 중간에서 데이터를 복호화 하여 검증 하도록 구성되어 있습니다.위 예제와 같이 클라이언트 (유저) 는 최종적으로 중간의 보안장비 또는 공격자가 제공한 인증서를 기반으로 암호화 통신을 진..
-
TLS (Transport Layer Security)보안 & 보안 2018. 12. 18. 19:32
TLS란?인터넷에서의 정보를 암호화해서 송수신하는 프로토콜 넷스케이프 커뮤니케이션스사가 개발한 SSL(Secure Sockets Layer)에 기반한 기술로, 국제 인터넷 표준화 기구에서 표준으로 인정받은 프로토콜입니다. 표준에 명시된 정식 명칭은 TLS지만 아직도 SSL이라는 용어가 많이 사용되고 있습니다. 흔히 SSL이라 부르는 것들의 대부분은 TLS입니다. SSL은 POODLE, DROWN 등의 취약점이 발견되어 현재 사용되지 않는다고 보면 됩니다. TLS를 사용해 암호화된 연결을 하는 HTTP를 HTTPS(Secure)라고 하며, 웹사이트 주소는 HTTPS로 시작합니다. 기본 포트 또한 80번이 아닌 443번을 씁니다.TLS와 HTTPS를 혼동하는 경우가 많은데, 둘은 유사하긴 하지만 다른 개념입..
-
[Python] psycopg2 Decimal 타입 제거하여 쿼리결과 얻기언어/파이썬 & 장고 2018. 12. 1. 13:58
SELECT 쿼리를 사용하여 DB의 값을 가져올 때, float, double과 같은 타입일 경우에 psycopg2가 Decimal 타입으로 가져오게 됩니다. 가져온 값을 그대로 다른 DB에 넣을 때 Decimal타입을 변경해줘야 하는데 귀찮으니 애초에 DB 값을 가져올 때, 아래와 같이 제거해서 결과를 출력할 수 있습니다.from psycopg2.extensions import new_type, DECIMAL DEC2FLOAT = new_type(DECIMAL.values, 'DEC2FLOAT', lambda value, curs: float(value) if value is not None else None) psycopg2.extensions.register_type(DEC2FLOAT) conn =..
-
[Python] 전각문자(double byte)를 반각문자(single byte)로 변경언어/파이썬 & 장고 2018. 11. 21. 18:11
먼저 우리가 흔히 아는 특수문자는 반각문자 입니다. (키보드에 존재하는 특수문자 !@#$% 등등) 전각문자는 윈도우 한자 키를 사용하여 생성된 특수문자입니다. (123abc?!등등)전각문자를 사용해도 표현은 되지만 문자 사이의 간격이 반각보다 커서 가독성 문제나 123과 같은 숫자가 전각일 경우, 문자로 인식되는 것등의 문제가 있습니다. 따라서 파이썬에서 전각문자를 반각문자로 변경하는 방법은 아래와 같습니다. # 전각문자 full = '!' # 반각문자 half = '!' # 전각문자와 반각문자의 차이 diff = '0xfee0' # 전각문자 블랭크 blank = '0x3000' # 16진수인 ascii code hex_ascii_full = ord(full) hex_ascii_half = ord(hal..