본문 바로가기

반응형

개발 노트

(56)
[CI/CD] Github Actions 로 SSH 사용하여 CD 하기 최근 개인 프로젝트를 진행하기 위해 CI/CD 구성을 하기 위해 배포 플랫폼과 CI/CD 툴에 대해 조사를 진행했다. 결론부터 말하자면 서비스를 배포할 플랫폼은 오라클 클라우드이고 CI/CD 툴은 Github Actions 로 정했다. 이유는 무료 클라우드 VM 서비스 중 오라클 클라우드가 평생 무료 서비스로 최대 2대 까지 운영이 가능했고 소스 버전 관리로 Github 을 사용하면 Actions 기능으로 바로 CI/CD 를 구성할 수 있었기 때문이다. 오라클 클라우드로 VM 서버를 구성하는 포스트들은 구글에 많이 나와있어서 구성하는 것은 어렵지 않았지만 Github Actions 에서 SSH 를 사용해 VM 서버에 명령을 날리는데 에러가 발생하여 이를 해결하는 방법을 기록한다. Github Action..
[블록체인] Hyperledger Projects Hyperledger 는 리눅스 재단 (Linux Foundation) 이 주관하는 오픈소스 기반의 Private 블록체인 프로젝트이다. 사용자가 각자 원하는 Private 블록체인 네트워크를 구성하기 위한 블록체인 인프라 솔루션들을 제공하며 오픈소스로 공개되어 있다는 장점이 있다. 단점은 시장 인지도나 유지하던 개발자들의 상황(?) 등에 따라 운영 중이던 솔루션이 EOS 되는 경우가 있다. 여기서 주로 많이 사용되는 인기있는 프로젝트 몇가지를 소개하려 한다. Hyperledger Besu Hyperledger Besu는 공용 및 사설 허가 네트워크 사용 사례 모두에 대해 엔터프라이즈 친화적이도록 설계된 이더리움 클라이언트이다. Rinkeby, Ropsten 및 Görli와 같은 테스트 네트워크에서도 실..
[Golang] go 1.18 Released (generics) 드디어 Golang 에 generics (Templates for C++) 기능이 추가되었다. golang 은 기본적으로 최소한의 keywords 로 complile 성능과 실행 성능을 높이기 위해 다른 언어에서 사용하는 다양한 개념들을 일부러 많이 포함시키지 않았다고 하는데, 이번 go 1.18 릴리즈에 template 기능이 추가되었다고 한다. 사용법을 익히기 위해, golang 에서 제공하는 generics tutorial 에 대해 정리해보려 한다. 기존 함수 golang 은 strictly typed language 이기 때문에 go 1.18 미만 generics 이 없던 버전에서는 동일한 기능의 함수더라도 입력 인자 인자와 함수 이름을 다르게 선언해 주어야 했다. 1. main.go 파일 작성 ..
[블록체인] Ethereum 이더리움은 2015 년 비탈릭 부테린(Vitalik Buterin)이 개발하였다. 최초의 블록체인인 Bitcoin 과 달리 기축통화(Native Currency) 를 거래하는 거래 기록(장부,원장, Ledger)만을 저장하는게 아닌 Smart Contract (스마트 계약, 스마트 컨트랙트) 라고 하는 Solidity (솔리디티) 로 작성된 소스코드를 컴파일하여 Block 에 저장하고 이를 실행시킬 수 있다. 이 과정에서 Ethereum 이 소비되고 이를 gas 라고 부른다. * 이더리움 백서 (Whitepaper) Ethereum 구조 이더리움의 헤더는 15개의 값을 가지고 있다. Name Description Note (json for Go) ParentHash 부모 블록의 해시값 parentHash..
[블록체인]Blockchain 이란? Blockchain 이란? 블록체인이란 블록을 체인으로 연결해 놓은 것을 의미합니다. 1개의 블록을 체인에 연결할 때 마다 블록체인 네트워크에 참여한 참여자들의 합의하에 연결 가능하다고 인정된 블록들만 체인에 연결될 수 있습니다. Bitcoin 구조 블록체인의 각 블록에는 크게 (1) Block Hash, (2) Block Header, (3) Block Body 가 있습니다. (3) Block Body 를 Hash 한 값이 (2) Block Header 의 Merkle Root Hash 값으로 기록되고, (2) Block Header 를 Hash 한 값이 (1) Block Hash 가 되며 이 Block Hash 값은 다음 블럭의 (2) Block Header 의 Previous Hash 값에 기록됩니..
[Node] Express, helmet 라이브러리 ALLOW-FROM ALL Node 의 Helmet 라이브러리를 사용하는 경우 Iframe 으로 해당 서버에서 제공하는 페이지를 가져다 쓸 때, 페이지가 뜨지 않는 경우가 있다. 나의 경우 Hyperledger Explorer 에서 아래 소스코드를 수정하고 정상적으로 Iframe 으로 불러와졌다. - explorer.getApp().use(helmet.frameguard({ action: 'SAMEORIGIN' })); + explorer.getApp().use(helmet.frameguard({action:"allowfrom",domain:"*"}));
[API] 재무제표 및 ROE 조회 API 개요 네이버 Finance 주식 시세 가져오기 포스팅에 이어 종목의 재무제표 및 PER, PBR, ROE 같은 계산된 보조지표 값들을 조회할 수 있는 API 에 대하여 정리한다. 아래에서 설명하는 방법은 네이버 Finance 와 마찬가지로 정식 API 가 아닌 웹사이트에서 보여주는 정보를 Parsing 하여 정보를 추출하는 방식이기 때문에 서버에서 데이터를 제공하는 방식이 바뀌거나 하면 언제든지 동작하지 않을 수 있다. 공식적으로 지원하는 Dart Open API 가 있어서 처음에는 해당 API 를 사용했었는데.... 제공하는 정보의 문자열에 오타가 있거나 내가 원하는 정제되어 있는 정보를 얻기에는 너무 Raw 데이터여서 아래 방법으로 API 를 구현하였다. 사이트 https://comp.fnguide...
[Python] Django 실행 시 sqlite3 버전 이슈 문제점 AWS 의 EC2 서버에 amazon 리눅스를 사용 중 django 설치 및 실행을 하였는데 다음과 같은 에러가 발생 이 에러의 가장 마지막줄을 보면 SQLite 3.9.0 or later is required (found 3.7.17) 을 확인할 수 있다. 현재 설치된 django 에서 요구하는 SQLite 의 버전이 3.9.0 이상인데 기존 설치되어 있는 SQLite 의 버전이 3.7.17 이라는 것이다. 이는 python3 를 실행하여 sqlite 를 import 하여 확인이 가능하다. Python 3.7.9 (default, Apr 30 2021, 20:11:56) [GCC 7.3.1 20180712 (Red Hat 7.3.1-12)] on linux Type "help", "copyrig..

반응형