반응형
LLM 토큰 아끼는 방법 (feat. GPT, Gemini, Claude)
·
Dev/AI
토큰이가 비싸요...CLI 버전의 AI를 쓰다보면 토큰을 호로롭 다 써버려서 문제가 생길 때가 있다이게 정확히 뭐고 어떻게 하면 아껴쓸 수 있는지 궁금해져서 나 나름대로 조사하고 정리해보았다토큰이란?- 기본적으로 토큰은 텍스트를 처리하기 위한 단위다- 쉽게 말해 AI 사용 비용을 계산하기 위한 기준이다 - 기업들은 요금별로 이 토큰량을 차등 제한을 두어 서비스를 제공하고 있다 - 좀 더 정확히는 요금제, 모델, API 정책에 따라 서비스가 제공되기는 한다 - 토큰 종류에는 크게 2가지가 있는데 '입력 토큰'과 '출력 토큰'이다- 입력 토큰은 '우리가 AI에게 보내는 텍스트'- 출력 토큰은 'AI가 우리에게 보내는 텍스트'토큰을 아껴쓰는 방법- 그렇다면 어떻게 하면 이 귀한 토큰을 아껴쓸 수 있는지 알아보..
GPT 모델 만들 때 반드시 체크 해제해야하는 것 (feat. 내 개인정보!!!)
·
Dev/AI
아 네 개인정보 냠냠 하겠다구 ㅋㅋGPT 유료 모델을 쓰면 GPT 모델을 만들 수 있다GPT 모델을 생성하면 하단에 (접혀있는) 추가 설정이 있는데 이 카테고리에 치명적인 내용이 숨겨져 있다바로 내 대화 데이터를 더 나은 모델 개발에 쓴다는 것 ㅋㅋㅋ 내 개인정보를 왜 니들 맘대로 미리 체크하고 시작하냐?장난하냐 진짜?이걸 또 ㅋㅋㅋㅋ 펼쳐놓지 않고 접어두고 시작한다는게 참 다분히 의도적이네요 ㅎㅎ반드시 체크 해제 하십쇼 여러분 ㅠㅠps. 확인해보니 초기부터 안내해주는 게시글이 몇개 존재했고, 나만 이제 본 케이스... ㅠps. 가끔 없는 것도 있는거보니 뭔가 최근에 업데이트 된건가 싶기도 하고요..'지식'을 업로드 하면 추가 설정이 생김!!테스트 해보니 지식을 업로드하면 '추가 설정'이 생기고 자동으로..
매번 새로운 변수 생성하기 vs 변수 재사용하기 (feat. 무엇이 더 효율적인가?)
·
Dev/JAVA
외부 변수 재사용 vs 내부 변수 신규 생성알고리즘 풀다 궁금해졌다반복문 외부에 변수를 생성 후 재사용하기 vs 반복문 내부에 변수 생성 및 사용무엇이 더 효율적일까...?방법 1 (반복문 외부에 변수 생성 및 재사용)StringTokenizer st;for (int i = 0; i 방법 2 (반복문 내부에 변수 생성 및 사용)for (int i = 0; i 결론- 보통은 [방법 2]가 더 효율적이라고 한다 (그리고 더 권장되는 방식)- 이유는 각 반복마다 새로운 st 참조 변수가 스택(Stack) 메모리에 생성되는데 - 이때 반복이 끝나면 해당 st 변수는 스택에서 사라짐 - 그 변수가 가리키던 객체는 참조가 없어지므로 가비지 컬렉션(Garbage Collection)의 대상 - 즉, ..
JAVA에서 삽입, 삭제가 빈번할 때 LinkedList가 더 좋다! 에 대한 오해와 진실
·
Dev/JAVA
알고리즘을 풀다가 헷갈려서 이렇게 정리하게 됐다결론부터 말하면 아래 두줄로 요약할 수 있다1) 이론적으로는 LinkedList가 유리해 보인다2) 그러나 실제로는 캐시 효율성과 최적화로 인해 ArrayList가 거의 모든 상황에서 더 좋다그러면 왜 JAVA에서 삽입, 삭제가 빈번할 때 LinkedList가 더 좋다고 하는 경우가 있을까이에 대한 의견을 정리해보면 삽입, 삭제시, LinkedList는 O(1)이 걸리고, ArrayList는 O(N)이 걸리기 때문이다 그런데 여기에는 함정이 몇개 숨어있다 (위 명제는 항상 참이 아니다)- LinkedList가 중간에 있는 노드를 지우고 싶으면 거기까지 탐색하는데 (최악의 경우) O(N)이 걸리게 된다- ArrayList가 맨 끝에서 삽입, 삭제 시엔 O(1)..
제스처로 동영상 플레이어 제어하기 (feat. 동작 인식 & VLC)
·
Dev/Python
주둥이 코딩 프로젝트 No.1저번에 포스팅했듯... 대충 어깨를 다쳐서 못 움직인다 (= 코딩이 어렵다.. = 그럼 GPT 시키면 되겠지?? ㅎㅎ)https://ratatou2.tistory.com/226 맥북 음성인식으로 키보드 치는 방법 (feat. 주둥이 코더되는 법)내가 코딩 고자라니..!!오른 어깨를 다쳐서 당분간 키보드 타이핑이 어렵게 됐다어깨를 움직이는 순간부터 통증이 있는데 그 때문에 키보드에 손을 올리는 것조차 쉽지가 않다그러나... 잘 때 빼ratatou2.tistory.com아무튼 요즘 영화를 굉장히 많이 보고 있다 (영화를 굉장히 좋아함)근데 이걸 또 매번 영상을 재생하고 정지하고 앞으로 넘기고 귀찮더라구요죄다 마우스로 하던 것들이라 딸깍!하고 싶은데, 왼손잡이용이나 양손잡이용 마우..
JAVA에서 부동소수점 유의사항 (feat. 알고리즘 풀이 시 필수 지식)
·
Dev/JAVA
하하하 빌어먹을 부동소수점생각보다 내가 생각한 것과 굉장히 다르게 나올 수 있음 주의 ㅠ코드public class Temp { public static void main(String[] args) { double testDouble = 0.58; int testInt = (int) (testDouble * 100); System.out.println(testDouble * 100); System.out.println(testInt); System.out.println((int) testDouble); }}결과57.99999999999999570이렇게 나오는 이유는?부동소수점 연산의 특성과 명시적 형 변환으로 발생! ​앞선 코드를 보..
JAVA 문자열 비교 방법 3가지 (feat. StringBuilder 주의사항)
·
Dev/JAVA
사소한데 자꾸 헷갈려서 정리해보았다구문비교 기준사용 상황예시 설명S.compareTo(T) == 0내용의 사전순 비교 (0이면 같음)정렬이나 정밀 비교문자열 값만 비교S.equals(T)내용 직접 비교"논리적으로 값이 같은지" 확인문자열 값만 비교S == T객체 참조(메모리 주소) 비교객체 자체가 같은지 확인주소까지 같아야 true숫자는 당연하게도 == 붙이면, 그냥 냅다 그 값(value)를 비교하는 것이라 문제 없다 결국 알고리즘 풀 때는, 대부분 값(내용)의 동일성을 비교하는 경우가 많기 때문에 equals을 쓰는게 낫겠다는 생각...
Docker로 EEVE 모델 로컬에서 돌려보기 (feat. Ollama & Beelink S12 Pro)
·
Dev/AI
딥시크가 제 역할을 하지 못했다한글을 모르기 때문...지금 내가 구축하려는 것은 '일기에 피드백을 주는 선생님 AI'이기 때문에 한글은 필수이다이번엔 야놀자에서 만든, 성능 괜찮기로 유명한 EEVE 모델을 사용해보겠다오늘 사용할 컴퓨터는 Beelink S12 Pro로 N100으로 유명한 미니 PC이다OS: Ubuntu 22.04.5 LTS x86_64 Kernel: 6.8.0-59-generic CPU: Intel N100 (4) @ 3.400GHz GPU: Intel Device 46d1 Memory: 5724MiB / 15771MiB0. 기본 세팅 환경1) docker-compose.yml ollama: image: ollama/ollama container_name: ollama ..
Docker로 딥시크 R1 돌리기 (feat. Ollama)
·
Dev/AI
로컬에서 LLM 쓰기... 포기 모태...아래와 같은 디렉토리 구조로 구성할 것임docker-compose/├── docker-compose.yml├── app/│ ├── Dockerfile.api # FastAPI 서버용│ └── main.py # FastAPI 작성├── ollama/ └── models/ # 모델 저장될 로컬 경로그럼 일단 작성해야할 것들이 3가지- docker-compose.yml- Dockerfile (FastAPI 서버용)- main.py (FastAPI 서버 실행용)빠르게 가봅시다1. 설정 파일 작성컨셉은 일기를 답변해주는 선생님 모드로 세팅해보겠다1) docker-compo..
리눅스에서 딥시크 R1 돌려보기 (feat. Ollama)
·
Dev/AI
간단하고 빠르게 간다 일단 서버에 Olllama를 설치해줄 것이다Ollama는 로컬에서 간단히 LLM을 구동시켜주는 아주 유용한 오픈소스이다1. 로컬에 설치하기Ollama 공식 깃허브에 아주 상세히 나와있다https://github.com/ollama/ollama GitHub - ollama/ollama: Get up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, Mistral Small 3.1 and other large languaGet up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, Mistral Small 3.1 and other large language models. - ollam..
배열 인자들 비교, 정렬하는 방법 (feat. JAVA compareTo)
·
Dev/JAVA
배열 인자들도 implements Comparable로 비교 가능하다난 이게 되나 하면서, 구현하면서도 의심했는데...되는게 맞았다 (너무 당연한 소리일지도...?)날 믿었어야 했음 근데 지식이 어중간했기 때문에 틀린 것이다이건 뭐 공부 더해야한단 소리죠@Overridepublic int compareTo(Info o) { for (int i = 0; i 핵심이다배열의 인자를 순차적으로 비교하면서 오름차순으로 정렬할 수 있도록, 중간에 다른 값이 나오면 해당 지점에서 return 한다코드 전문import java.util.Arrays;import java.util.Collections;class Info implements Comparable { int num; int[] point; ..
Spring Boot에서 MySQL 연결 안됨 (feat. 포트 문제?!)
·
Dev/DB
도대체 뭔데2024-03-20T10:33:56.154+09:00 INFO 24664 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2024-03-20T10:33:59.310+09:00 ERROR 24664 --- [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureThe last packet sen..
MySQL Safe Update 해제 (feat. 그만 잠궈 그만!!)
·
Dev/DB
바쁜 현대인.. 아래 순서대로 하시면 됩니다. ㅎㅇㅌ!!
GPT4ALL 사용해보기 (feat. Llama3로 나만의 GPT 만들기)
·
Dev/AI
돈 안드는(줄 알았던) 나만의 GPT 만들기요즘 핫한 LLM을 직접 써볼 예정이다 사실 이걸 정리해둔건 24년 8월 1일...그간 정말 바빴고 이것저것 해보느라 늦었당 꽤나 재밌었음+ AI는 돈이 많이 든다는 것을 깨달았다 고스펙 하드웨어 필요...Llama3는 무료지만 이걸 돌리는 하드웨어 스펙과 꽤 나오는 전기세는 공짜가 아니지롱!!(그리고 이걸 네이버 블로그에서 이제서야 옮겨오네...)테스트 환경OS : Window 10 ProCPU : AMD 5600xRAM : 64GBSSD : 1TBGPU : Radeon RX 6900 XTps. AI를 다룰 때 아직까진 AMD 그래픽 카드는 잼병이다... (nvidia 사세요..)1. GPT4ALL 이란?공홈에 적힌 것을 살펴보면 아래와 같이 적혀 있음'GPT..
Queue 구현 시, LinkedList보다 ArrayDeque를 추천하는 이유
·
Dev/JAVA
Q를 쓸 때는 LinkedList보단 ArrayDeque를 쓰도록 하자사유는 ArrayDeque가 메모리 사용 & 속도 면에서 더 효율적이기 때문이다- Q는 인터페이스고 이것을 구현하는 구현체가 LinkedList & ArrayDeque가 있음- 근데 ArrayDeque가 메모리 사용 & 속도 면에서 더 효율적이라고 함 (오늘의 핵심)- LinkedList는 참조 객체 관리 비용 때문에 메모리 사용이 높다고...더보기참조 객체 관리 비용이란? 한줄 요약 : 각 노드가 누구를 가리키고 있는지 기억해둬야고, 이것 자체가 관리 비용이라는 것 LinkedList는 각 노드(Node)가 다음/이전 노드를 가리키는 "참조(Reference)"를 저장하는 방식으로 연결됨이것 자체가 추가적인 메모리와 CPU 비용이 발..
Vue 프로젝트 만들기 (feat. Vue3 & Vue2)
·
Dev/Vue
언제까지 Spring Welcome page 쓰실거에요...Spring이랑 연결할 프론트가 필요했다그렇게 선정한 Vue... 생각보다 간편하고 개인 프로젝트로는 딱인 것 같아서 pick!!1. Node.js 설치 프로젝트 만들려면 npm 명령어가 필요하다npm은 node.js 설치하면 쓸 수 있다npm은 각종 웹개발 라이브러리 설치 도우미 아래 Node.js 공식 사이트 들어가서 다운받고 설치하자https://nodejs.org/en Node.js — Run JavaScript EverywhereNode.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.nodejs.org2. VSCode 설치https://code.visualstudi..
Vue 프로젝트 생성 시 에러 (feat. 스크립트를 실행할 수 없으므로)
·
Dev/Vue
아 기훈이 형!!!N8N을 사용한 AI 코드리뷰 만들어보려고 한다그래서 간단한 vue 프로젝트를 만들려는데 vue에서 프로젝트 생성 안한다고 땡깡 피신다vue : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\Temp\AppData\Roaming\npm\vue.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.위치 줄:1 문자:1+ vue create n8n-code-review+ ~~~ + CategoryInfo : 보안 오류: (:) [], PSSecurityException + FullyQualifiedErrorId..
Comparator vs Comparable 공통점과 차이점
·
Dev/JAVA
어째서 매번 기억이 나지 않는게야...Comparator vs Comparable을 매번 헷갈리고 구현해야하는 타이밍도 헷갈려한다이게 맞나? 아무리 암기보단 이해를 우선시한다지만, 솔직히 다섯번 넘게 헷갈리고 틀렸으면 이건 외워야하는 것이 맞다고 본다지금부터 외워보자(1) 우선 짚고 넘어가야 할 기본 정보Comparable과 Comparator는 모두 객체를 정렬하는 인터페이스(interface)이다But, 사용방법과 목적이 다르다(2) 그렇다면 둘의 차이점은?Comparable과 Comparator의 역할은 비슷한 것 같은데 아래 내용을 두줄 요약하면 아래와 같다Comparable은 자기 자신과 매개변수 객체를 비교하는 것 (비교 기준 1개만 작성 가능, `int compareTo(T o)`)Compa..
MySQL 비밀번호 까먹었을 때 해결방법
·
Dev/DB
또 까먹냐!!!이제 그만... 그만 까먹자.. .너무 많이 까먹었어...맨날 천날 까먹으니까 내가 이렇게 기록까지 해두잖아 참고로 환경 변수니 뭐니 다 귀찮으니 최대한 빠르고 쉽게 하겠다1) 비밀번호 초기화 해줄 텍스트 파일 생성 아래 내용의 텍스트 파일을 만들어준다 (경로 기억할 것)맨 뒤에 새로운 비번을 주면 된다 (지금은 0000으로 세팅)ALTER USER 'root'@'localhost' IDENTIFIED BY '0000';2) MySQL 설치 경로 확인bin 폴더 경로를 잘 기억한 뒤, 아래 템플릿 경로에 적는다이건 3번에서 실행할 것임# 템플릿"{mysqld 파일 경로}" --defaults-file="{MySQL 설정파일(my.ini) 경로}" --init-file="{아까 생성한 텍스트..
반응형