Software Engineering
-
파이썬 리스트 내부구조 (Python List Internals)Python 2021. 2. 13. 20:33
파이썬 리스트는 mutable 시퀀스(sequence)로, 주로 유사한(homogeneous) 아이템들의 콜렉션(collections)을 저장하기 위해서 사용합니다. 그렇기에 시퀀스가 기본적으로 가지는 연산자(collections.abc.Sequence ABC)들은 리스트에도 구현되어 있습니다. 이번 글에서는 CPython에서의 리스트 내부구조를 아래와 같은 사항을 중점으로 살펴보겠습니다: 리스트 내부구조와 기본 연산 메모리 할당 관련글: 파이썬 딕셔너리 내부구조 파이썬 튜플 내부구조 파이썬 클래스 내부구조 리스트 내부구조와 기본 연산 cpython 코드 상에서 파이썬 리스트는 다음과 같은 형태를 가지고 있습니다: 흔히 인지하는 리스트의 길이, len(list_a)는 PyVarObject의 ob_size..
-
Spring MVC Internals (내부구조)Java 2021. 2. 12. 23:39
Spring MVC는 Spring Framework의 일부로 Spring Web Layer에서 MVC(Model-View-Controller)를 구현한 Web-Servlet 모듈입니다. 이번 글에서는 클라이언트 요청과 응답 시 Spring MVC가 어떻게 동작하는지를 중점으로 그 구조를 살펴보겠습니다. Servlet: Java Web 애플리케이션의 기반 DispatcherServlet: SpringMVC의 중심 HTTP 요청 처리 과정 요청 처리(handle) Handler 메소드의 아규먼트와 리턴값 처리 뷰 렌더링 아래에서 SpringWeb MVC가 어떠한 방식으로 동작하는지 이해하기 위해서, 아래와 같이 간단한 hello() 메소드가 @Controller로 annotated된 클래스에 존재한다고 가정..
-
BAT이란? (Basic Attention Token)Portfolio Management & Real Estate 2021. 2. 10. 07:54
BAT (Basic Attention Token)은 가상화폐의 일종으로 분산형 광고 교환(소비 및 리워드)를 위한 블록체인 & 이더리움 기반 토큰입니다. 기존의 디지털 광고는 많은 한계점이 존재하였습니다: 디지털 광고시장이 핵심 이해관계가자 아닌 중간자(광고 교환, audience 세그멘테이션, 이용자 트래킹, 불분명한 cross-party간 데이터 공유)에 의해 좌우됨 이용자의 privacy 침해 우려 브라우저 이용자 50% 가까이 ad-blocker를 사용 광고 로딩은 매우 느리고 이용자 기기의 많은 전력을 소모 이러한 문제를 개선하고자한 첫 번째가 Brave 브라우저였고, BAT는 이러한 플랫폼에서 안전하고, 익명을 보장하는 광고 교환(범용적으로는 Attention 기반 산업의 교환)을 위한 통화 ..
-
"데이터 경제를 위한 비지니스 모델"을 읽고 (feat. 한국 데이터 기업)Data 2021. 2. 2. 07:36
그것이 빅데이터든, 데이터사이언스 또는 단순히 분석이든 모던 비지니스는 데이터를 금광으로 바라봅니다. 때로는 단순히 하고 있는 일을 더 잘 이해하기 위해서, 때로는 인사이트를 얻기 위해서 데이터를 모으기도 하는데요. 무엇이 되었든 데이터는 비지니스를 개선하는데 특정한 가치를 지니고 있습니다. 데이터를 이익이 나는 것으로 변모시키는 방법은 무수히 많으나, 이 글에서는 아래와 같은 구조로 전달하려고 합니다: Collect / Supply Store / Host Filter / Refine Enhance / Enrich Simplify Access Analyze Obscure Consult / Advise Collect / Supply 데이터를 수집하여 데이터셋을 만들고 그것을 판매하는 방식입니다. 특정 데이..
-
팀 내에서 팀장의 역할 (feat. YARN 하둡분산자원관리)Career 2021. 1. 27. 23:39
예전에 포프TV [1]를 보다가 팀장의 역할을 CPU Core를 관리하는 것(영상 찾기 실패ㅜ)과 비유한 것을 본적이 있습니다. 비슷한 관점으로 최근 빅데이터의 자원관리 도구인 YARN에 대해서 정리하다가, YARN의 리소스매니저도 팀장에 비유가 가능하다는 생각이 들었습니다. 또한, 매니징과 관련해 예전에 '실질적이다라는 느낌을 받으며' 읽은 책 "The Making of a Manager"[2]의 다양한 조언들도 그러한 관점으로 잘 정리될 것 같아 이 글을 작성하게 되었습니다. 이번 글에서는 위의 관점으로(팀장 역할을 해본적은 없지만), 미래의 팀장을 준비한다는 생각으로 팀장의 역할에 대해 기술해보겠습니다. 팀을 YARN에 비유해보기 팀장은 팀이라는 클러스터의 리소스매니저 팀을 YARN에 비유해보기 Y..
-
개발자 Kaden의 정보관리법Career 2021. 1. 27. 23:25
식품연구원으로 일할 때와 백엔드로 근무하고 있는 현재를 "다루는 정보의 범위" 관점에서 생각해보면, 비교 시 현재 "다루는 정보의 범위"는 넓을 뿐만 아니라, 그러한 범위로 인해서 머릿속 구조가 달라진 것 같다는 느낌이 많이 듭니다. 큰 뼈대를 그리는 지식은 머릿속에 있는 듯 한데, Specific한 케이스는 구글링이 일상화되다 보니 그 핵심을 "키워드"로 머릿속에 넣고 있다는 느낌이 자주 드는데요. 그렇기에 '어떻게 일상에서 정보가 흘러가고, 어떻게 정보를 관리'하고 있는지 정리할 필요가 있다는 생각이 들었습니다. 이 글에서는 데이터엔지니어, 백엔드 개발자로 근무하고 성장하려고 노력하며 가다듬어?온 핵심적인 정보관리법을 정리하고, 서치와 회고를 통해 돌아보고자 합니다. 매순간의 기록하기 - Apple ..
-
책 '구글에서의 소프트웨어엔지니어링'의 '문화' 요약SE Concepts 2021. 1. 27. 23:10
Oreilly의 Trending에 올라와 있는 "Software Engineering at Google"의 Culture 부분을 읽고, 앞 부분부터 참 좋은 내용이 많다는 생각이 들었습니다. 저 개인적으로도 그 내용을 체화하기 위해 아래 요약으로 그 핵심을 전달하며 공부해보려 합니다. 이 부분은 읽으면서 전반적으로 느낀 점은, 아래의 사항들이 '추상적'인 언급이 아니라 프로세스화 되고, 가능하다면 기술로 구현되고, 장기적으로 경제적 이득이 되기에 행하고 있다는 점입니다. 여기서 '경제적 이득'이라는 부분은, 마틴 파울러가 Unittest가 실제로 코드 운영유지에 효율적이기에 해야한다고 하는 것과 유사한 맥락입니다. 팀으로 일하기 지식 공유하기 평등을 위한 엔지니어링 어떻게 팀을 리드하는가? 많은 사람을 ..
-
주니어 데이터 엔지니어의 공부방법Data 2021. 1. 27. 23:06
이 글에서는 비전공자로 시작해 지난 3년 간, 이커머스 그리고 핀테크 도메인의 클라우드(AWS), 이커머스 온프레미스(Hadoop) 기반의 데이터 환경에서 주니어 데이터 엔지니어로 근무하며 각 도메인과 환경에서 공부 했던 부분들을 정리해보려고 합니다. 신입 또는 다른 개발 직군에서 피벗을 고려하시는 분들이 공부방법을 많이 찾으시는 듯 한데, 도움이 되었으면 합니다. 지향하는 데이터상품군을 파악하고 환경 만들기 공부하는데 참고한 자료들 지향하는 데이터상품군을 파악하고 환경 만들기 이 장에서는 데이터 환경에 노출되고 있지 않다면, 어떤 데이터상품군을 지향하는지 파악하고 배워가는 정보가 지식으로 연결될 수 있는 환경(주로 프로젝트에 대한) 만들기를 다룹니다. 그렇기에 현재 '데이터 관련 업무'를 진행하신다면,..