분류 전체보기 312

부분 인덱스

부분 인덱스그냥 간단하게 말하자면 인덱스 기준을 전체가 아니라 일부분에만 거는 것이다.이게 뭐임말 그대로 부분적인 인덱스개발할 때에 MySQL 에서 VARCHAR(255) 이런 식으로 좀 큰 데이터를 사용하는 경우가 있는데, 이런 큰 값에 대해 인덱스를 걸어주는건 힘들다.근데 이거 뒤에까지 다 쓰지는 않지만 앞부분에 대한 검색이 종종 일어날 수는 있다.장점인덱스 크기 설정 가능일부분에 대해서만 인덱스를 생성하기 때문에저장 공간이 절약된다.인덱스 조회 속도가 향상된다.인덱스 생성할 때에 시간소요가 줄어든다.말하자면, 그냥 작은 인덱스를 만들기 때문에 전체를 다 만드는 것 보다 확실히 공간이나 속도 면에서 장점이 있다는 것이다.단점?인덱스 크기를 설정해서 발생일부분에 대해서만 인덱스가 생성되기 때문에유니크 ..

아는 만큼 보이는 AI 책 읽고 간략히 느낀점 정리

책을 읽기 전최근 몇 년간 AI 기술이 빠르게 발전하고 있다.요즘 개발자 뿐 아니라 다양한 분야에서 사람들이 AI를 활용하고 있는것도 볼 수 있고, 많은 회사에서 AI를 도입하려는 시도를 하고 있더라.이런 짤도 있으니 뭐...근데 그냥 chatGPT랑 대화하면서 뭔가를 쓴다. 정도로는 다들 하지만 그 이상의 활용법이나, 혹은 얘가 어떻게 동작하는지를 모르는 사람들이 많다.사실 나는 이전에 AI관련 교육을 듣기는 했는데, 이게 너무 전문적인 내용이 많아서 이해가 조금 어려웠기도 하고 요즘 AI에 좀 관심이 많이 가서(해커톤 나가고 회사에서 관련 일을 하면서 좀 잘 쓰고싶었다) 읽어보게 되었다.책 내용도입부처음에는 간단한 일화? 와 같은 식으로 AI를 사람들이 보는 시각 등에 대해 설명해준다. 사실 처음이 ..

기타/일상 2024.09.16

YOUTHCON 24 발표 후기

[YOUTHCON 24 발표 후기]2024.08.31https://frost-witch-afb.notion.site/YOUTHCON-24-49177aa1b828435f98046912c6debc78 작년에 비해 올해는 정말 빠르게 지나가고 많은 것들을 시도하는 한 해가 되었던 것 같다.좋은 기회로 박재성(Json) 님이 주최하는 유스콘에 발표자로 참가하게 되었다.사실 if(kakao) 를 나갈까 여기를 나갈까 고민을 했는데, 아직은 엄청난 개발의 인사이트를 가지고 "카카오 발표를 나간다!" 보다는 약간은 가벼운 마음으로 즐기면서 진행해보고 싶었고, 여러 의미에서 이는 좋은 선택이 되었던 것 같다. [오늘도 기획자가 왜 안 된다고 말하냐고 말했다.] 라는 세션을 준비했는데 어쩌면 조금은 뻔한 발표일 수도 있..

기타/일상 2024.09.03

2024 핵서울 참가 후기

주말을 이용해서 8월 24일 ~ 25일 이틀간 글로벌 해커톤 대회인 핵서울에 참가했다!사실 해커톤을 하는걸 몰랐는데 주변 개발자 동료의 초대로 함께하게 되었다.단순한 무박 해커톤은 전에도 해본적이 있었지만 이번에는 무려 아침부터 저녁까지 하는 해커톤… 뭔가 심상치 않기도 하고 참가신청하려고 보니까 막 자기 컴퓨터 모니터 들고온 외국인이랑 배낭 들고온 사람이랑 많이 보여서 두려웠다.   우리는 뒤쪽 좌석이었는데 사람들 되게 많더라...그리고 저기 큰 플라스틱 가방 들고온사람들은 컴퓨터랑 모니터 막 들고 개발함 발표 전 및 팀빌딩우리는 총 3명으로 구성되어 있었는데백엔드 및 블록체인 개발자(미들급인데 일단 본인은 대학생이라고 주장함) 인데 프론트엔드 개발자 1명백엔드 개발자 2명이렇게 있었다.그래서 아 이거..

기타/일상 2024.08.26

RAG 이론 정리와 활용

chat APIAPI를 이용해 사용자가 모델 제어 가능Messages(주요입력)System : InstructionUser : 사용 유저Assistant : 동작 (From System)Request Bodymax_tokens : 최대 토큰 수 설정가능temperature : 얼마나 정적인 답을 할지(창의성)top_p : 확률 기반으로 예측 단어(토큰) 제한참고로 temperature 이랑 top_p 동시 조정은 추천되지 않는다.참고로 요청할 때에 Instruction 을 주면 원하는 응답이 나타나지 않을 수 있다.ex) prompt 요청에서 JSON으로 대답하쇼 하면 JSON이 아닐 수 있다는것.response_format 에서 {”type” : “json_object”} 이렇게 요청하면 항상 JSON..

