목록전체 글 (252)
Joonas' Note
git에 대한 기본적이면서 핵심이 되는 컨셉은 아래 글에서 정리했다. 원격 저장소에 대한 간단한 설명도 있으니 먼저 읽어보는 것을 권한다. All about git - 핵심 개념 정리 소스코드를 저장할 개념으로 학생때부터 git과 github을 꾸준히 사용했는데, 어느덧 거의 10년차가 되었다. 그렇다보니 주변에 git 에 대한 내용을 설명하는 경우가 많았는데, 사람들이 항상 혼란스 blog.joonas.io 함께 작업하기 여러 사람들과 하나의 레포지토리(repository)로 공동 작업하는 것은 여러 방법이 있다. 문제는 이 하나인 레포지토리의 코드가 가만히 있지 않다는 것이다. push 현재 내 로컬의 브랜치 상태를 원격 레포지토리(예를 들면 GitHub)에 업로드하고 싶은 경우, push 커맨드를 ..
git에 대한 기본적인 컨셉과 용어는 아래의 글에서 정리했다. All about git - 핵심 개념 정리 소스코드를 저장할 개념으로 학생때부터 git과 github을 꾸준히 사용했는데, 어느덧 거의 10년차가 되었다. 그렇다보니 주변에 git 에 대한 내용을 설명하는 경우가 많았는데, 사람들이 항상 혼란스 blog.joonas.io 그리고 commit 을 쌓기 위해 stage 컨셉에 대한 이해는 아래의 글에서 정리했다. All about git - 상태(status) 관리하기 git에 대한 개념과 용어가 헷갈리시는 분들은 아래 글을 참고해주세요. All about git - 핵심 개념 정리 소스코드를 저장할 개념으로 학생때부터 git과 github을 꾸준히 사용했는데, 어느덧 거의 10년차 blog.j..
git에 대한 개념과 용어가 헷갈리시는 분들은 아래 글을 참고하면 좋다. All about git - 핵심 개념 정리 소스코드를 저장할 개념으로 학생때부터 git과 github을 꾸준히 사용했는데, 어느덧 거의 10년차가 되었다. 그렇다보니 주변에 git 에 대한 내용을 설명하는 경우가 많았는데, 사람들이 항상 혼란스 blog.joonas.io 상태(status) git에는 파일의 상태(status)라는 개념이 있다. 아래의 명령어를 한번이라도 본 적이 있지만 자세히 생각해본적이 없다면, 이번 글은 무척 도움이 될 것이다. $ git status 이전 글에서 설명했듯이, git은 "파일이 변경된 기록"을 관리한다. 그리고 그 기록을 저장하는 단위이자 행위가 바로 커밋(commit)이다. commit은 실..
소스코드를 저장할 개념으로 학생때부터 git과 github을 꾸준히 사용했는데, 어느덧 거의 10년차가 되었다. 그렇다보니 주변에 git 에 대한 내용을 설명하는 경우가 많았는데, 사람들이 항상 혼란스러워 하는 부분을 이번 포스트 (어쩌면 시리즈)로 정리하고자 한다. Git vs. GitHub 가장 중요한 것은 git 과 github 의 차이부터 아는 것이다. 특히 수많은 IDE가 git의 기능을 지원하면서 github(또는 다른 서버)와의 연동 역시 당연하게 지원하다보니, 둘을 구분하지 못한 채 개발하는 경우가 많이 있었다. git 먼저, git은 온전히 "버전 관리 시스템(VCS; Version Control System)"이고 하나의 프로그램이다. 파일들의 변경 히스토리들을 기록하고 관리하는 것이 ..
Logit logit 함수를 이해하려면 odds 를 알아야한다. logit 함수는 \( logit(p) = log(odds) \) 이기 때문이다. Odds odds 는 어떤 사건이 발생할 확률과 발생하지 않을 확률을 비교한 값이다. 일반적으로는 성공 확률을 실패 확률로 나누어서 계산한다고 한다. $$ odds = \frac{p}{1-p} $$ 여기에 로그를 씌운 함수를 logit function 이라고 부른다. $$ logit(p) = log(odds) = log(\frac{p}{1-p}) $$ 이 logit function 을 x=[0, 1] 에 대해서 그래프를 그려보면 아래와 같이 생겼다. Sigmoid sigmoid 함수는 logit function의 역함수이다. 즉, x와 y를 뒤집은 그래프라는 ..
사실 블로그에 개발과 관련한 글을 올리는 건 2014년 구글 블로그를 시작으로 알고리즘 문제 풀이를 간단하게 올렸었다. Google Blogger 플랫폼 자체에 업데이트가 별로 없고, 자체적으로 통계를 내어주는 서비스도 없었다. (Google Analytics 스크립트를 별도로 삽입하면 가능) 그 외에도 여러 이유로 2017년 12월에 티스토리로 옮겼는 데, 정확한 이유는 기억이 나질 않는다. 2023년 6월 현재를 기준으로, 이제는 Google Blogger에 작성했던 170개의 글보다, 이 곳 티스토리 블로그에서 작성한 글이 220개로 더 많다. 최근 블로그에 유입하는 키워드나 내가 다루는 관심 주제들의 변화도 있었지만 블로그의 통계를 기록으로 남기는 것도 좋을 것 같아서 이렇게 포스팅을 한다. 먼저..
1. 실제로 현재 git config 에 origin 이 없어서 발생하는 오류일 수 있다. 아래 명령어로 remote.origin 주소가 올바르게 설정되어있는 지 확인하고, git remote -v 없다면 아래와 같이 배포하고자 하는 git repository의 주소를 추가한다. git remote set-url origin https://.... 2. origin 설정은 분명 잘 되어있는데 안되는 경우 Failed to get remote.origin.url (task must either be run in a git repository with a configured origin remote or must be configured with the "repo" option). npm 과 관련한 모듈과 ..
정의 Dependency Inversion Principle (DIP; 의존관계 역전 원칙) 프로그래머는 추상화에 의존해야지, 구체화에 의존하면 안된다. 더 자세히는 이렇게 말한다. 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있다. 1. 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다. 2. 추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다. 의존 관계가 많을수록 코드의 변경이 잦아지는 것은 당연하다. 변경할 곳이 많다는 의미는 코드를 파악하고 수정하는 일이 무척 어렵다는 뜻이다. 의존 관계에 신경을 쓰는 이유는 이런 부분..