목록분류 전체보기 (322)
잡동사니
안녕하세요. yeTi입니다. 오늘은 알고리즘 공부 중 최소비용신장트리(Minimum Spanning Tree)에 대해 학습한 내용을 공유하려고 합니다. 강의 : 권오흠 교수님의 2015 봄학기 알고리즘 개요 최소비용신장트리는 무방향 가중치 그래프에서 모든 노드를 이었을 때 가중치가 가장 적은 엣지들의 부분집합을 찾는 방식입니다. 이 때, MST(Minimum Spanning Tree) 는 유일하지 않기 때문에 선별한 엣지들을 많은 MST들 중 일부인 부분집합 이라는 표현을 한다. 공학적으로는 계층적 구조의 연결을 트리(rooted tree)라고 인식하지만 수학적으로는 싸이클이 없는 연결된(connected) 무방향 그래프를 트리라고 합니다. 게다가 MST 문제에서 싸이클이라는 것은 중복 경로라는 의미로 ..
안녕하세요. yeTi입니다. 오늘은 알고리즘 공부 중 그래프(graph)에 대해 학습한 내용을 공유하려고 합니다. 강의 : 권오흠 교수님의 2015 봄학기 알고리즘 개요 그래프는 노드와 엣지, 두 집합으로 구성된 자료구조입니다. 그래프의 종류에는 무방향 그래프, 방향 그래프, 가중치 그래프가 있습니다. 그래프는 인접 행렬과 인접 리스트로 표현 가능합니다. 인접 행렬은 n*n 크기의 2차원 행렬로 표현하는 방식으로 저장 공간은 O(n^2)의 크기를 가지고, 인접한 모든 노드를 찾는 시간은 O(n), 엣지의 존재 여부를 찾는 시간은 O(1)의 특성을 가집니다. 인접 리스트는 노드 집합을 표현하는 1차원 배열과 각 노드마다 인접한 노드들을 연결 리스트로 표현한 방식입니다. 저장 공간은 O(n+m)의 크기를 가..
안녕하세요. yeTi입니다. 오늘은 요즘에 핫한 아바타: 물의 길을 본 후기를 공유하려고 합니다. 전작 저는 전작인 아바타 부터 몇 번을 다시 볼만큼 좋아했습니다. 아바타가 가지고 있는 디테일한 세계관이 외계 행성 다큐멘터리를 보는 것처럼 느껴져서 볼 때마다 신비롭게 느껴졌습니다. 외계 행성이라는 소재도 흥미롭고, 인류의 자원 개척이라는 부분도 공감이 되고, 외계 행성이 가지는 대기나 토양의 특성, 원주민, 원주민이 사용하는 언어, 식물, 동물, 그리고 자연이 거대한 데이터 센터라는 에이와라는 존재도 현 인류가 자연을 대하는 태도를 배워야하지 않을까 하는 생각조차 들게 만들었습니다. 이러한 디테일이 아바타가 단순 SF 영화가 아니라 외계 행성의 다큐멘터리라고 느껴졌던거 같습니다. 하이라이트로 제이크 설리..
안녕하세요. yeTi입니다. 오늘은 알고리즘 공부 중 해싱(hashing)에 대해 학습한 내용을 공유하려고 합니다. 강의 : 권오흠 교수님의 2015 봄학기 알고리즘 개요 해쉬 테이블(hash table)은 트리(tree)와 같이 dynamic set을 구현하는 효과적인 방법 중 하나입니다. 적절한 가정하에 Insert, Delete, Search 연산의 시간복잡도는 O(1)을 가지지만 최악의 경우에는 O(n)을 가집니다. Hash Table 해시 테이블은 일반적으로 일차원 배열을 활용하여 데이터를 관리합니다. 이 때, 배열의 인덱스가 특정 데이터의 키를 해시한 값을 활용하여 키를 해시하는 연산 시간만 주어지면 데이터에 바로 접근할 수 있는 특징을 가지고 있습니다. 하지만, 데이터의 크기가 해시 테이블의..
안녕하세요. yeTi입니다. 오늘은 2022년을 마무리하며 회고를 하려고 합니다. 돌아보며 개발자 커리어를 가져오면서 가장 명확한 목표를 가지고 구체적인 결과를 만들면서 보낸 한해가 아니었나 생각을 합니다. 더욱이 내면적으로 성숙할 수 있는 계기가 되었고, 협업적인 측면이나 기술적인 측면이나 서비스적인 측면 등등 많은 부분에서 검증해보고 피드백을 받으며 성장할 수 있었던 한해였다고 생각합니다. 고무적이었던 부분은 그 동안 목말라있던 초기 개발부터 서비스 오픈 그리고 운영(DevOps)에 이르기까지 개발자로써의 능력을 시험해볼 수 있었던 시간이었습니다. 안영회 대표님, 유영모님과 인연이 닿아 그 동안 고민하던 것에 대한 피드백을 받을 수 있어 너무 의미있는 한해였고 내면적으로나 개발자적으로 시야를 넓힐 수..
안녕하세요. yeTi입니다. 오늘은 알고리즘 공부를 해보면서 공부하는 것이 안하는 것보다 프로그래밍을 함에 있어서 도움이 된다고 느낀점을 공유해보고자 합니다. 코테를 위한 알고리즘? 흔히들 알고리즘 공부라 하면 코테(코딩 테스트)를 준비하기 위해서 한다고 인식합니다. 저도 그랬었고 주변 의견을 들어봐도 그렇고, 알고리즘 공부를 한다고 해서 실무에 어디다가 쓰느냐. 좋은 기업에 입사하기 위해, 코테를 통과하기 위해, 알고리즘을 공부한다는 의견이 대다수 입니다. 하지만 최근 제 경험은 개발을 위한 사고를 하는데 도움이 된다고 느꼈습니다. 사고력 훈련 이전 글에서도 알고리즘을 공부해야하는 이유 라는 제목으로 알고리즘 공부의 필요성에 대해 공유한적이 있는데요. 해당 글에서는 논리적인 생각의 코드로써 직관적인 표..
안녕하세요. yeTi입니다. 오늘은 알고리즘 공부 중 트리(tree)에 대해 학습한 내용을 공유하려고 합니다. 강의 : 권오흠 교수님의 2015 봄학기 알고리즘 트리 (Tree) 트리는 계층 구조를 표현하는 자료구조입니다. 트리에서 사용하는 용어는 다음과 같습니다. 노드 (node) 링크 (link) 루트 (root) 부모 (parent) 자식 (child) 형제 (sibling) 리프 (leaf) 조상 (ancestor) 자손 (descendant) 부트리 (subtree) 레벨 (level) 높이 (height) 이진트리 (Binary Tree) 이진트리는 자식 노드가 최대 2개인 트리를 말합니다. 이진트리의 종류에는 full binary tree 와 complete binary tree가 있습니다...
안녕하세요. yeTi입니다. 오늘은 비대면(재택/원격) 근무가 활발해 짐에 따라 업무의 진행을 원활하게 할 수 있는 협업에 대한 생각을 공유하고자 합니다. 개취인정 개취인정이란 용어는 안영회 대표님께서 사용하시는데요. 지금까지는 상대의 방식을 인정한다, 인정만 한다라는 국소적인 의미로 이해하고 있었습니다. Driven 하지만 근래에 TDD(Test Driven Development), DDD(Domain Driven Design)를 고민하고 시도해보면서 Driven 이라는 단어의 의미를 이해했다고 느낀 경험이 있습니다. Driven이라는 용어를 단어적으로 해석하면 주도하다입니다. 문장으로 확대하면 A Driven B, A가 주도하여 B에 영향을 미친다. 입니다. 이해하게 된 예시로 TDD, DDD라는 용..
안녕하세요. yeTi입니다. 오늘은 안영회 대표님의 기술은 쓰임새(use case)에 따라 고르고 조합한다 를 읽고 연관된 생각에 대해 기록으로 남깁니다. 인상 안영회 대표님의 기술은 쓰임새(use case)에 따라 고르고 조합한다 를 보면서 아래 문장이 인상 깊었습니다. 오픈소스를 일종의 협업이나 소프트웨어 개발 방식에 대한 변화로 보지 않고 여전히 솔루션(해결책)으로만 보면 기술을 제대로 활용할 수 없다. 기술은 사회적 맥락속에서의 쓰임새를 중심으로 살펴야 한다. 의미론적으로 굉장히 옳다고 생각하여 생각의 주제로 잡아봤지만 막상 의미를 파악하고자하니 그 뜻을 파악할 수가 없었습니다. 오픈소스 문장들을 다시 곱씹어 보니 아래와 같은 질문들이 나왔습니다. 오픈소스를 사용한다는 것은 해당 커뮤니티에 조인한..
안녕하세요. yeTi입니다. 오늘은 개발자로써 느낀 시야와 이어진 통찰 그리고 업(業) 에 대한 이야기를 해보고자 합니다. 계기 12월 초에 안영회 대표님을 뵙고 대화를 하던 중 대기업에 가고 싶은 이유에 대해 설명드렸던 시간이 있었습니다. 듣고 계시던 대표님께서는 다음과 같은 답변을 주셨습니다. 시야의 문제네요. 당시에 저는 증명에 대해 말씀드리고 있는데 시야를 언급하셔서 내가 설명을 잘못하고 있었나? 라는 생각을 하며 의도가 정확히 전달된거 같지 않아 아쉬운 마음이 들었습니다. 그런데.. 이상하게도 시야 라는 단어가 머리속에 멤돌며 정리를 해야할것만 같은 찜찜한 기분을 만들어내곤 했습니다. 대기업에 가고싶은 이유 스스로를 증명하고 싶기 때문입니다. 내가 알고 있는 지식이 어느 정도 트래픽을 버티는지 ..