본문 바로가기

IT Note/Programming

(17)
[블록체인] 그래픽카드로 직접 코인채굴해볼게요 (GRAM, TON, 텔레그램, GPU, 코인채굴, PoW) 안녕하세요 모두 체인쏘우!! 가상화폐의 열기가 지금까지 뜨겁습니다. 비트코인은 ETF가 통과되며 공식적으로 자산으로 인정되었고 BlackRock, 피카텔리같은 경단위의 돈을 움직이는 자산 운용사에서 공격적으로 매수를 하고 있다고 합니다. 오늘은 제가 가진 그래픽카드를 통해서 직접! 텔레그램에서 나온 Gram이라는 코인을 채굴해보고 블록체인에서 PoW(작업증명방식)에 대한 글을 작성해보겠습니다. Pre. 그래픽카드 몇가지 부품들로 컴퓨터를 조립하였습니다. 그 중에서 꽃은 역시 그래픽카드겠죠. 네, 맞아요. 지금 미국 증시를 움직인다고 이야기하는 엔비디아의 Geforce RTX 4070 ti super입니다. 다른 가격들은 납득이 가지만 그래픽카드는 유독 비쌉니다. 이 고철같이 생긴 부품이 왜이리 비싼지....
호다닥 톺아보는 합의 알고리즘 : PAXOS, RAFT 원문 : 호다닥 톺아보는 합의 알고리즘 : PAXOS, RAFT Distributed System과 Consensus Algorithm 싱글 컴퓨터로는 성능의 향상에 있어 제한이 있습니다. 만약 해당 컴퓨터에 장애가 발생한다고 한다면 꼼짝없이 돌아가던 서비스도 멈추게 될거고요. 그래서 복잡한 연산을 여러 컴퓨터가 나눠서 수행하고, 하나의 컴퓨터가 망가지더라도 나머지 컴퓨터가 맡아서 처리할 수 있는 분산 환경(Distributed System)이 등장하게 됩니다. 하지만 결국 여러 컴퓨터가 하나의 시스템처럼 동작하려면, 누구하나 어긋남 없이 하나의 상태를 가져야 합니다. 이런 문제를 해결하기 위해 분산 환경에서 상태를 공유하는 알고리즘이 등장했고, 이를 Consensus Algorithm이라고 부릅니다. ..
기획자가 알면 좋은 웹 표준, 반응형 웹 관련 용어 정리 기획자로 웹 개발 프로젝트를 진행하다보니, 다양한 웹 개발 용어를 마주하게 된다. 특히 웹 표준과 반응형 웹 관련해서는, 기획 단계부터 또는 QA 단계에서 예기치 못한 문제를 마주했을 때 (that's me) 알아두면 좋다. 웹 디자이너, FE 개발자와 협업할 때 기획자가 알고 있으면 좋은 기본적인 용어를 소개한다. 1. 웹 표준 (Web standards) 사용자가 어떤 브라우저를 사용하든 웹페이지가 똑같이 보이고 정상적으로 작동하게 하는 것이다. 사용자가 선택할 수 있는 브라우저는 매우 다양한데, 크롬으로 접속하면 화면이 잘려보이고 파이어폭스로 접속하면 콘텐츠가 한 쪽에 쏠려보이고..하면 안되는 일이다. 이렇게 특정 브라우저가 아닌, 다양한 브라우저의 어떤 버전에서도 통용되는 웹사이트로 개발하자는 취..
Javascript 비동기 함수의 동작원리 (feat. EventLoop) 원문 : 호롤리한하루/Javascript 비동기 함수의 동작원리 (feat. EventLoop) Overview 이번 포스팅에서는 최근 Javascript관련 포스팅 3개를 작성하면서 개인적으로 궁금했던 내용을 다뤄보려고 합니다. (1) 호다닥 톺아보는 Callback 함수 (2) 호다닥 톺아보는 Promise (3) 호다닥 톺아보는 async&await Javascript는 Single Thread Javascript는 Single Thread기반 언어입니다. 즉, 한 번에 하나의 작업만 수행이 가능하다는 의미입니다. 그런데 여러 경우에서 동시에 병렬로 처리해야하는 작업들이 있습니다. 예를 들어 브라우저상에서 이미지 로딩이라던지, 스크롤 액션, 버튼 누르기 등등이 있죠. 버튼 누를때마다 작업이 완료될때..
호다닥 톺아보는 Promise 원문 : 호롤리한하루/호다닥 톺아보는 Promise 콜백지옥에서 벗어나기 지난 포스팅에서 Callback함수란 무엇인가에 대해서 다뤘고, 복잡한 로직에서 Callback함수를 사용할때의 문제점, 콜백지옥에 대해서도 다뤘습니다. 콜백지옥을 짧게 요약하자면 다음과 같습니다. 코드의 가독성이 떨어진다. 매 코드블럭들마다 에러처리를 해주어야 한다. Promise? 어떤 특정한 문법이 아니라 일종의 패턴을 나타내는 용어였던 Callback과 달리 Promise는 Javascript의 객체입니다. 간단히 말하자면 비동기로 실행된 작업의 결과를 나타내는 객체의 이름이라고 보시면 됩니다. Promise 만들기! 간단히 아래와 같이 Promise 생성자로 만들 수 있습니다. let promise = new Promise..
호다닥 톺아보는 Callback 함수 원문 : 호롤리한하루/호다닥 톺아보는 Callback 함수 Callback? 일반적인 함수의 형태는 아래와 같이 생겼습니다. function hello(word){ console.log(word); } var str = "hello!" hello(str); // hello! 파라미터로 문자든 숫자든 object든 들어가서 내부 로직에의해 처리되는 형태로 되어있습니다. object는 뭘까요? json이나 배열 등등의 객체를 말할 수 있겠죠. 그렇다면, 자바스크립트에서 "함수"는 무엇일까요? 자바스크립트에서 모든 함수는 Function Ojbect입니다. 하나의 객체로 처리되기때문에 함수도 함수의 파라미터로 들어갈 수 있습니다! function concat(one, two, callback){ var res..
호다닥 공부해보는 SOAP 원문 : 호롤리한하루/호다닥 공부해보는 SOAP Overview OpenAPI에 대해 포스팅을 적은지도 벌써 2달이 지났네요... 이번 포스팅에서는 SOAP에 대해서 알아보겠습니다. 1. SOAP란? SOAP의 풀네임은 "Simple Object Access Protocol" 로, HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 통신 프로토콜을 말합니다. 서로 다른 service들간의 연동을 목적으로 상호 이해 가능한 포맷의 메세지를 송수신함으로써 원격지에 있는 서비스객체나 API를 자유롭게 사용하고자 하는 기업의 요구에서부터 탄생한 프로토콜입니다. 과거에도 DCOM이나 CORBA과 같은 방법으로 원격지간 의사소통은 할 수 있었지만, 호환성과 보안상의..
OpenAPI 란? (feat. Swagger) 원문 : 호롤리한하루/OpenAPI 란? (feat. Swagger) Overview 이 문서에서는 API의 기본적인 정의는 알고 있다는 전제하에 OpenAPI와 Swagger의 개념, 차이점, 비교적 최근(2017-07-26) 업데이트한 OpenAPI 3.0에 대해서 알아보도록 하겠습니다. 1. OpenAPI? Open API? 검색창에 OpenAPI라고 치면 수많은 결과가 나옵니다. 근데 의미가 통일되지 않고 중구난방인데요... 그래서 더 헷갈립니다. 저도 이게 대체 무슨 뜻인가 싶었습니다. 그래서 정리하는 정확한 정의! Open API 는 단어 그대로 "개방된 API"입니다. 즉, 누구나 사용될 수 있도록 API의 endpoint가 개방되어있다면 Open API인것이죠. 예를 들어, 기상청의 단기예..
[Ansible] 좀 더 알아보자 Overview 이번 포스팅에서는 Ansible 배포를 위해 알면 좋은 몇가지 기능들을 추가적으로 알아보겠습니다. 1. Ansible.cfg Ansible 구성 Ansible은 제어 노드(ansible.cfg)를 여러 위치에 선택할 수 있습니다. • /etc/ansible/ansible.cfg ansible 패키지에서는 /etc/ansible/ansible.cfg에 있는 기본 구성 파일을 제공합니다. 이 파일은 다른 구성 파일이 없는 경우 사용됩니다. • ~/.ansible.cfg 사용자의 홈 디렉터리에서 .ansible.cfg 파일을 찾습니다. 이 구성이 존재하고 현재 작업 디렉터리에 ansible.cfg 파일이 없는 경우 /etc/ansible/ansible.cfg 대신 이 구성이 사용됩니다. • ...
[Ansible] 유용한 기능들 - When, Debug, Tag 원문: [Ansible] 유용한 기능들 - When, Debug, Tag Overview 이번 포스팅에서는 Ansible의 알고있으면 유용한 기능들을 다뤄보겠습니다. 1. 조건에 따라 특정 Task를 실행하고 싶을 때 : When Ansible은 그 구조의 특성상 하나의 task내에서 조건별로 분기를 할 수가 없습니다. 대신 task를 여러개로 쪼개서 조건에따라 실행시키게 할 수는 있죠. 이럴 때 사용하는 구문이 When입니다. 참고: Ansible doc/Conditionals 1 ansible_facts 사용 ansible_facts는 Ansible에서 각 노드에 맞게 동적으로 할당되는 변수들입니다. 노드들의 시스템정보등이 들어가 있습니다. 아래 구문을 playbook에 넣어서 실행시켜보면 - nam..
Ansible Basics 원문: 호롤리한하루/Ansible Basics Overview 이번 포스팅에서는 Ansible이란 무엇인지, 구조와 설치방법에 대해서 기술하도록 하겠습니다. Ansible? Ansible은 여러 개의 서버를 효율적으로 관리하기 위해 고안된 환경 구성 자동화 오픈소스 도구입니다. 여러 서버를 구성할 때 사용하는 가장 기본적인 방식은 shell script를 만들어서 돌리는 방식입니다. 하지만 서버의 대수가 많아지고 동시에 환경을 구성해야하는 일이 발생한다면 기존의 shell script로는 한계가 있을겁니다. 이를 위해 고안된 개념이 Infrastructure as a Code이며 환경의 배포와 구성을 규격화된 코드로 정의해 사용하는 것을 의미합니다. Ansible은 이러한 개념을 바탕으로 생성된 툴입니다..
[웹개발] 브라우저의 작동 원리 Introduction 이번 문서에서는 웹개발에서 알아두면 좋은 브라우저의 작동 원리 에 대해 알아보도록 하겠습니다. 사실 웹브라우저는 세계에서 가장 많이 쓰이는 소프트웨어이지만 브라우저의 기능은 웹개발에서 그렇게까지 중요한 분야가 아닙니다. HTML/CSS/Javascript 만 알면 프론트엔드를 개발할 수 있고, 브라우저는 웹서버의 내용을 자동으로 렌더링해서 띄워주기 때문에 굳이 그것까지? 라는 생각이 이제까지 지배적이었습니다. 다만 웹상에서 사용하는 태그와 기능이 다양해지면서 브라우저 호환성 이슈가 불거지기 시작합니다. 같은 웹서버의 내용을 브라우저별로 다르게 fetching 하거나, 이미지 사이사이 지정하지 않았던 여백이 뜬다거나 하는 등 알수 없는 오류가 작동하기도 합니다. 여러분들도 특정 서비..