이론 정리 2024.08.11

AI 기본 이론정리

먼저 요즘 자주 쓰이는 AI는 chatGPT나 claude 같은 애들이 있다.이런 것들을 LLM 이라 하는데, Large Language Model 이라고 대규모 언어 모델이라는 뜻이다.그러면 반대로 소규모도 있겠네? 하면 있다.SLM 이라고 하는데, 라마3가 대표적이다.AI 분류LLM대규모 언어 모델로, chatGPT나 gemini, claude 같은 애들이 대표적이다.데이터 갯수랑 성능의 관계가 선형이라는 연구 결과가 있다. 그렇기 때문에 모델의 크기를 기우는 데에 주력하는 방식이다.SLM소규모 언어 모델이다. 라마3 같은 애들이 있다.근데 보통 모델을 막 돌리는게 그리 쉬운거는 아니다. 그래서 SLM 의 수요와 연구도 활발하게 이루어지는 중이다. 작은 모델로 그나마 좋은 성능을 내는 방식이다.데이터..

이론 정리 2024.08.10

병렬성과 비동기성

병렬성과 비동기성경합 조건이란?2개 혹은 그 이상의 프로그램이 같은 자원에 동시에 접근하고 자원 사용 순서에 따라 결과가 달라지는 경우공유 자원?사실 대부분이 공유될 수 있다.메모리도 가능하고 프린터 사용도 그렇고 FPGA 등등도...프로세스와 스레드운영체제는 프로세스를 관리한다.프로세스란, 사용자 공간에서 실행되는 프로그램이다.멀티코어 시스템에서는 여러 프로그램이 병렬로 실행될 수 있다.그래서 이 병렬 프로그램이 자원을 공유하면 경합 조건이 발생할 수 있다.요즘에는 액티비티 핸들러는 더이상 처음부터 끝까지 한번에 실행이 끝나는 간단한 작업이 아니게 됐다.핸들러를 인터럽트 : 즉 핸들러가 실행하는 중간에 잠시 실행을 중단하면서 상태를 저장하고, 나중에 그 위치로 돌아와 실행을 재개할 수 있다는 뜻.위를 ..

간단하게 메서드 수행시간 로깅을 해보자! (feat. template callback, annotation)

간단하게 메서드 수행시간 로깅을 해보자! (feat. template callback, annotation)여기서는 그냥 메서드의 수행 시간을 파악하기 위한 예제이다.실제로는 다양한 곳에 활용이 가능하겠지.기본 세팅TestService.java@Servicepublic class TestService { public void doSomething() { System.out.println("류찬은 최고에요!!"); }}그냥 간단한 sout 하는 메서드를 만들고TestServiceTest.java@SpringBootTestclass TestServiceTest { @Autowired private TestService testService; @Test public..

판교 퇴근길 밋업 with 인프런 #04 사이드 프로젝트 참가후기

판교 퇴근길 밋업 with 인프런 #04 사이드 프로젝트 참가후기얼마전에 판교 퇴근길 밋업을 갔다왔다.뭔가 회사에서 일도 많고... 뭔가 좀 일에 대한 열정도 떨어지고 하던 와중에 인프런에서 퇴근길 밋업이 있어서 신청해 봤다. https://www.inflearn.com/course/offline/%ED%8C%90%EA%B5%90-%ED%87%B4%EA%B7%BC%EA%B8%B8%EB%B0%8B%EC%97%85-%EC%9D%B8%ED%94%84%EB%9F%B0-%EC%82%AC%EC%9D%B4%EB%93%9C%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8 [지금 무료] 판교 퇴근길 밋업 with 인프런 #04 사이드 프로젝트 | 인프런 - 인프런인프런 | , [사진]   옆자리 동료와 ..

기타/일상 2024.06.29

Blocking, non-blocking, sync, async 간략한 정리와 합쳐 사용하기

Blocking, non-blocking, sync, async 간략한 정리와 합쳐 사용하기간단한 정리Blocking작업이 완료될 때 까지 호출한 쓰레드가 대기한다.Non-blocking작업이 완료되지 않아도 쓰레드가 대기하지 않는다.즉, 응답이 돌아오지 않아도 다른 작업을 할 수 있다.Sync작업이 완료될 때 까지 호출한 함수의 실행을 블로킹.제어권 반환 XAsync작업이 완료되기 전에 제어권을 반환하여 호출한 함수의 실행을 블로킹하지 않는 방식.뭐 이렇다고 한다.이렇게 보면 뭔소리야? 싶은데 조금 더 상세히 알아보자.세부적인 차이저 둘의 차이는 결국 "호출된 함수" 와 "호출한 함수" 에서 온다고 생각한다.Blocking / Non-blocking이 둘은 호출한 쪽이 대기하는지 여부가 중요하다.즉, ..

이론 정리 2024.06.24