다른 사람과 다름을 느낄 때
나와 다름을 느낄 때 일상생활이나 업무를 하며, 우리는 많은 사람들과 소통한다. 소통 과정에서 나에게 당연한 것이 타인에게는 생소한 경험이기도 하고, 반대의 경우도 있다. 나는 이 일상 속에서 서로의 다름 을 느끼고, 이해하려 노력한다. 내가 살아온 지난 시간을 되돌릴 수 없지만 다른 사람이 살아온 지난 시간을 대표하는 현재 모습 으로부터 간접 경험할 수…
나와 다름을 느낄 때 일상생활이나 업무를 하며, 우리는 많은 사람들과 소통한다. 소통 과정에서 나에게 당연한 것이 타인에게는 생소한 경험이기도 하고, 반대의 경우도 있다. 나는 이 일상 속에서 서로의 다름 을 느끼고, 이해하려 노력한다. 내가 살아온 지난 시간을 되돌릴 수 없지만 다른 사람이 살아온 지난 시간을 대표하는 현재 모습 으로부터 간접 경험할 수…
연구 개요 박테리아 내부의 박테리오파지 단백질의 기능 분류를 위해 UniProt50(bacteria taxon) 데이터와 ESM-2 8M 모델 임베딩을 활용해 보았습니다. 지식 그래프 구축을 위해 UniProt 데이터를 노드로 추가하고, 임베딩 데이터를 사전 연산하여 벡터 검색이 가능하도록 준비했습니다. 커스텀 데이터로는 일반적으로 파지 영역을 탐색하고,…
클러스터 구성 클러스터는 쿠버네티스 환경을 구성하는 네트워크 중 가장 큰 단위를 말한다. 노드라고 부르는 개별 서버들의 합집합이 클러스터(K8s pool)이며, 쿠버네티스 안에서 실행되는 각 Pod의 자원 총량은 클러스터 자원을 넘을 수 없다. 클러스터는 여러 노드를 연결해 하나의 네트워크를 형성하며, 논리적으로 로컬 네트워크와 같이 각 Pod가 소통할 수…
산업혁명 시대의 근로 산업혁명 시대에는 물품들이 공장에서 제조되기 시작하며 생산 속도와 생산량에 큰 변화가 나타났다. 공장에서 생산되는 물품들은 일정한 공장 가동 주기에 맞춰 작업자가 재료를 투입하거나 완성품을 출하하는 등 기계와 수많은 사람들의 유기적 협력이 필요했다. 이러한 협업 방식이 고정된 시간제 형태로 굳어지며 9시 출근, 6시 퇴근 방식인 ‘9t…
기술과 문화의 발전에 따라 직업도 변해왔다 과거에는 시간에 맞춰 첨탑의 종을 울려 마을 전체가 공통적인 생활을 할 수 있도록 돕는 직업이 존재했다. 이 직업은 기계의 발전과 동력 기관 비용이 저렴해짐에 따라 더 정확하고 편리한 기계식 알림 방식이 확산되며, 현재는 일부의 이벤트성 문화로 남아 종사하는 사람이 매우 적어졌다. 우리는 앞으로 발전하는 기술로 인…
계정 추상화 계정 추상화는 프로그래밍 함수를 포괄적으로 사용할 수 있도록 기능을 일반화할 때 사용하는 추상화 와 같은 의미로 계정을 변환하는 방식을 말한다. 추상 계정은 특정 목적으로 사전 정의되어 있는 기능 외에 상황에 따라 요구하는 추가 기능을 사용할 수 있는 유연한 기능 범위를 가지게 되어 프로그래밍 가능한 계정 으로 변화한다. 예를 들면, 자산의 보…
인간은 이전의 기록을 보고, 간접 경험을 통해 다음 세대가 발전하는 과정을 거쳐왔다. 기록은 현재의 가치를 정리해 미래로 전달하는 방법이다. 기록의 중요성 우리는 다른 사람에게 정보를 전달하기 위해 기록하는 경우가 많다. {보고서, 제안서, 편지, 채팅, 논문, 블로그} 등의 형식을 띠는 기록이 다른 사람에게 정보를 전달하는 목적이다. 스스로 생각을 정리하…
이더리움 Layer 2 블록 증명 방식 이더리움 Layer 2 네트워크는 각 목적에 따라 Optimistic, Validity 등의 블록 검증 방식을 이용한다. 이전에 소개한 zkSync Era는 Validity 검증 방식 중 boojum 이라는 증명 알고리즘을 이용하는 예시다. 이 글에서는 Layer 2 네트워크의 블록 증명 방식에 따른 운영 안정성을 고…
Ethereum 이더리움은 이전 포스트의 내용처럼 지분 증명 방식을 이용한 블록체인 네트워크다. 이더리움은 작업 증명 방식의 네트워크에 비교했을 때 빠른 블록 생성 속도를 강점으로 가지지만, 대용량 트래픽 환경에서는 한정적인 자원으로 인해 사용자 체감 속도가 원활하지 않을 수 있다. 이더리움 네트워크 안에서 블록을 압축해 기록하는 방식으로 특정 계약의 블록…
블록체인 블록체인은 각 데이터 간의 연결고리를 만들어 데이터의 외부 개입에 의한 위변조를 방지하는 기술이다. 외부에서 임의로 기존 데이터 사이에 새로운 데이터를 삽입하거나 기존 데이터를 변조하면 블록체인 규칙에 의해 저장된 검증 데이터가 모두 바뀌기 때문에 검증 시점에서 위변조를 탐지할 수 있다. 작업증명 블록체인의 연결고리 방식 중 작업증명이 있다. 작업…
양자컴퓨터의 개발과 보안의 두려움 양자컴퓨터는 고전컴퓨터와 달리 양자의 중첩을 이용해 동시에 여러 경우를 계산 할 수 있는 점이 특징이다. 2개의 비트가 있다면 고전컴퓨터는 [00, 01, 10, 11] 4개의 경우 중 하나를 골라 계산하지만 양자컴퓨터는 4개의 경우를 중첩하여 계산 후 가장 확률이 높은 경우를 골라낸다. 양자의 중첩을 이용해 각 경우를 확…
서비스 개발 단계에서 투자는 필수적인가? 흔히들 스타트업은 투자를 이어가며 기업을 운영하는 방식이 필수적이라고 생각한다. 내 생각에는 ‘필수가 아니다’를 넘어 기피해야 한다 는 입장이다. 이전에 투자 유치 플랫폼에 기재한 정보를 통해 한 투자자가 미팅을 요청했다. 인증된 플랫폼을 통한 접근이지만, 해당 투자자는 자신이 밝힌 소속 홈페이지에 정보가 없고 메일…
요즘 사람들이 이야기하는 스타트업은, 제게 의문을 가지게 합니다. 저에게 스타트업은 새로운 방식으로 문제를 해결하는 집단 인데, 스타트업을 기사로만 접하는 대중과 스타트업 현업 종사자조차 다르게 생각합니다. 이들에게 스타트업은 투자를 받아 사업하는 기업 이며 투자를 잘 받는 스타트업이 잘 나가는 것 입니다. 어쩌다가 스타트업의 가치가 투자 금액 을 기준으로…
요즘 대규모 언어 모델(Gemini, GPT, Claude)을 활용해서 프로그래밍 지식 없이 애플리케이션 서비스를 만들었다는 이야기가 많이 들립니다. 하지만 저의 관점에서 프로그래밍 지식 없이 ‘프로그래밍을 했다’는 말은 근본적인 의문을 품게 합니다. 어떻게 프로그래밍했다는 거지? 인공지능의 발전으로 다양한 지식에 손쉽게 접근하고, 컴퓨터를 이용하는 분야에…
사람들과 이야기 중 자주 나오는 질문입니다. 왜 창업했어요? 저는 이 질문에 답하는 방식이 두 가지입니다. 직함과 성과를 중요시하는 상대 흥미와 능력을 중요시하는 상대 서로 다른 유형의 답변에는 모두 거짓은 없지만, 표면적인 이유와 근본적인 이유를 각각 포함합니다. 제가 20살에 창업한 표면적인 이유는 직접 만든 상품을 통해 저와 같은 문제를 가진 사람들에…
“대기업, 높은 연봉, 멋진 직함.” 모두가 부러워하는 그곳에 입사한 친구는 왜 1년 만에 퇴사했을까요? ‘대퇴사의 시대’, ‘조용한 퇴직’이라는 말들이 쏟아집니다. 하지만 거창한 단어 뒤에 숨겨진 본질은 어쩌면 아주 간단한 한 문장일지 모릅니다. 이 회사, 나랑 안 맞아요. 우리는 늘 ‘좋은 직장’을 찾아 헤맵니다. 하지만 우리가 ‘좋은 직장’이라고 믿었…
Mongodb에서 특정 키를 빠르게 조회하기 위해 Index 기능을 사용할 수 있다. Index 기능을 사용하면 특정 키 값을 기준으로 데이터를 조회하는 데에 필요한 연산이 줄어들고, unique option을 이용해 컬렉션 안에서 유일한 값으로 지정할 수 있다. Index Model Index 설정을 위해서 어떤 키를 Index로 사용하는지에 대한 Mod…
웹 서비스를 이용할 때, 비밀번호를 등록해서 로그인 인증을 하는 경우가 많다. 우리가 입력한 비밀번호가 그대로 데이터베이스에 저장된다면 어떤 일이 일어날까? 데이터베이스의 단편적인 정보 유출로 유저 권한을 탈취당한다. 이런 일을 방지하기 위해서 로그인 비밀번호 등의 민감 정보는 암호화하는 과정이 필요하다. HASH 해시는 원본 데이터를 해쉬 함수를 이용해…
Go 언어로 API 서버를 구현하기 위해서 Fiber라는 프레임워크를 사용한다. 프레임워크 프레임워크(framework)는 특정 목적을 가진 기능을 구현하기 쉽도록 미리 만들어진 함수와 구조체의 모음이다. 대표적인 프레임워크로는 [Java언어의 Spring], [Python언어의 Django], [java script언어의 React] 등이 있다. API…
Fiber에서는 HTTP 요청을 수신하고, 응답할 수 있다. 그중 POST 메서드에 대해 다른 프레임워크와 다른 점이 있어 소개한다. (데이터를 직접 조작하지 않고 특정 구조체에 바로 할당하는 방식) Fiber Listen POST Method Fiber App에서 POST Method를 수신하는 방법은 아래와 같다. package main import "…
Go는 정적 타입 언어이므로 변수 선언 후 타입을 변경할 수 없다. 또한, 타입의 변환 또는 반환값에 대한 타입 확인 과정이 다른 언어와 다른 점이 있다. TYPE ASSERTION 을 사용하는 경우 interface {} 타입 등의 불명확한 타입인 경우 TYPE CONVERSION 을 사용하는 경우 int to string처럼 타입을 변환하는 경우 TYP…