버전 관리 시스템 개념(Version Control System) 버전 관리 시스템(Version Control System, VCS)은 파일의 변경 이력을 저장하고, 여러 사용자가 동시에 작업 및 협업할 수 있도록 돕는 소프트웨어 도구입니다. 주로 소프트웨어 개발 프로젝트에서 코드 변경을 추적하고, 개발자들이 이전 버전으로 되돌릴 수 있게 해줍니다. 버전 관리 시스템의 주요 유형 중앙집중식 버전 관리 시스템(Centralized Version Control System, CVCS) - 중앙 서버에서 저장소를 관리하고, 개발자들이 서버와 통신하여 코드 변경 내역을 저장하고 업데이트합니다. 이 방식의 대표적인 예로는 Subversion(SVN)이 있습니다. 분산 버전 관리 시스템(Distributed Ve..
GPT에 관련된 글들 중 어떤 것을 적을까? 고민을 많이 해봤는데 결국은 ChatGPT에 대한 정보와 나만의 인사이트에 대해서 적어보는 것이 좋을 것 같습니다. ChatGPT가 제 2의 알파고 쇼크를 줬기 때문에 엄청난 지각변동이 일어나고 있고, 수많은 사기꾼들과 협소한 인사이트로 어설픈 미래를 제시하는 사람들이 많을 것이기 때문입니다. 포스팅의 내용이 길어질거라 생각해서 이번 포스팅은 GPT에 대한 개념, 역사, 버전별 정보등을 적고 다음 포스팅에서는 GPT로 일어나게 될 지각변동 등에 대해서 적어보도록 하겠습니다. ChatGPT란? 우선 ChatGPT에 대해서 설명을 하자면, 일론 머스크가 비영리 단체로 만든 Open AI에서 만들었으며 중간에 일론 머스크가 Open AI에서 손을 뗀 후, MS가 많..
편집거리 개념 편집거리 알고리즘(Levenshtein Distance)는 두 개의 문자열 간의 편집거리를 측정하는 알고리즘 입니다. 편집 거리는 문자열을 다른 문자열로 변경하는데 필요한 최소한의 삽입, 삭제 및 대체 작업 수를 나타냅니다. 편집거리 알고리즘은 다양한 응용 분야에서 사용될 수 있는데 맞춤법 검사, 음성 인식, 텍스트 유사성 측정 등에서 사용됩니다. 알고리즘 설명 위 예시는 편집거리를 계산하는 것을 보여주는 예시로 비(rain)와 빛나다(shine)로 설명을 합니다. 우선 rain을 shine으로 변환하려면 r을 s로 바꾸고, a를 h로 바꾸고 e를 삽입합니다. 고로 이 편집거리는 3입니다. 기차(rain)와 빛나다(shine)에 대해서 작업을 하게 된다면, shine앞에 t를 붙이고, s를..
최근 회사 컴퓨터에 PyTorch를 사용해야 되는 상황이 생겨서, PyTorch 사이트에서 있는 가이드대로 최신 버전과 Cuda도 버전 업을 하여서 Torch 설치 시도를 하였으나, Conda로 설치를 하는 것이 실패하고 말았다. 위와 같이 Command를 입력하면, Solving에서 무한 멈춤 현상이 발생하였는데 이 문제를 해결하기 위해 아나콘다를 다시 깔아보고, Cuda도 다양한 11.6.x 버전들을 설치했지만, 아무래도 SSL 문제처럼 보였다. 결국 PIP로 trusted-host로 사이트를 신뢰한다고 표시 한 뒤, 설치를 마무리 하였으나 이번에는 Torch가 Cuda를 인식하지 못하는 문제가 발생하였다. import torch torch.cuda.is_available() 위와 같이 명령어를 날리..
주피터 노트북(Jupyter Notebook)으로 간단하게 프로그램을 돌릴 때, 평상시에는 문제가 없지만 용량이 큰 것을 돌리기 위해서 C가 아니라 다른 드라이브로 돌려야 되는 경우가 종종 있습니다. 이럴 때에는 드라이브를 변경해야 하는데요 주피터의 드라이브를 변경하는 법을 포스팅 하도록 하겠습니다. 주피터 노트북 환경설정 생성 우선 드라이브를 변경하기 위해서는 주피터 환경설정 파일을 만들어야 합니다. (kogpt) C:\Users\user>jupyter notebook --generate-config Writing default config to: C:\Users\user\.jupyter\jupyter_notebook_config.py 위와 같이 jupyter notebook --generate-con..
구글 코랩 구글 코랩(Google colab)은 내 현재 사양이 딥러닝(Deep Learning) 혹은 머신러닝(Machine Learning)을 돌리기 적합하지 않거나, 다양한 기기를 사용해서 통일된 환경으로 작업을 하고 싶거나, 실제 서비스에 적용해보기전에 테스트로 돌리기 용이한 환경입니다. 구글은 코랩이라는 GPU가 탑재된 클라우드 환경을 사용자에게 무료로 제공해주고, 사용자는 코랩에서 다양한 실험을 하면서 구글은 실험 데이터를 얻고 우리는 무료로 빠르게 딥러닝을 테스트 해볼 수 있습니다. 다만 코랩이 고급 환경을 계속 제공해주는 것은 아닙니다. 예를 들어 모델링 학습 시간이 하루가 넘어가는 것이라면 사용을 할 수 없기 때문에 사실상 본섭에 실행을 하기 전 맛보기 정도에 불과하다는 것을 인지해야 합..
처음 이 책을 볼 때에는 그저그런 전문가 분이 집필한 어설픈 가이드북이 아닌가? 라는 생각을 가졌던 것 같습니다. 그러나 이 생각은 책을 펼친지 얼마 되지 않아 그런 생각은 고스란히 사라지고 말았습니다. 아마도 빅데이터 혹은 유사한 직무를 하는 분들은 자신의 직업이 명확히 무엇인지 모르는 분들이 많을 것입니다. 심지어 내가 하는 업무에 대한 명확한 정의를 내지 못하는 사람들이 꽤 많습니다. 이는 유사하면서도 미세하게 나뉠 수 있는 스킬과 업무의 특성 때문인데 년차가 얼마 되지 않을 경우 더더욱 본인의 직업을 정의 내리기 힘들어 합니다. 제가 이 책을 보기전에 회사 동료들 중 년차가 낮은 동료들에게 이렇게 물어본적이 있습니다. “연구원님은 본인의 직업을 디테일하게 정확히 무엇이다 정의 내릴 수 있나요?” ..
한국의 실리콘 밸리인 판교의 SK C&C 데이터 센터에서 화재가 발생하여, 수많은 서비스의 장애가 발생하였습니다. 그런데 유독 카카오가 더 큰 장애가 발생하였고, 유독 큰 욕을 먹고 있는데 이 이유에 대해서 알아보도록 해보겠습니다. 중앙 집중화 카카오의 가장 큰 문제는 바로 중요한 서비스를 모두 한 데이터 센터에 몰아 넣었다는 것입니다. 전원에 문제가 발생하여 다시 전원을 복구하였으면 모든 서비스가 이상없이 돌아야 하는데 지금 쓰고 있는 티스토리(Tistory)의 경우 아직도 모바일로 페이지를 리다이렉트 시킬 정도입니다. 이는 데이터의 상당수가 유실되었거나 DR(Disaster Recovery) 즉, 장애 복구 대응이 부족해서 절차가 없다는 것입니다. 보통 카카오같은 서비스는 장애가 발생하였을 경우 서비..
비츠(Beats)는 컴퓨터, 네트워크, 앱과 같은 데이터를 전송하는 경량 데이터 전달자이다. Beats인 이유는 비츠라는 어플리케이션 하나로 구성된 것이 아니라 상황에 맞게 다양한 비트(Beat)가 있기 때문이다. 로그스태시(Logstash)와 비교 엘라스틱서치에 데이터를 전달해주는 역할로는 로그스태시(Logstash)도 존재하는데 로그스태시는 다양한 소스에서 데이터를 수집하는 커다란 데이터 전송 솔루션이라 본다면 비츠는 로그스태시에 비해 차지하는 공간이 작고, 더 적은 리소스를 사용한다. 게다가 비츠는 수집해야 하는 서버에 에이전트를 설치하는 식이라 목적은 같지만 사용하는 방식이 완전 다르다 할 수 있다. 아래는 엘라스틱서치에서 설명하는 로그스태시와 비츠의 비교내용이다. Beats는 서버에 에이전트로 ..
저는 개인적으로 딥러닝 프레임워크 중에서 케라스(Keras)를 많이 선호합니다. 딥러닝을 텐서플로우로 시작하였고, 다소 어려웠던 텐서플로우 초기 버전에서 텐서플로우 2.0부터는 케라스를 기본으로 하여 텐서플로우도 이제 많은 사람들이 쉽게 딥러닝을 다룰 수 있게 도와줬기 때문입니다. 그런 고마운 케라스라는 존재를 만든 창시자 분이 직접 도서를 집필하였는데요. 1판의 경우 2018년에 나와서 많은 2019년 ~ 2020년에 대규모 변화가 있었던 텐서플로우의 비해 약간 늦은 감이 있어 현재 시점으로는 보기에 힘들 수 있는데요. 개정 2판이 나오면서 도서 역시 현재 버전에 맞게 다양하게 바뀌었습니다. 양장본 게다가 도서는 양장으로 되어 있어서 책 받침대에 놓거나 그냥 보기에도 상당히 편합니다. 저는 양장으로 된..
MySQL(MariaDB 포함)에서 날짜값을 더하거나 뺄 때 사용하는 함수는 DATE_ADD와 DATE_SUB가 있다. 이 함수를 사용해서 현재일보다 7일 전, 한달 전과 같은 데이터를 가지고 오거나 시한이 있는 컨텐츠의 경우 마감일을 지정한다든지 하는 로직등을 구현할 수 있다. DATE_ADD 및 DATE_SUB 사용법 DATE_ADD(date, INTERVAL value interval_type) DATE_SUB(date, INTERVAL value interval_type) 날짜를 더하거나 빼는 방법은 메소드만 다를 뿐 사용 방법은 동일하다. 첫번째 인자인 date는 수정해야 할 대상 날짜값이다. 두번째 인자인 value는 더하거나 뺄 시간 값이고, interval_type는 시간 유형이다. 시간 ..
집에 컴퓨터와 노트북도 많다보니 키보드도 워낙 많은데 메인으로 사용하고 있는 키보드는 스카이디지털의 NKEY라는 키보드를 사용하고 있습니다. 컴퓨터 덕후들은 많이 아는 키보드고 저 역시 만족하면서 사용 중인데 동일한 키보드를 2개나 구입해서 세컨 컴도 같은 제품으로 사용 중일 정도로 만족하는 제품입니다. 6만원 정도의 가격으로 산 가성비 있는 기계식 키보드인데 어느날부턴가 키 하나가 잘 안눌리거나 여러번 눌러지는 현상이 발생했습니다. 이게 저도 모르게 의식을 못하고 있던 것인지 어느날부터 오타가 많이 늘었다 단순히 생각했지만 해당 증상이 심해지기 시작했고, 언젠가부터 오타율이 너무 심하거나 게임을 할 때에도 지장이 발생했습니다. 이와 같은 현상을 채터링 현상(Chattering)이라 하는데 키보드가 입력..