목록개발 (99)
Joonas' Note
배경 미디엄 블로그를 보다보면 아래와 같이 예상 읽기 시간이 나온다. 예전에 사람이 글을 읽는 데 걸리는 평균 시간을 알아본 적이 있다. WPM(Words per minute) 라고 부르는 단위도 있어서 이미 연구가 있었던 듯 하다. 아래와 같이 여러 나라에 대해서 WPM을 계산한 연구도 있지만 한글은 빠져있다. 한글을 제외하면 평균적으로 190~200 WPM 정도의 속도이다. TimeToRead | Wolfram Function Repository Function Repository Resource: TimeToRead resources.wolframcloud.com 그래서 한글에 대한 WPM을 찾아보다가 120 정도라는 글을 찾았고 한글과 영문의 분포에 따라 적절히 계산하기로 했다. 영어의 경우에는 ..
배경 노래를 꽤 다양하게 듣는 편인데 최근 한국 노래들에 이지리스닝류가 많아지기도 했고, 한국어 가사의 비중이 점점 줄어들고 있는 등 한국 노래 가사의 트렌드가 궁금해져서 한번 데이터를 분석해보기로 했다. 데이터는 멜론 연대별 TOP 100 차트로부터 제목/가수/가사 정도만 수집했고, 기억이 맞다면 약 8시간정도 걸렸다. 정말 영어가 많아졌는가? 마침 1964년부터 2023년까지 60년의 데이터가 쌓였고, 결론부터 말하자면 영어 비중은 많아졌다. 2023년에 들어서는 영어 가사의 비중이 25% 를 넘을 정도로 많아졌고, 최근에 사람들이 이런 사실을 체감하는 이유는 2011년 이후로 10년만에 영어 비율이 더 커지고 있기 때문으로 보인다. 영어 비중은 2008~2012년 사이에 잠시 상승하고 그 뒤로는 ..
눈코입 맞추기 게임 만들기 2편 눈코입 맞추기 게임 만들기 1편 예전부터 만들어보고 싶었는데 미루고 미루다가 이번에 만들만한 이유가 생겨서 구현해보기로 했다. 회사 티타임 내기용 게임을 준비하는데, 아래와 같이 눈코 blog.joonas.io 문제점 2편에서는 얼굴을 제대로 찾지 못하는 이슈를 고치면서, 사진에 있는 모든 얼굴을 인식해서 퍼즐을 만들도록 변경했다. 하지만 아래와 같이 고개를 갸울인 얼굴 사진은 결과가 원하는 대로 나오지 않았다. 따라서 아래의 빨간 네모처럼 얼굴이 회전한 각도를 새로 구하고, 그에 맞게 다시 face landmark를 찾아야한다. 얼굴 회전시키기 정확한 출처는 모르겠으나 주로 face landmark를 추출할 때 68개의 점을 찾는다. 지금까지의 결과 역시 위 68 fac..
눈코입 맞추기 게임 만들기 1편 예전부터 만들어보고 싶었는데 미루고 미루다가 이번에 만들만한 이유가 생겨서 구현해보기로 했다. 회사 티타임 내기용 게임을 준비하는데, 아래와 같이 눈코입을 보고 누구인지 맞추는 게임 blog.joonas.io 문제점 1편에서는, 사진에서 얼굴 부분의 비율이 작으면 얼굴을 제대로 찾지 못한다는 문제가 있었다. 1편의 마지막에 얼굴 부분만 잘라낸 이미지에서 face landmark를 찾도록 했더니 결과가 개선되는 것을 확인했으니, 이 작업을 그대로 코드로 작성했다. 해결 먼저 이미지에서 얼굴을 찾는 API로 faceapi.detectAllFaces 를 사용할 수 있다. 한 번의 호출로 이미지에서 찾은 모든 얼굴들의 bounding box 배열을 반환한다. const optio..
예전부터 만들어보고 싶었는데 미루고 미루다가 이번에 만들만한 이유가 생겨서 구현해보기로 했다. 회사 티타임 내기용 게임을 준비하는데, 아래와 같이 눈코입을 보고 누구인지 맞추는 게임을 쉽게 만들 수 있지 않을까했다. 얼굴에서 특징점을 추출하는 솔루션은 꽤 오래 전부터 있었기때문에, 어렵지 않게 찾을수 있을거라 생각했고 실제로도 그랬다. 우선은 이미지를 업로드하고 결과를 바로 보기에 웹이 편할 것 같고, 문제를 만드는 것을 포함해서 게임 UI 까지 구현하는 것도 고려해서 javascript 라이브러리로 찾아보았다. 처음에는 OpenCV-javascript 를 사용해보려고 했는데, 생각만큼 얼굴 사진에서 face landmark 를 잘 찾아내지 못했었다. 얼추 찾기는 하는데 만족스럽지는 못했다. 그래서 ML..
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은 실..