목록Develop (22)
새벽을 밝히는 붉은 달
회사에서 벡터 데이터베이스 도입한 것은 알고 있었는데, 인공지능 쪽에 쓰이는 데이터베이스인 것만 알고 정확히 뭔지 잘 모르고 있었다. 점차 팀 내에서 MLOps 관련된 프로젝트가 늘어나는 것을 보며 나도 알고 있어야 언젠가 관련 업무를 할당받았을 때 더 빠르게 이해할 수 있을 것 같아서 살펴보려고 한다. 1. 관계형 데이터베이스는 AI 애플리케이션에 적합하지 않다 우리는 일반적으로 데이터를 저장할 때 관계형 데이터베이스에 저장하고, 이를 기반으로 검색한다. AI 애플리케이션의 경우 복잡한 작업을 실행할 때 장기 기억을 이해하고 유지하는데 중요한 의미 정보를 전달하는 데이터 표현 유형인 벡터 임베딩을 사용한다. 임베딩은 고차원의 단어나 이미지 같은 데이터를 실수 벡터 형태로 표현한 결과물을 의미한다. 아래..
1. 들어가며 hdfs에 로그 파일이 쌓이고 있었는데, 로그가 너무 많이 쌓여서 hdfs disk full로 인해 spark를 사용할 수 없었다. 이때 팀리더께서 제안을 해주셨던 방법 중 하나가 logrotate였는데, (결국에 다른 방법으로 해결하긴 했지만) 처음 접한 도구여서 한 번 정리를 해보고자 한다. 2. logrotate란 위에서 말했듯이 DBMS, 어플리케이션 서버, 웹 서버 등을 운영하다보면 자연스레 로그가 쌓이게 된다. 이슈 등이 발생했을 때 쌓인 로그들을 보면서 이슈의 원인이 무엇인지 파악하게 된다. 따라서 로그를 삭제하긴 힘든데, 그렇다고 계속 쌓이는 로그를 가만히 둘 수는 없다. 만약 계속 쌓이는 로그를 가만히 둔다면 서비스의 성능 저하가 오거나, 서비스가 아예 사용이 불가능한 상태..
며칠 전에 운영하던 서버에서 Too many open files 에러로 인해 노트북을 사용할 수 없다는 이슈가 있었다. 만약 내가 백엔드 직무였고 서비스와 직접 맞닿아 있는 부분을 운영하고 있었다면 이미 마주쳐봤을 것 같지만, 나는 사내 대상으로 운영하는 서버여서 접속자 수나 커넥션 등에 대해서는 신경을 쓰지 않다가 이번에 처음으로 만나게 된 에러라 잊지 않기 위해 기록한다. 1. 원인 최대로 열 수 있는 파일 디스크립터의 수를 NOFILE이라고 부른다. 이 NOFILE에는 limit이 있는데, 프로세스가 그 제한을 넘었기 때문에 발생하는 에러이다. 2. 해결 방안 NOFILE에 대한 limit을 늘려주면 된다. 이때, 나 혼자 사용하는 것이 아닌 멀티유저로 운영되는 서버의 경우, 각 프로세스의 limi..
2년 전에 Colab에서 Selenium을 사용해서 크롤링을 했었는데, 이번에 크롤링을 할 일이 생겨 같은 코드를 동작시키니 WebDriverException: Message: Service /usr/bin/chromedriver unexpectedly exited. Status code was: 1 라며 크롤러를 동작시킬 수 없었다. 구글링을 통해 올해 1월에 올라온 글을 참고해봐도 같은 에러가 발생했다. 결국엔 코랩 깃허브 레포의 이슈에서 해결방법을 찾았다. 아마 우분투 버전이 바뀌면서 그런 것 같다고 한다. 글 작성 시점 기준 (2023.05.13) Colab에서 Selenium을 동작시킬 수 있는 코드는 다음과 같다. %%shell sudo apt -y update sudo apt install ..
Redshift에 간단한 weather data를 넣으려고 하는데, 자꾸 아래처럼 에러가 났다. 나는 분명 INSERT 문을 사용해 값을 넣어주려고 했는데, (INSERT INTO . VALUES (value 1, value 2, ...) 를 사용했다) 자꾸 값을 컬럼명으로 인식했다. 왜 그런가 했더니, 파이썬은 "(double quotes)과 '(single quotes)를 구분없이 사용이 가능한데, sql에서는 이 둘을 구분하기 때문에 발생한 문제였다. Stackoverflow에 따르면, single quotes는 string literals를 위해 쓰이고, double quotes는 database identifiers를 위해 쓰인다고 한다. 나는 이 사실을 모르고 query의 value를 "로 감..
이번에 라즈베리파이를 사용하면서, ssh 접속을 자주 해야 하는데, 매번 입력하면 귀찮을 것 같아 ssh 접속이 된 터미널을 바로 열 수 있도록 만들어놓았다. 그 과정을 공유해본다. 1. Windows Terminal 설치하기 Windows Terminal은 윈도우에 설치된 terminal과 다르게 마이크로소프트 앱에서 설치해주어야 한다. 다음 링크를 통해 다운로드 받을 수 있다. https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=ko-kr&gl=KR Get Windows Terminal from the Microsoft Store Windows 터미널은 명령 프롬프트, PowerShell 및 WSL과 같은 명령 줄 도구 및..
이번에 진행하게 된 프로젝트에서 쿠버네티스 환경 기반 라즈베리파이 멀티클러스터를 만들어야 하는데, 그 과정을 한 번 기록해보고자 한다. 먼저, 이번에는 라즈베리파이 멀티클러스터를 구성할 것이다. 📚 준비물 라즈베리파이4 4GB 4개 microSD card 16GB 4개 microSD card 리더기 아크릴 케이스 5포트 멀티충전기 Type C - USB 케이블 4개 5포트 스위칭 허브 1개 CAT6 랜 케이블 4개 1. 라즈베리파이에 Ubuntu 20.04 굽기 현재 목표는 라즈베리파이에 우분투 + K8S를 올리고자 하기 때문에, 라즈베리파이에 우분투를 구울 것이다. 1. 다음 사이트에서 Raspberry Pi Imager를 다운 받는다. (호스트 OS에 맞는 OS로 다운 받는다) https://www...