전체 글
-
4년차 개발자의 11번가 2년 경험 요약 (백엔드, 데이터엔지니어)Routine 2021. 12. 15. 11:58
온프레미스 데이터 플랫폼 팀의 데이터 엔지니어가 하는 일(feat. 11번가 데이터 플랫폼 2020년 회 잇다에서 데이터 엔지니어 멘토로 활동하면서 직무와 관련해 자주 설명하게 되는 부분은, 데이터 엔지니어가 정확히 어떤 일을 하는지에 관한 부분이었습니다. 해당 직무가 생긴지 오래되지 않 kadensungbincho.tistory.com 지난 2년여 간의 11번가 근무를 마치게 되었습니다 (2019.09 ~ 2021.12). 그 2년 중 약 1년은 데이터 플랫폼팀의 데이터 엔지니어로, 나머지 1년은 기프티콘개발팀의 백엔드 엔지니어로 근무했는데요. 다음 회사에서 근무를 시작하기 전 시간이 있을 때에, 11번가에서의 지난 2년을 돌아보며 한것들, 배운 것들, 더 배울 것들, 떠올랐던 질문들을 정리해보고자 합..
-
'금쪽상담소'를 보고 나에게 던져보는 질문들Contents Review 2021. 12. 14. 21:10
유투브 알고리즘으로 만나게 된 오은영 정신의학 박사 [1]의 '금쪽상담소'. 한 편을 보자마자 솓구치는 내 자신, 내 과거에 대한 질문들에 답하며 전편을 뒤져가며 찾아보았습니다. 개인적으로 제 자신이 자라온 양육환경이 그리 이상적이지는 않았다는 생각에, 이러한 부분에 있어서 더더욱 배움을 갈구하였는데요. 이번 글에서는 금쪽상담소에서 나오는 주된 개념들을 정리해보도록 하겠습니다: 프로그램에서는 고정 패널과 매주 새로운 연예인이 상담을 위해 금쪽상담소를 방문합니다. 그러한 연예인들을 하나 이상의 심리적 고민을 가지고 오는데요. 자식과의 관계 문제, 스스로 느끼는 부정적인 감정의 해소에 관한 문제와 같은 것들입니다. 가벼운 고민은 간단한 관점의 조정과 같은 것으로 해결됩니다. 하지만 문제의 깊은 근본이나 반복..
-
블록체인 코드를 변경해 pseudo 암호화폐 만들기Cryptography 2021. 12. 14. 18:13
암호화폐는 블록체인에 기반하고 있다고들 합니다. 그렇다면 블록체인은 암호화폐인 것일까요? 아니라면 암호화폐는 블록체인과 어떤 점이 다른 걸까요? 이번 글에서는 이전 글인 '파이썬으로 간단한 블록체인 만들어보기'에서 만든 블록체인을 변형해서 간단한 암호화폐를 만들어 보며 암호화폐를 이해해보려 합니다. 암호화폐에는 블록체인에 어떤 부분을 추가해야 하는가 Flask API 추가 암호화폐에는 블록체인에 어떤 부분을 추가해야 하는가 암호화폐는 분산된 원장(distributed ledger)입니다. 먼저, 원장이라는 부분을 고려하면 원장은 소유권, identity, 상태, 권위 등을 확정하는 데에 사용됩니다 [2]. 이러한 목적을 위해 원장은 기록 대상의 변동사항을 기록합니다. 즉, 트랜잭션(transaction)..
-
파이썬으로 간단한 블록체인 만들기Cryptography 2021. 12. 13. 23:20
블록체인은 블록이라고 불리는 것들이 암호기법을 통해 체인처럼 연결된 것 [1]을 말합니다. 흔히 아래와 같은 형태로 표현되는데요: 위의 정의에서 '암호기법을 통해 연결된다'와 같은 부분들은 실제로 간단한 블록체인을 만들어보면 복잡한 설명이 필요없이 쉽게 이해가 됩니다. 이번 글에서는 파이썬으로 구현된 간단한(100줄 이내 ^^) 블록체인을 살펴보면서, 블록체인의 일반적인 구조를 알아보겠습니다: 블록체인 클래스 구조 flask를 이용해 api로 제공하기 블록체인 클래스 구조 먼저, Blockchain이라는 클래스는 아래와 같은 생성자로 만들어 볼 수 있습니다: import datetime import hashlib import json class Blockchain: def __init__(self): s..
-
행동을 결심만하지 말라, 설계하라!Contents Review 2021. 11. 12. 21:43
행동을 바꾸면 인생을 바꿀 수 있습니다. 또한, 화장실 소변 본 후 물내리기와 같이 가까운 관계에서 마찰을 일으키는 부분도 행동 변화에 있습니다. 그렇기에 우리는 운동하기, 책 읽기, 꾸준히 네트워킹하기, 술 끊기 등등 여러 습관을 기르기 위해 노력하는데요. 갖은 노력을 하지만 결과가 기대에 미치지 못했을 때, 흔히들 자신의 결심, 동기, 인내심, 성격과 같은 점들을 원인으로 돌립니다. 즉, 자신을 탓합니다. 스탠퍼드대학교 행동설계연구소장인 BJ 포그는 그러한 실패의 원인은 행동 설계상의 문제에 있다고 말합니다. 그렇기에 자신의 의지와 능력을 한탄하며 '내 탓'을 할 필요가 없습니다. 올바른 행동설계 방법을 모르는 것이 문제이기에 배우면 되는 것입니다. 구체적으로는 1) 내 탓을 멈추고, 2) 원하는 것..
-
정수형 데이터 타입(Integer)의 해시 알고리즘SE General 2021. 10. 27. 22:13
이번 글에서는 [1]의 내용을 중심으로 정수형 데이터 타입에 대한 해시 알고리즘을 알아보겠습니다: (각 알고리즘에 대한 제 이해도가 낮아서 정확하게 기록되지 않았습니다) Identity 해시 함수 Trivial 해시 함수 Folding Mid-squares Division 해싱 Algebraic Coding Multiplicative 해싱 피보나치 해싱 Zobrist 해싱 Identity 해시 함수 만약 해싱될 데이터가 충분히 작다면, 사용자는 데이터 자체를 integer로 처리하여 해시값으로 사용할 수 있습니다. 이러한 identity 해시 함수를 계산하는 비용은 제로입니다. 이 해시 함수는 각 인풋을 구분되는 해시값으로 매핑합니다. 여기서 '충분히 작다'는 의미는 해시값으로 사용되는 타입의 크기에 의..
-
Corda란?Cryptography 2021. 10. 26. 22:04
코르다(Corda)는 트랜잭션 배칭(batching)을 위해서 블록을 사용하지 않기 때문에 정의상 블록체인이 아닙니다. 그러나, 코르다는 분산 원장(distributed ledger)이며 블록체인이 제공하는 모든 이점을 제공해주는데요. 예로, 금융산업과 같은 분야에서 트랜잭션에 대해 공유하고 있는 원장을 참여자들이 이벤트가 발생한 이후에 매번 끊임없이 체크해야되는 필요성을 없애줍니다 (기존 Bitcoin, Ethereum과 같은 블록체인과 달리). 이번 글에서는 아래와 같은 점들을 알아보겠습니다: 코르다란? 아키텍쳐 코르다란? 코르다는 위에서 언급한 매번 원장을 체크하지 않아도 되는 이점 외에도 다양한 장점이 존재합니다. 코르다는 참여자들이 모두 동일한 상태를 가지도록 하며, 모든 참여자가 코르다 네트워..
-
마이닝 풀이란?Cryptography 2021. 10. 26. 21:23
마이닝 풀(mining pool)은 채굴자들이 모여서 그룹으로 채굴하는 것을 말합니다. 새로운 블록이 성공적으로 채굴되면 풀 매니저는 코인베이스 트랜잭션을 받고, 블록을 채굴하기 위해서 자원을 투입한 채굴자 그룹에서 그 보상을 분배주는 역할을 수행합니다. 이러한 마이닝 풀은 solo 마이닝보다 더욱 수익성이 있는데, 마이닝 풀에서는 개별 노드가 블록을 찾았는지와 상관 없이 보상을 분배해주기 때문입니다 (물론 이상적인 경우에). 마이닝 풀 매니저가 사용할 수 있는 모델은 pay-per-share, proportional 모델 등 다양하게 존재합니다. Pay-per-share 모델에서는 마이닝 풀 매니저는 적은 수수료를 채굴에 참여하는 모든 채굴자들에게 지불하는 반면, proportional 모델에서는 지분..