본문 바로가기

[Github] 효율적인 개발 프로세스 구축을 위한 필수템, Github Actions 매일 특정 사이트를 크롤링해서 데이터를 추출하거나, 수정사항이 있을 때마다 배포를 하는 등 특정 시간마다 주기적으로 실행시켜야 하는 작업들이 있을 수 있다. 이런 과정을 자동으로 할 수 있게 도와주는 CI/CD 툴들이 이전에도 Jenkins나 전설의 cronjob 등으로 존재했지만, 2018년 github에서 제공하는 Github Actions가 나오면서 판이 뒤바뀌기 시작했다. 이번 글에서는 따로 툴을 구축할 필요도 없이 repository와의 뛰어난 연동성을 지닌 Github Actions에 대해 살펴보고자 한다. CI/CD 란?CI/CD는 Continuous Integration & Continuous Delivery / Deployment의 약자로, 지속적으로 통합 및 배포하는 과정을 말한다. 테..
[KG] 세상의 모든 데이터를 하나로 연결하는 지식그래프 (Knowledge Graph) '2022 항저우 아시안게임 금메달리스트는?', '금메달리스트들이 태어난 곳은?', '해당 출생지들에서 태어난 다른 사람들은?' 이렇게 우리가 궁금한 내용은 꼬리에 꼬리를 물고 이어질 수 있다. 이러한 정보를 각각 나눠두지 않고 하나의 그래프로 연결시킬 수 있는데, 이것을 바로 '지식그래프(Knowledge Graph)'라고 부른다. 이번 글에서는 지식그래프란 무엇인지 살펴보고, 어떻게 활용되고 있는지 알아보고자 한다. 지식그래프(Knowledge Graph)란? 지식그래프(Knowledge Graph)는 말 그대로 "지식"을 "그래프"의 형태로 표현한 것이다. 아래 그림에서의 예시들("다빈치는 모나리자를 그렸다", "모나리자는 루브르 박물관에 위치해 있다" 등)과 같이 각 데이터 개체(entity) 사..
[Docker] Docker란 무엇인가? "어라 제 서버에서는 잘 돌아갔는데.. 왜 xx님 서버에서는 안될까요?😲" 웹 애플리케이션 등을 개발하다 보면 흔히 마주쳤던 상황이다. 분명 작업하던 서버에서는 문제 없이 잘 돌아갔는데 왜 다른 서버에서는 매번 환경 설정 문제가 발생할까? 그래서 존재하게 된 것이 바로 Docker, 도커라는 친구이다. 이렇게 고래가 컨테이너 박스를 등에 이고 바다를 떠다니는 모습이 로고인데, Docker의 역할을 알고 나니 정말 잘 표현했다는 생각이 든다. Docker란 무엇일까? (a.k.a 밀키트 조리) Docker는 chatGPT 친구가 말해주듯이, 특정 애플리케이션을 어느 머신에서나 똑같이 구현할 수 있도록 도와주는 "컨테이너(container) 기반의 오픈소스 가상화 플랫폼"이다. 어느 머신(서버)에서나 con..
[글또] 8기를 시작하며 "개발 블로그를 꾸준히 키워나가야지!" 하고 마음먹은지 근 5년이 지난듯하다 😥 나에겐 강제성을 부여하지 않으면 이대로 계속 흘러만 가겠구나 싶어서 지원하게 된 글또..! 매번 고민하다가 다른 일에 더 집중하자는 핑계로 여러 기수를 날렸었는데, 올해가 되어서야 마음을 다잡고 처음 8기로 참여하게 됐다. (이 첫 글또 시작 글도 제출 마감 직전에 쓰고 있는걸 보니 정말 하길 잘했다는 생각이 든다..😅) > '글또'란? "글쓰는 또라이가 세상을 바꾼다"의 줄임말인 글또는 개발자 글쓰기 모임이다. (링크: https://www.notion.so/zzsza/ac5b18a482fb4df497d4e8257ad4d516) 보통 개발자 관련 모임이라면 서비스를 개발하거나 스터디 중심의 모임이 많은데, 글쓰기 모임이라는..
[Git] fork 해 온 repository 내용 업데이트(pull) 하기 git remote add upstream "[fork 해 온 기존 repository url]" git fetch upstream git pull upstream main 참고 : https://stackoverflow.com/questions/3903817/pull-new-updates-from-original-github-repository-into-forked-github-repository
[CS224W] 3-1. Node Embeddings 이 포스트는 CS224W : Machine Learning with Graphs 강의를 기반으로 작성되었습니다. Graph representation learning은 task에 상관없이 그래프를 사용한 머신러닝이 효율적으로 feature 학습을 하는 것이다. 매번 feature engineering을 하지 않아도 되며, 벡터가 네트워크 구조를 capture하도록 한다. 이를 위해 필요한 node embedding에 대해 알아보고자 한다. node embedding node를 임베딩 공간으로 맵핑하는 것으로, node를 인코딩해서 임베딩 공간 내 유사성이 네트워크 내 유사성을 나타내도록 하는 것이다. 학습 과정은 다음과 같다. encoder (ENC) 정의 : node가 embedding 공간으로 map..
[CS224W] 2-3. Graph-level Prediction 이 포스트는 CS224W : Machine Learning with Graphs 강의를 기반으로 작성되었습니다. Graph-level 예측은 전체 그래프의 구조를 나타내는 feature를 기반으로 생성된다. 해당 feature들을 알아보기 전에, kernel 개념에 대해 먼저 알아보고자 한다. Kernel & Kernel matrix Kernel - K(G, G') : 그래프 간 유사도나 datapoint 간 유사도를 측정하여 실수값을 반환한다. Kernel matrix : 모든 datapoint 쌍이나 그래프 쌍 간의 유사도를 측정하는 행렬로, 항상 양수 값(positive eigenvalues)을 가지며 대칭 행렬이다. Graph Kernel 핵심 아이디어 : BoW(Bag-of-Words: 문서에 ..
[CS224W] 2-2. Link-level Prediction 이 포스트는 CS224W : Machine Learning with Graphs 강의를 기반으로 작성되었습니다. link-level 예측은 기존 link들에 기반하여 새로운 link들을 예측하는 task로, 모든 node pair들에 대해 순위를 매기고 그 중 상위 K개 node pair를 link로 예측하는 식으로 진행된다. 따라서 node pair들에 대한 feature를 구상하는 것이 핵심이다. link prediction task는 세부적으로 두 가지로 나눌 수 있다. link missing at random : 랜덤으로 지워진 link 예측 links over time : 시간이 지남에 따라 진화되는 네트워크가 있을 때, 시간 경과에 따라 link 예측 (미래에 나타날 link 순위 목록 생성)..