분류 전체보기
-
[Python] pathlib 사용하기언어/파이썬 & 장고 2019. 1. 18. 22:02
파이썬 3.4부터 내장함수로 pathlib가 추가되었습니다. pathlib가 추가되기 이전에는 os 모듈을 사용했습니다. pathlib는 파일위치 찾기, 파일 입출력과 같은 동작을 하는데 os모듈과 어떻게 다른지 아래에서 설명합니다.pathlib 설명pathlib 모듈의 기본 아이디어는 파일시스템 경로를 단순한 문자열이 아니라 객체로 다루자는 것입니다. 가령 파일의 존재성 여부를 판단하는 것은 아래와 같이 작성할 수 있습니다.import os from pathlib import Path file_path = './path/to/file' if os.path.exists(file_path): pass p = Path(file_path) if p.exists(): pass 파일시스템을 문자열이 아닌 객체로 ..
-
[Python] BeautifulSoup 사용하기언어/파이썬 & 장고 2019. 1. 18. 21:28
웹 크롤러를 만들거나 html에서 필요한 정보를 검색할 때, BeautifulSoup 라이브러리를 사용하여 편리하게 코딩할 수 있습니다.설치$ pip3 install beautifulsoup4beautifulsoup에는 기본적으로 파이썬 표준라이브러리인 html 파서를 지원하지만, lxml이라는 모듈이 더 빠르게 동작하므로 lxml 모듈도 설치해 줍니다.$ pip3 install lxml 아래는 beautifulsoup에서 사용할 수 있는 파서의 장단점을 보여주는 테이블 입니다.Parser선언방법장점단점파이썬 html.parserBeautifulSoup(markup, 'html.parser')설치할 필요 없음적당한 속도 lxml HTML parserBeautifulSoup(markup, 'lxml')매우..
-
[Python] argparse 사용법 (파이썬 인자값 추가하기)언어/파이썬 & 장고 2019. 1. 16. 21:42
파이썬 스크립트를 개발할 때, 호출 당시 인자값을 줘서 동작을 다르게 하고 싶은 경우가 있습니다. 이때, 파이썬 내장함수인 argparse 모듈을 사용하여 원하는 기능을 개발할 수 있습니다.아래 설명은 파이썬 3.7 버전 기준으로 작성했습니다.사용법간단하게 인자값을 받아 처리하는 로직은 아래와 같습니다.import argparse # 인자값을 받을 수 있는 인스턴스 생성 parser = argparse.ArgumentParser(description='사용법 테스트입니다.') # 입력받을 인자값 등록 parser.add_argument('--target', required=True, help='어느 것을 요구하냐') parser.add_argument('--env', required=False, defa..
-
샤딩(sharding), 파티셔닝(partitioning)DB 2018. 12. 23. 16:14
샤딩(sharding)과 파티셔닝(partitioning)의 차이파티셔닝이란 퍼포먼스(performance), 가용성(availability) 또는 정비용이성(maintainability)를 목적으로 논리적인 데이터 엘리먼트들을 다수의 table로 쪼개는 행위를 뜻하는 일반적인 용어입니다.샤딩은 수평 파티셔닝(horizontal partitioning)과 동일합니다. 데이터베이스를 샤딩하게 되면 기존에 하나로 구성될 스키마를 다수의 복제본으로 구성하고 각각의 샤드에 어떤 데이터가 저장될 지를 샤드 키를 기준으로 분리합니다. 수평 파티셔닝 (horizontal partitioning) = 샤딩 위 예시를 보면 1 ~ 5 번 고객의 정보는 하나의 샤드에 저장하고 6 ~ 10 번 고객의 정보는 다른 샤드에 저..
-
서버 사이드 렌더링(SSR), 클라이언트 사이드 렌더링(CSR)웹 2018. 12. 23. 15:51
SSR 이란?Server Side Rendering 의 약어로써 단어 그대로 서버에서 렌더링을 작업합니다. 기존에 존재하던 방식으로 사용자가 웹페이지에 접근할 때, 서버에 페이지에 대한 요청을 하며 서버에서는 html, view 와 같은 리소스들을 어떻게 보여질지 해석하고 렌더링하여 사용자에게 반환합니다. 웹에서 제공하는 정보량이 많아지고 데스크탑보다 성능이 다소 떨어지는 스마트폰의 웹에 대한 요구가 커지면서 새로운 기법이 탄생했습니다.CSR 이란?Client Side Rendering의 약어로써 최초에 1번 서버에서 전체 페이지를 로딩하여 보여주고 이후에는 사용자의 요청이 올 때마다, 리소스를 서버에서 제공한 후 클라이언트가 해석하고 렌더링을 하는 방식입니다. 여기에 Angular JS, Backbon..
-
[DB] ETL이란DB 2018. 12. 22. 21:53
ETL은 Extract, Transform, Load 의 앞글자를 딴 용어입니다. 즉 데이터를 추출, 변환, 적재를 한다는 것입니다. 내용은 그렇게 어렵지가 않습니다.예를 들어, calendar라는 테이블에 년/월/일/시/분/초 형태로 각 컬럼이 존재합니다. 이러한 데이터를 사용하여 통계를 내는 어떤 프로그램을 실행하려고 확인 했더니 해당 프로그램은 년월일/시분초 와 같은 컬럼형태를 요구하고 있을 때 작업을 하는 것을 ETL이라 합니다.예시Extract대상이 되는 calendar 테이블에서 년/월/일/시/분/초 형태의 데이터를 전부 추출합니다.Transform추출한 데이터를 요구하는 형태인 년월일/시분초 형태로 변경을 합니다.Load변경이 된 데이터를 새로운 테이블에 적재합니다.요약간단하게 위와 같은 단..
-
[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 부분 등 내용이 변하지 않아도 페이지를 이동할때마다 서버에서 코드를 생성해서 새로 읽고 클라이언트에서는 이 코드를 페이지에 렌더링하게 됩..