Software Engineering
-
Kotlin Inline modifier의 장점Java 2022. 1. 2. 21:00
inline modifier가 무엇인지 먼저 알아보고, 어떤 장점이 있는지 기술합니다. [1]의 내용을 중심으로 정리하였습니다. Inline Modifier란? 코틀린의 stdlib을 살펴보면, 거의 모든 higher-order functions이 inline modifier를 달고 있는 것을 볼 수 있습니다. 예로, stdlib의 repeat function은 아래와 같습니다: inline fun repeat(times: Int, action: (Int) -> Unit) { for (index in 0 until times) { action(index) } } inline이 컴파일될 때에 하는 일은, 해당 함수를 사용하는 모든 곳을 함수의 body로 변경하도록 합니다. 또한, repeat 내부에서 함수..
-
회고 - 과천중, 한국조리과학고, 경희대 조리과, 해병대, Seinäjoki Univ, 경희대 식품생명공학과, 쟈뎅, 코딩 부트캠프, 헬로네이처, 밸런스히어로, 11번가, 라인플러스Routine 2021. 12. 15. 14:06
식품연구원에서 개발자로 전직(직무전환)한 이야기 (feat. 8개월) 17년 7월, 저는 식품연구원으로 재직하던 회사를 그만두고 18년 3월 비전공자 개발자(데이터 엔지니어 신입)로 취업에 성공하였습니다. 직무전환에 대한 글은 많지만 식품연구원에서 개발자로의 kadensungbincho.tistory.com 우리는 대부분 직간접적으로 어떤 조직에 속해서 살아갑니다. 그러한 환경은 우리에게 영향을 미치고 우리의 일부를 결정짓는데요 [1]. 소속에 따라서 다양한 행동양식을 개발해나가기도 합니다 [2]. 그렇기에 한 개인의 앞으로를 살펴보고자 한다면, 현재의 조직보다는 그 개인이 과거에 한 조직에서 다른 조직으로의 이행(transition)을 어떠한 패턴으로 수행했는가를 참고할 수 있을 것 같습니다. 이 글에..
-
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 해시 함수를 계산하는 비용은 제로입니다. 이 해시 함수는 각 인풋을 구분되는 해시값으로 매핑합니다. 여기서 '충분히 작다'는 의미는 해시값으로 사용되는 타입의 크기에 의..