필터 버블(Filter Bubble) 개념 필터 버블(Filter Bubble)은 사용자의 정보(위치, 클릭, 검색 이력 등)를 통해 개인화된 결과물을 기반으로 사용자가 필터링된 정보만을 접하게 되어 마치 거품처럼 사용자를 가둬버리는 현상을 말합니다. 이 용어는 미국의 정치 참여 시민단체 '무브온'의 이사장인 엘리 프레이저(Eli pariser)의 생각 조종자들(원제 The Filter Bubble, 2011)이라는 저서에 처음 등장하였습니다. 즉 어찌보면 개인화(Personalize)의 함정이 될 수 있는데 우리가 일반적으로 알 수 있는 것은 유튜브등을 통해서 특정 정치 성향의 내용을 보다보면, 온통 그 정치 성향의 컨텐츠로 도배를 하여 모든 사람들이 이런 생각을 하게 되는 착각에 빠지곤 합니다. 필터..
아마존 추천 시스템 미국에서 가장 추천을 많이 활용하는 기업 3개(넷플릭스, 구글, 아마존) 중 아마존(Amazon) 역시 넷플릭스와 구글처럼 독자적인 모습의 추천 사례들을 만들어 왔습니다. 사실 아마존은 다른 업체보다 추천 시스템을 빨리 사용했으며, 협업 필터링을 무려 2003년부터 사용한 것을 알 수 있습니다. 위 리포트는 아마존이 2003년도에 낸 리포트로 제목을 보면 알 수 있지만 Item-to-Item 기반의 협업 필터링을 사용했다는 것을 알 수 있습니다. 아마존은 협업필터링 중 특히 Item-to-Item에서 많은 효과를 보고 있다고 하는데 매출의 35% 이상을 추천 알고리즘으로 내고 있다고 말을 하기도 했습니다. 아마존은 현재 전자상거래가 가장 큰 매출을 차지하고 있지만, Prime Vide..
개체명은 단어의 의미를 어느정도 파악하기 위해서 사용하는 방법으로 단어의 꼬리표를 다는 방법이다. 예를 들어, 홍길동이라는 것은 사람이름이고, 삼성전자는 기업이름이라고 한다면, 컴퓨터는 문서의 내용을 어느정도 이해할 수 있게 된다. 게다가 많은 개체명의 경우 복합 명사인 경우가 많은데 의미와 함께 단어를 복합명사로 추출하여, 강력한 분석용 단어를 추출할수도 있게 된다. 형태소 분석은 순수하게 의미가 있는 단어로 최대한 잘게잘게 나누기 때문에 문장의 뜻을 정확하게 알기 위해서는 분명 필요한 기능일 수 있으나, 데이터 분석에서 사용을 하게 되는 경우 너무 작은 단위의 단어는 feature만 늘어나게 되고, 문서간의 유사도 등을 비교하거나 검색에서 문서를 찾을 때에도 비효율적이 된다. 개체명 구현 코드 (Ko..
금칙어는 자연어 처리(NLP)에서 원치 않는 데이터를 제거하기 위한 방법중 가장 효과가 좋은 방법입니다. 형태소 분석으로 생성된 품사라든지, 개체명 사전에서 생성된 개체명이 마음에 들지 않을 경우 금칙어 사전을 만들어서 대응을 하는 것이죠. 품사 사전이나 개체명 사전에서 지우면 되는 것이 아니냐 할 수 있는데 사전이라는 것은 다양한 곳에서 활용이 될 수 있으며, 특정 서비스에서만 제거가 필요한 경우가 있을 수 있기 때문이고, 제대로 추출이 되었지만 필요가 없을 수도 있기 때문입니다. 금칙어 예제 소스 private Set STOP_KWD; public void action() { setStopKwd(); Komoran komoran = new Komoran(DEFAULT_MODEL.FULL); Strin..
올해에는 단연코 ChatGPT 열풍이라 할 수 있겠지만, 올해 비록 영상 조작 논란으로 말이 많지만 멀티모달의 가능성을 열어주고, 앞으로 무궁무진한 서비스가 열릴 것으로 예상되는 구글의 제미나이(Gemini) 서비스로 인해서 자연어처리(NLP)라는 항목을 벗어나 멀티모달의 영역으로 갈 것이라 예상이 된다. 블로그에서 유튜브로 넘어가듯, ChatGPT에서 영상처리로 가는 것은 필연적일 것이며 집에 있는 카메라등과 스피커 등을 통해서 앞으로 수많은 의사소통이 이루어지지 않을까 예상된다. 우선 OCR을 Tesseract를 사용하여 만든적(정확히는 사용한적)이 있긴 하지만, 블로그에 정리를 한적이 없는 것 같아서 이렇게 포스팅 하도록 한다. OCR(Optical Character Recognition)이란? O..
편집거리 개념 편집거리 알고리즘(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() 위와 같이 명령어를 날리..
구글 코랩 구글 코랩(Google colab)은 내 현재 사양이 딥러닝(Deep Learning) 혹은 머신러닝(Machine Learning)을 돌리기 적합하지 않거나, 다양한 기기를 사용해서 통일된 환경으로 작업을 하고 싶거나, 실제 서비스에 적용해보기전에 테스트로 돌리기 용이한 환경입니다. 구글은 코랩이라는 GPU가 탑재된 클라우드 환경을 사용자에게 무료로 제공해주고, 사용자는 코랩에서 다양한 실험을 하면서 구글은 실험 데이터를 얻고 우리는 무료로 빠르게 딥러닝을 테스트 해볼 수 있습니다. 다만 코랩이 고급 환경을 계속 제공해주는 것은 아닙니다. 예를 들어 모델링 학습 시간이 하루가 넘어가는 것이라면 사용을 할 수 없기 때문에 사실상 본섭에 실행을 하기 전 맛보기 정도에 불과하다는 것을 인지해야 합..
챗봇을 만드는 방법은 상당히 많이 있으나 가장 고전적이면서 가장 많이 활용되고, 기업들이 가장 많이 활용하고 있는 Rule-Based 챗봇을 만들어보도록 한다. 사실 룰기반 챗봇은 다른 말로 표현하는 것이 워낙 많기도 하다. 기업에서 상용적으로 사용하는 Rule-Based는 대표적으로 Intent(의도)와 Entity(개체)를 관리해서 하는 경우가 많고 이들도 큰 틀로 Rule-Based라 할 수 있다. Rule-Based 설계하기 Rule-Based가 뭔지 모르는 분들에게 간단하게 설명을 한다면 규칙을 직접 설계해서 어떤 말이 만들어진 규칙에 해당한다면 Answer를 하는 것이다. 여기서 설명할 Rule-Based는 너무나 방대한 챗봇을 만드는 것이 아니라 간단하게 만들어볼 것이며 Entity와 Int..
우리팀은 대화를 회사 메신저를 활용하지 않고 디스코드를 사용하고 있다보니 디스코드에 흥미를 느끼게 되었고 디스코드로 뭔가 제품을 시연하는 것이 상당히 편리하다는 것을 깨닫게 되었다. 별도의 데모 페이지를 구축하는 것보다 디스코드 봇을 만들어서 시연을 하게 되면 업무의 능률도 빠르고 필자처럼 back-end api를 만드는 사람에게 상당히 유용해 보인다. 디스코드는 다양한 언어를 제공해주지만 라이트하게 가기 위해서 파이썬으로 진행하려 한다. 처음에는 자바로 진행하려 했지만 목업 수준을 만들기 위해서 자바로 하는 것만큼 바보 같은 것이 없기 때문에 우선 Python으로 한 후 막히는 부분이 있으면 그때 자바를 고려할 예정이다. 라이브러리 설치 D:\Project\bots\discord>pip install ..
기계독해(MRC)는 만드는 사람 맘이기 때문에 사실 다양한 방법들이 존재한다. 챗봇을 하나 만들어도 다양한 기법들이 존재하는 것처럼 챗봇과 본질적으로 유사한 기계독해 역시 마찬가지이다. 다만 기계독해는 문서를 기반으로 공부를 해야 한다는 차이가 있을 것이다. 기계독해 타입들 아래는 필자가 생각하는 기계독해의 타입들이라 생각한다. 물론 다양한 기법들이 존재하지만 대표적으로 몇가지만 끄적여 보았다. 1. 학습없이 진행하는 실시간 타입 가. 질문에 해당하는 가장 유사한 문장을 찾기 나. 해당 문장에서 가장 적합한 답변을 추출하기 이렇게 적으니 엄청 심플해 보인다. 엄청 간단해보이지만, 사실 위 내용을 구현하기 위해서는 인덱스를 추출하고 어느정도 의미를 추출해야만 가능하다. 2. 질문과 문장을 학습한 나름 딥러..
기계독해(MRC)란 컴퓨터에게 질문을 던졌을 때 답을 하는 매우 인공지능스러운 분야이다. 그러나 기계독해라는 것이 한글 기준으로 참 지랄맞은 부분이 있기 때문에 포스팅을 하면서 생각의 정리를 하고자 한다. 처음에 BERT를 봤을 때는 참 만능처럼 보였고, Step by Step으로 KorQuad를 진행하였을 때 뭔지도 모른 상태로 남들이 하라는 대로 하였다. 내 머리속에 기계독해는 문서를 던지면 문서를 통째로 읽고 다음에 질문을 던지면 답변을 하는 녀석으로 생각했지만 KorQuad의 Training 셋을 보면서 의문을 갖게 되었다. 해당 데이터는 문장, 질문, 답변이 세트로 되어있었기 때문이다. 그러다보니 "이 training set은 어떻게 만들지?"라는 의문이 생겼고 저 부분이 기계독해를 만드는데 가..
DeFi의 개념 DeFi는 Decentralized Finance의 약어로 블록체인 기술을 활용한 탈중앙화 금융 플랫폼을 말합니다. DeFi와 완벽한 안티테제를 생각하면 현재 시중의 은행이나 보험사 등을 생각하면 됩니다. DeFi는 매우 혁신적이면서도 아직 위험한 서비스이자 사상입니다. 모든것을 코딩으로 의존하고 책임을 지는 사람조차 없는 그런 시스템이다보니 작은 버그로 인해서 모든 암호화폐가 탈취 될 수도 있고, 악의적인 공격자로 인해서 시스템이 망가질수도 있는등 아직은 꽤나 불안정한 모습을 보여주고 있고 실제로 그러합니다. DeFi의 서비스 종류 DeFi는 블록체인으로 만들어졌으며, 이더리움과 같이 튜링완전성(자원만 충분하면, 한마디로 모든 것을 프로그래밍 할 수 있다라는 의미)을 지원하는 코인을 기..
본 포스팅은 크립토좀비(Crypto Zombies)의 레슨1 챕터10 (함수 더 알아보기 편)의 내용들을 비개발자를 대상으로 설명하고 풀이 하였습니다. 크립토좀비는 룸 네트워크(Loom Network)라는 블록체인 기반의 게임 스타트업이 만든 게임을 만들어보는 이더리움 개발 강의로서 매우 재미있고 쉽게 솔리디티(Solidity)를 배울 수 있는 가이드를 제공합니다. 함수의 반환(Return)값 솔리디티는 자바스크립트(Javascript)와 유사하나 몇가지 추가적으로 설정을 해야 되는 것이 있습니다. 개발자의 입장에서는 귀찮을 수 있겠지만 돈이 움직이는 것이니, 귀찮더라도 명시적으로 설정을 하는 것이 프로그램 입장에서나 프로그래머 입장에서나 컨트랙트를 이해하는데 유리할 것입니다. 솔리디티에서 반환값 설정 ..
본 포스팅은 크립토좀비(Crypto Zombies)의 레슨1 챕터9 (Private / Public 편)의 내용들을 비개발자를 대상으로 설명하고 풀이 하였습니다. 크립토좀비는 룸 네트워크(Loom Network)라는 블록체인 기반의 게임 스타트업이 만든 게임을 만들어보는 이더리움 개발 강의로서 매우 재미있고 쉽게 솔리디티(Solidity)를 배울 수 있는 가이드를 제공합니다. Private과 Public의 개념 함수의 성격은 기본적으로 Private과 Public으로 나뉘어져 있습니다. Private은 해당 컨트랙트 내에서만 사용이 되는 것이며, Public은 다른 컨트랙트에서도 호출이 가능한 열려져 있는 성격을 지닙니다. 어떤 건물이 있다고 할 때, Public은 사람들이 건물을 들어올 수 있게 만드는..
본 포스팅은 크립토좀비의 레슨1 챕터8 (구조체와 배열 활용편)의 내용들을 비개발자를 대상으로 설명하고 풀이 하였습니다. 크립토좀비는 룸 네트워크(Loom Network)라는 블록체인 기반의 게임 스타트업이 만든 게임을 만들어보는 이더리움 개발 강의로서 매우 재미있고 쉽게 솔리디티(Solidity)를 배울 수 있는 가이드를 제공합니다. 크립토좀비 솔리디티 #1 (contract 편)크립토좀비 솔리디티 #2 (상태 변수 & 정수)크립토좀비 솔리디티 #3 (수학연산 편)크립토좀비 솔리디티 #4 (구조체 편)크립토좀비 솔리디티 #5 - 배열 편크립토좀비 솔리디티 #6 - 함수(Function) 편 구조체와 배열 활용 구조체와 배열에 대해서 배웠지만 아직 그것을 활용하는 방안에 대해서는 배우지 않았습니다. 이번..
몇개의 포스팅은 한동한 비트코인(Bitcoin, BTC)을 사야 하는 이유 시리즈로 만들어보려고 합니다. 비트코인을 사야 하는 이유는 "지금 당장 비트코인"을 사라는 내용은 아니라 다른 암호화폐보다 비트코인이 낫다라는 뉘앙스에 더 가깝다는 것을 인지해 주셨으면 좋겠습니다. 올해 암호화폐계의 최대 이슈는 단연코 비트코인 기반 프로젝트인 것 같습니다. 그 중에 스타트를 끊은 오디널스 프로토콜(Ordinals Protocol)이 있는데요. 오디널스에 대해서 깊게 알 필요는 없을 것 같아서, 간단히 어떤 기능이 가능한지 알아보도록 하겠습니다. 비트코인의 업데이트 역사 우선 오디널스를 이해하기 위해서는 비트코인의 업데이트 과정을 들여다볼 필요가 있습니다. 세그윗(SegWit) 2017년 세그윗(SegWit)이라는..
드디어 비탈릭의 염원이기도 했던 길고 긴 이더리움(Ethereum) 머지(Merge)가 적용 되었다. 이번에 진행한 머지 작업으로 인해 2.0으로 전환된 것으로 생각하는 분들이 많은데 앞으로 일정(대규모 프로젝트)과 이더리움의 미래 그리고 이더리움 이로 인해서 있을 파장들에 대해서 정리를 해보고자 한다. 머지의 의미 머지(Merge)라는 용어는 병합을 뜻한다. 이번 머지로 인해서 이더리움은 작업 증명(Proof of Work, PoW)에서 지분 증명(Proof of Stake, PoS)로 전환을 하였는데 병합이 무슨 소린가? 싶을 수 있다. 위 그림을 보면, 그동안 이더리움은 작업 증명에서 지분 증명으로 가기 위해서 별도의 체인을 생성했었는데 그것이 바로 비콘 체인(Beacon Chain)이다. 그리고 ..
스테픈의 경우 죽음의 소용돌이를 지금 한참 겪고 있고, 어느정도 안정화되는 단계가 될지 기로에 서 있는 상태라 생각합니다. 그럼 스테픈의 죽음의 소용돌이가 무엇인지 이것이 폰지사기랑 어떻게 다른지 알아보도록 하겠습니다. NFT 신발 가격 하락 스테픈은 게임이다보니 암호화폐 설계가 꽤나 복잡하게 되어 있습니다. 문제는 이렇게 복잡하게 되어 있다면 예상치 못한 문제가 발생할 수 있다는 것입니다. 서브 프라임 모기지 사태가 복잡한 파생 모기지 상품으로 무너졌듯, 화폐 설계가 복잡하면 사이드 이펙이 발생하게 되는 것이죠. 위 스크린 샷은 제가 스테픈을 시작한 후, 신발 NFT의 마켓 가격을 일정 기간마다 스크린샷으로 찍은 것입니다. Default가 Lowest Price이기 때문에 쉽게 가장 싼 가격을 찍은것이..
최근 들어, 테라(terra) 및 루나(luna) 사태를 기억할 것이다. 테라는 디파이(Defi)에 특화된 코인으로 스테이킹을 하면 20% 수익을 준다는 것을 기반으로 많은 투자자들의 자금이 쏠리기도 했었다. 게다가 알고리즘이긴 하지만, 스테이블 코인(Stable coin)이니 많은 사람들이 지금과 같은 상황을 전혀 예상하지 못했을 것이다. 루나 사태 이후, 암호화폐에 대한 스탠스가 확실히 이전같지 않다. 예전에는 투자를 하지 않을때에는 테더와 같은 스테이블 코인으로 변환한 후 시장을 관망하는 경우가 많았다. 게다가 시장이 큰 폭으로 하락을 할 때에는 테더가 약 10% 가까이 올라가는 경우가 있을 정도로 관망 + @의 수익을 내기도 하였다. 문제는 이제 사람들은 스테이블 코인이 몰락할 수 있다는 생각을 ..
많은 스테픈 유저분들이 스테픈과 캐시워크 등으로 GST, GMT와 같은 암호화폐나 혹은 원화를 열심히 채굴하고 있을 겁니다. 스테픈의 경우 많은 돈을 벌 수 있지만 반대로 많은 손해를 볼 수 있는 단점이 있고, 캐시워크의 경우 너무 귀찮은 것과 동시에 주는 돈도 너무 적습니다. 이 둘 사이에 있는 앱으로 저는 메디블록(Medibloc)에서 만든 메디패스(Medipass) 앱을 추천해 드립니다. 캐시워크처럼 불편하지 않으면서도 매수 편리하게 암호화폐를 채굴할 수 있으며 캐시워크보다 더욱 많은 돈을 주기도 하며, 암호화폐 역시 크게 오를 경우, 꽤 높은 수익률을 자랑할 수 있기 때문입니다. 메디패스의 경우 걸음수만 채워지면 코인을 주며, 출석체크를 해도 코인을 줍니다. 저같은 경우 어제 200 메디를 받아서..
스테픈이 정말로 핫하긴 핫한 것 같다. 진짜 살다살다 중국앱을 한국에서 그대로 표절하는 일이 벌어졌다. 그러나 상도가 있지 이정도로 노골적으로 베끼는건 우리가 무슨 중국인가? 그리고 하필 베낀 앱이 중국 앱이냐... 스테픈 화면 위 스크린샷은 스테픈을 캡쳐한 모습이다. 그리고 아래는 이번에 한국에서 새로 만든다는 코인워크이다. 코인워크 진짜 노골적으로 베낀 수준인데 이렇게 앱 만들어서 성공하는 것도 쪽팔리고, 그냥 나오는것 자체가 개 쪽팔리다. 이따위로 만들어 놓고, 네이버 제페토랑 연동한다느니 어쩌느니 말이 많은데.... 진짜 평생 놀림감 당할 것으로 예상되며 이런 앱을 보고 중국에서 한국을 얼마나 욕할지도 예상이 된다. 하긴 한국 사람들은 동네에 무슨 가게가 뜨면 그대로 똑같은 가게를 건너편에 오픈하..
비츠(Beats)는 컴퓨터, 네트워크, 앱과 같은 데이터를 전송하는 경량 데이터 전달자이다. Beats인 이유는 비츠라는 어플리케이션 하나로 구성된 것이 아니라 상황에 맞게 다양한 비트(Beat)가 있기 때문이다. 로그스태시(Logstash)와 비교 엘라스틱서치에 데이터를 전달해주는 역할로는 로그스태시(Logstash)도 존재하는데 로그스태시는 다양한 소스에서 데이터를 수집하는 커다란 데이터 전송 솔루션이라 본다면 비츠는 로그스태시에 비해 차지하는 공간이 작고, 더 적은 리소스를 사용한다. 게다가 비츠는 수집해야 하는 서버에 에이전트를 설치하는 식이라 목적은 같지만 사용하는 방식이 완전 다르다 할 수 있다. 아래는 엘라스틱서치에서 설명하는 로그스태시와 비츠의 비교내용이다. Beats는 서버에 에이전트로 ..
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는 시간 유형이다. 시간 ..
몽고DB(MongoDB)는 자체적으로 소멸 주기 혹은 생명주기라고 하는 TTL(Time to Live) 인덱스 기능이 내장되어 있습니다. 예를 들어 로그 데이터와 같이 일반적인 데이터와 달리 중요도가 적은 경우 Info, Warning, Error 처럼 중요도에 따라 데이터 자동 삭제 시기를 설정할 수 있고, 혹은 특정 주기마다 무조건 삭제를 할 수 있는 기능을 제공합니다. TTL의 구현방법 TTL은 날짜값에 Index를 걸고, expireAfter 속성을 추가적으로 걸면 됩니다. 데이터의 날짜값이 각각 아래와 같다고 가정을 해보겠습니다. A-> 2022년 9월 5일 오후 5시 40분 B-> 2022년 9월 6일 오전 10시 10분 C-> 2022년 9월 5일 오후 7시 20분 그리고 현재 시간이 202..
뷰(View)의 생성 목적 뷰(View)는 관리 측면과 사용성 편의, 유지 보수, 보안 등을 위해서 사용하는 기법이다. 쿼리(Query)가 복잡할 경우 이를 프로그램으로 구현하게 되면 유지보수가 잘 안될 수도 있고, 초급 개발자의 경우 실수를 범할 수 있다. 게다가 쿼리 및 테이블을 공개해야 할 경우 보안 측면에서 문제가 발생할 수 있다. 즉, 뷰는 어떤 하나의 목적으로 사용하는 것이 아니라, 편의성, 보안성, 유지 보수 등의 다양한 이유로 인해서 사용하는 것이라 생각하면 된다. 즉 위 내용을 간단히 정리하자면 아래와 같다. 편의성 : 복잡한 쿼리를 단축 시켜 놓기 때문에 개발을 보다 쉽게 진행할 수 있다 보안성 : 테이블 명칭과 컬럼 명칭을 숨길 수 있기 때문에 보안성이 뛰어나다 유지보수성 : 코드가 ..
아무것도 모르는 새끼때는 고양이들끼리 "야옹~" 거릴 수 있고 새끼 고양이가 어미 고양이한테 "야옹~"거리는 것은 제법 볼 수 있다. 하지만 고양이들이 성묘가 되어서는 말을 진짜 안하게 된다. 예를 들어 우리집 고양이들이 지들끼리 싸울 때에는 별다른 말 없이 이놈들은 주먹부터 나간다. 알고보니 고양이들간에는 별 말을 할 필요없이 이미 바디랭귀지(Body Language)로 소통을 하고 있다고 한다. 하지만 사람은 고양이의 몸짓을 보더라도 이해를 하지 못하기 때문에 사람을 위해 말을 하게 되는데 그것이 바로 "야옹~"인 것이다. 사실 곰곰히 생각해보면 밥 달라고 몸짓을 하고 있는데 내가 이해를 못해서 가만히 있으면 "야옹~"거리는게 한두번은 아닌걸 보면 얘네들도 몸짓 이후에 이해를 못하는 집사가 답답해서 ..
우선 이 포스팅을 쓰기에 앞서 우리 아이는 안그래요. 이렇게 생각하는 분들에게 한마디 드리고 싶다. "모든 상황이 동일하지 않고, 고양이를 키우는 환경 역시 동일하지 않고 가치관 역시 동일하지 않다."라는 것이다. 일명 집사라는 삶을 나는 원하지 않는다. 고양이랑 살고 있지만 고양이보다 내가 더 당연히 중요하며, 고양이에게는 편안한 자유만을 줄 뿐이다. 20평에 혼자 사는데도 고양이들 때문에 늘 집안이 좁다 생각했었는데 캣타워들을 치우고 고양이 용품들을 정리하니 집안에 여유가 생기면서 고양이는 고양이 나름대로 다른 곳을 캣타워처럼 살아가는 것을 보며 내가 왜 이렇게 무리를 했을까라는 생각도 해봤다. 필자는 일단 5년 넘게 키운 스코티쉬폴드 장모종(하이랜더 폴드) 남아가 있었고, 올해 초 러시안 블루 여아..
며칠전에 창문을 활짝 열어놓았다가 파리가 들어와서 깜짝 놀랐는데 고양이가 갖고놀더니만 먹어버리네요. 조금 후에 뱉어버려서 다행이었는데 설마해서 영상을 찍어봤습니다. 매일매일이 개그인 고양이의 모습을 공유해드립니다. 고양이를 키우시는 분들이라면, 집에 벌레나 곤충이 들어왔을 때 고양이가 갖고 놀거나, 죽이는걸 많이들 봤을 겁니다. 5년전에는 창문에 나방이 한마리 들어온 적이 있었는데 당시 키우던 고양이가 점프를 뛰어서 죽이더군요. ㅎㅎ 이런걸 볼때는 역시 고양이는 고양이구나 싶습니다. 영상을 다음에는 세로로 찍지 말고, 가로로 찍어야 겠습니다. 세로로 찍으니깐 유튜브로 보니 좀 답답한 감이 있네요. 그리고 휴대폰으로 올리니깐 영상의 화질이 급격히 떨어지는 군요. 유튜브로 영상 올리는 것에 대해서 좀 배워야..
중성화 수술을 해야지, 해야지 하면서도 최근 너무 바쁜 나머지 수술을 시키지 못하고 있다가...더이상 미루면 안되겠다 싶어서 평일날 예약을 해서 중성화 수술을 했습니다. 예전 암컷 고양이의 중성화 수술 땐, 별도의 방문 없이 당일날 수술 및 퇴원을 했었는데 수술 후 다음날 찾아가야 하는걸 제가 바쁘다고, 토요일날 좀 수술 및 당일 찾아가게 해달라 좀 떼썼습니다(해당 동물병원만 그런건지는 잘 모르겠어요. 수컷 중성화는 처음이라서...) 12시에 예약해서 병원에 찾아갔는데 손님이 5분마다 한명씩 오더군요;;; 동물병원에 한두번 오는 것도 아니고, 조그마한 개인이 운영하는 동물병원에 사람이 그렇게 많이 올거라 생각을 못했습니다. 결국 12시에 예약을 했지만, 약 1시간 정도를 기다리고 간신히 수술을 시켰습니다..
ChatGPT의 열풍이 거세지면서, 원조 트랜스포머(Transformer) 맛집들이었던 구글과 메타는 각각 ChatGPT에 대응하는 제미나이(GeminAi)와 라마(Llama)를 오픈하며 초거대 AI의 전쟁에 불이 붙고 있습니다. 여기에 MS가 ChatGPT와 독립한 버전인 Phi라는 LLM AI 모델을 또 내놓았고, 영리와 비영리 사이의 충돌로 인해 OpenAI 직원들이 퇴사하여 만든 스타트업인 앤트로픽에서 내놓은 클로드 모델까지 난리도 아닌 것 같네요. 국내에서는 네이버를 비롯하여 거대 기업들은 자체적인 LLM 모델을 만들거나 타기업과 연합하는 모습을 보이기도 하는데요. 여기서 사용해볼 라마는 최근 라마3(Llama3)를 내놓으며, 이제 작은 기업도 ChatGPT 3.5 정도 수준의 모델을 부담없이 ..
개발 과정에서나 운영 환경에서의 문제 해결에 있어서 로깅의 중요성은 아무리 강조해도 지나치지 않다. 로깅은 시스템의 내부 동작을 이해하고, 문제의 원인을 파악하는데 필수적인 정보를 제공한다. 이를 위해 로깅 시스템은 어플리케이션의 성능에 영향을 주지 않으면서 필요한 정보를 효과적으로 제공할 수 있어야 하며, 다양한 배포 환경과 상황에 따라 로깅의 세부 사항들을 조정할 수 있어야 한다. Java 개발 생태계에서는 다양한 로깅 프레임워크가 이러한 기술적 요구사항을 해결해 주고 있다. SLF4(Simple Logging Facade for Java)는 이들 프레임워크를 추상화한 표준화된 API로 제공하여, 개발자가 구체적인 로깅 구현체를 변경하고자 할 때 코드를 변경할 필요 없이 의존성만 교체함으로써 유연하게..
오라클(Oracle)에서 17버전부터는 NFTC(No-Fee Terms and Conditions)라는 새로운 라이센스를 내세우면서 무료로 사용이 가능하다는 것을 내세웠지만, 사실상 이는 무료의 사용 기간을 길게 한 것일뿐 무료 사용이 끝나는 기간에는 유료 결제를 해야 한다. 물론 자바의 버전을 계속 변경하다보면 사용이 가능할 것도 같지만, 문제의 여부를 테스트 해봐야 하고 수많은 서버가 있는 곳에서 이런 작업은 더욱 피곤하게 만든다. 그래도 다행인 것은 Java21이든 Java17이든 유료 라이센스에 영향을 주는 것은 운영서버 즉, 배포를 하는 환경일 뿐 개발자 환경에서는 OracleJDK로 하든 OpenJDK로 하든 상관이 없는 것으로 보인다. 처음에는 OpenJDK로 설치를 하여 진행하려고 했지만,..
ChatGPT, 정확하게는 OpenAI의 GPT 파라미터 API는 다양한 설정값이 존재합니다. 그리고 계속 버전업이 되면서 새로운 파라미터들이 추가되고 있습니다. 오늘 포스팅에 작성할 내용은 그 중에서 가장 기본적으로 핵심적인 파라미터를 설명하고, 예시를 통해 이해보도록 하겠습니다. Chat API GPT의 Chat 버전을 사용하기 위해서는 다음과 같은 API를 호출해야 합니다. POST https://api.openai.com/v1/chat/completions 위와 같은 API Url을 Post로 호출하고, Request Body 들을 추가로 넣어줘야 하는데요. 주요 파라미터는 다음과 같습니다. 주요 파라미터 내용 예시 model GPT 모델 선택 gpt-3.5-turbo messages GPT에게 ..