본문 바로가기

Computer

(13)
Mac환경 Kafka 설치와 명령어 ※ Mac 환경에서 Kafka를 설치하고 간단한 Producer와 Consumer를 만들어 데이터를 주고 읽어보는 과정까지 해보겠습니다. 1. Kafka 설치 brew install kafka brew 패키지 관리 시스템으로 위 코드를 입력하면 쉽게 다운로드를 받을 수 있다. 설치가 완료되었다면, brew list 위 코드를 입력하여 kafka가 있는지 확인해 준다. 2. 명령어 명령어 실행 위치는 Kafka 루트 폴더를 기준으로 입력했다. ※ 작성자는 설치 시 확장자가 생략되어 설치가 되었는데, 환경이 달라 파일 이름에 확장자가 있다면 확장자까지 붙여 입력해줘야 한다. e.g.) kafka-topics가 아니라 kafka-topics.sh라면 ./bin/kafka-topics.sh --version #..
Websocket으로 데이터를 받아 MySQL에 저장하기 ※ 포스팅의 예시는 업비트 개발자 센터 홈페이지에서 Websocket을 연결하여 데이터를 저장하였습니다. ※ 주피터 노트북 환경에서 단계별 셀 단위로 실행하였습니다. 1. 업비트 모든 티커목록 조회 # 업비트 라이브러리 import pyupbit # KRW를 가진 마켓 코드 조회 pyupbit.get_tickers krw_tickers = pyupbit.get_tickers(fiat="KRW") # 각 코인마다 데이터 받을 리스트 생성 ticker_data = {k:[] for k in krw_tickers} pyupbit 라이브러리로 마켓 코드를 받아와 각 코인마다 데이터를 받을 리스트를 생성한다. 2. 멀티 프로세스 세팅 # 병렬 처리 import multiprocessing as mp # 큐 자료구..
파이썬으로 데이터 API를 MySQL에 저장하기 ※ 포스팅의 예시는 업비트 개발자 센터 홈페이지에서 API를 받아 데이터로 저장하였습니다. ※ 주피터 노트북 환경에서 단계별 셀 단위로 실행하였습니다. 1. API 받아오기 업비트 개발자 센터 : https://docs.upbit.com/에 들어가서 원하는 데이터의 API를 받는다. (예시로 분(Minute) 캔들로 진행한다) import requests url = "https://api.upbit.com/v1/candles/minutes/1?market=KRW-BTC&count=1" headers = {"accept": "application/json"} response = requests.get(url, headers=headers) print(response.text) 샘플 코드를 실행하면 사진과 ..
네트워크 기초 네트워크 네트워크(Network)란 그물을 뜻하는 Net과 work의 합성어로, 노드(node)와 링크(link)가 서로 연결되어 리소스를 공유하는 디지털 통신망이다. 노드 : 서버, 라우터, 스위치 등 하드웨어 장치를 뜻한다. 링크 : 유선 또는 무선을 의미한다. 처리량과 지연시간 처리량(Throughput) 링크를 통해 전달되는 단위 시간당 데이터양이다. 단위로는 bps(bits per second)를 쓴다. 처리량은 트래픽, 대역폭, 에러, 하드웨어 스펙에 영향을 받는다. bps : 초당 전송 or 수신되는 비트 수 지연 시간(Latency) 두 장치 사이에서 메시지가 왕복하는데 소요되는 시간을 의미한다. 즉, 어떤 요청이 처리되는 시간을 의미 지연 시간은 매체의 타입, 패킷 크기, 라우터의 패킷 ..
프로그래밍 패러다임 프로그래밍 패러다임 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론이다. 프로그래밍 패러다임은 크게 선언형, 명령형으로 나누며, 선언형은 함수형을 포함하고 있다. 명령형은 객체지향과 절차지향으로 나눈다. 선언형(declarative) 프로그래밍 당신이 무엇을 할 것인가에 관한 것이다. 프로그램이 실제로 어떻게 흘러가는 지와 상관없이 프로그램의 논리에 초점을 맞춘다. 상태와 제어 흐름이 존재하지 않는다. 장점 읽기만 해도 의미가 해석이 되어 가독성이 높다. 재사용성이 높다. 작동 순서를 구체적으로 정하지 않아서 오류가 적다. 프로그램 동작을 변경하지 않고도 관련 값을 대체할 수 있다. 명령형(imperative) 프로그래밍 당신이 어떤 일을 어떻게 할 것인가에 관한 것이다. 프로그램..
디자인 패턴 with Python code 디자인 패턴(Disign pattern) 소프트웨어 디자인에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 디자인 패턴은 소프트웨어나 시스템을 디자인할 때 공통된 문제들을 해결하는 데에 쓰이는 형식화된 가장 좋은 관행이다. 즉, 디자인 패턴은 프로그램을 개발하는 과정에서 빈번하게 발생하는 디자인 문제를 정리해서 상황에 따라 간편하게 적용할 수 있게 정리한 것으로 잘 활용할 수만 있다면 시행착오를 줄여 시간과 노력을 아낄 수 있다. 싱글톤 패턴(Singleton) 하나의 클래스에 하나의 인스턴스만 생성하여 사용하는 패턴이다. 장점 하나의 인스턴스만 생성하여 다른 모듈에 공유하기 때문에 메모리 측면에서 비용이 줄어든다. 데이터베이스 연결 모듈에서 많이 사용한다. 단점 TDD를 할 때 단위 테스..
Computer Network 컴퓨터 네트워크란? Computer Network는 커뮤니케이션이 가능한 디바이스들이 연결되어 정보를 주고받을 수 있는 시스템이다. 이를 통해 데이터, 파일, 컴퓨터 자원들을 공유가능 하며 이를 통해 일의 효율성을 높일 수 있다. 가장 대표적인 예시로는 인터넷이 존재하고, 전 세계 인간들이 인터넷을 통해 웹 사이트를 방문하거나 메신저등을 이용하여 교류할 수 있다. 인터넷뿐만이 아니라 가정이나 회사, 학교 내에서도 따로 네트워크를 구성하여 데이터를 주고받으며 일의 효율성을 높이거나, 자원을 효율적으로 활용할 수 있다. 이런 네트워크를 평가할 수 있는 요소로 performance(성능), reliability(신뢰성), security(보안) 등이 있다. 네트워크의 종류 LAN(Local Area Netwo..
Operating System 운영체제란? 하드웨어를 관리하고, 컴퓨터 시스템의 자원들을(CPU, Memory, I/O device) 효율적으로 관리하며, 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공해 준다. 유저가 컴퓨터를 편하게 사용할 수 있게 모든 하드웨어 자원을 관리해 주는 프로그램이다. 운영체제 구성요소 운영체제는 총 4가지의 구성요소로 이루어져 있다. Kernel(커널) : 프로세스 관리, 메모리 관리, 저장공간 관리, 장치 관리 등 컴퓨터에 속한 자원들에 대한 접근을 중재하는 역할을 한다. Interface(인터페이스) : 사용자의 명령을 컴퓨터에 전달하고 결과를 사용자에게 알려주는 소통의 역할을 한다. 사용자가 직접 접하는 화면이 여기에 속한다. 운영체제가 ..