GAB STORY 일상 속 소소한 순간들과 개발 공부 과정에서의 다양한 경험들을 담아낸 공간입니다. 분류 전체보기 DEVELOPE DevOps Kotlin & Spring React ES Hadoop Kafka Python AI Etc LIFE 2021 2020 Hobby Etc BOOK IT SELF-IMPROVEMENT English TED DAILY ROUTINE OpenAI 파인튜닝 (File-tuning) OpenAI을 이용한 Fine-tuning https://platform.openai.com/docs/guides/fine-tuning 가이드 문서를 기반으로 OpenAI을 이용한 파인튜닝을 진행해 봤다. 가장 먼저 https://platform.openai.com 에서 openAI Key 발급이 필요하다. API keys -> Create new secret key 클릭 후 이름을 지정하면 Key가 발급된다. 최초 한 번만 확인할 수 있으니 유출되지 않도록 조심히 사용한다. 💪 다음은 파인튜닝할 예제 파일을 작성한다. messages 포맷에 role system, content와 role user, content을 최소 10개 이상 작성한다. {"messages": [{"role" : "system.. 2023-12-05 LLM과 친해지기 [v] GPT-4, ChatGPT, 라마인덱스, 랭체인을 활용한 인공지능 프로그래밍 읽기 [v] 파인튜닝 학습 [v] GPTs 연습 [v] OpenAI DevDay 시청 2023-12-04 커스텀하게 작성한 OAuth2UserService가 Google OAuth2에서 동작하지 않는 이유 Google OAuth2을 구현할 때 OAuth2UserService을 Implements한 CustomUserService가 실행되지 않고 OidcUserService가 대신 실행되는 문제가 있었다. @Service class CustomUserService : OAuth2UserService { override fun loadUser(userRequest: OAuth2UserRequest): OAuth2User { } } OAuth2 Login은 OAuth2LoginAuthenticationFilter.attemptAuthentication()이 실행되면서 동작한다. 이때 clientRegistration을 확인하면 scope 영역에 openid, profile, email 정보가 포함된 것을 확인할.. 2023-10-11 NoHandlerFoundException ControllerAdvice에서 제어하기 NoHandlerFoundException ControllerAdvice에서 제어하기 대부분 ControllerAdvice에서 에러를 제어하지만 간혹 dispatcherServlet에서 출력하는 에러들이 있습니다. 이에러는 Interceptor에서 로그인하지 않은 사용자를 체크하기 위해 throw된 Exception에 의해 발생하지만 항상 dispatcherServlet에서 에러를 출력하지는 않습니다. @Component class AuthInterceptor: AsyncHandlerInterceptor { override fun preHandle(request: HttpServletRequest, response: HttpServletResponse, handler: Any): Boolean { /**.. 2023-08-10 Jenkins Manster, Slave on kubernetes Jenkins Master Jenkins 서버이자 Master node는 Jenkins Pipeline으로 정의된 모든 흐름을 관장하는 컨트롤 서버라고 할 수 있다. Jenkins Slave들에게 각각의 할 일을 정해주고 분배합니다. Jenkins Slave(Agent) Jenkins Job이 구동되는 Node(Pod)이며 JNLP(Jave Netwoork Launching Protocol)을 이용하여 Jenkins Master와 통신합니다. 설치 Kubernetes yml파일은 회사 보안 이슈로 공개하지 않겠습니다. 첫 화면에 접속하면 InitialAdminPassword을 요청합니다. 가이드대로 k9s 또는 kubectl exec -it (pod 이름) /bin/bash을 이용하여 pod에 접속한 후.. 2023-02-14 Interface-based Projection에서 ZonedDateTime Converter 사용 Interface-based에서 Timestamp로 선언된 컬럼을 ZonedDateTime으로 변환하여 사용하는 방법. 에러 Cannot project java.sql.Timestamp to java.time.ZonedDateTime. Target type is not an interface and no matching Converter found! java.lang.UnsupportedOperationException: Cannot project java.sql.Timestamp to java.time.ZonedDateTime. Target type is not an interface and no matching Converter found! CREATE TABLE `table` ( `id` bigin.. 2023-02-08 JDBC Flow (HikariCP, hibernate, JPA, DataSource) JDBC Flow JDBC는 데이터 접근의 편의성과 일괄성 제공을 위한 DataAccess와 DB 연결과 상호 작용을 위한 JDBC API로 구성이 되어있습니다. DataAccess DataAccess 계층은 Repository 또는 DAO 패턴의 구현체를 의미하며, Persistence Framework 또는 Query Object 등의 구성 요소를 통해서 JDBC 구현 계층인 dataSource와 상호 작용합니다. CRUD는 Application이 DB 데이터를 직접 다루는 방식을 말하며 Persistence Framework는 Framework를 이용하여 직간접적으로 DB 데이터를 다루는 방식을 의미합니다. Persistence Framework Persistence Framework는 SQL문으로.. 2023-01-30 kotlin에서 Clock 시간 Mocking하기 import com.nhaarman.mockitokotlin2.given import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith import org.mockito.Mock import org.mockito.Mockito.mockStatic import org.mockito.junit.jupiter.MockitoExtension import org.springframework.data.projection.ProjectionFactory import .. 2021-11-10 kubernetes 동작 Kubernetes 동작 원리 https://www.youtube.com/watch?v=SNA1sSNlmy0 Kubernetes 네트워크 동작 https://medium.com/finda-tech/kubernetes-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%A0%95%EB%A6%AC-fccd4fd0ae6 쿠버네티스(Kubernetes) 네트워크 정리 Kubernetes Network medium.com https://kubernetes.io/docs/concepts/services-networking/service/ Service An abstract way to expose an application running on a set of Pods as a network s.. 2021-06-20 OAuth2.0 Google OAuth2.0이란? OAuth 2.0은 다양한 플랫폼 환경에서 권한 부여를 위한 산업 표준 프로토콜입니다. OAuth 2.0은 페이스북이나 구글의 아이디로 제 3의 서비스에 로그인해서 등록되어 있는 정보( 친구 목록 )나 기능( 담벼락 글쓰기 )에 접근할 수 있는 권한을 제어하기 위한 표준 프로토콜입니다. 용어 용어 설명 Resource owner Resource Server의 계정을 소유한 일반 사용자 notice Client Resource owner을 대신해 인증과 자원을 사용할 수 있도록 제공하는 Client 티스토리 Authorization Server Resource owner을 인증하고 리소스 접근 권한을 Client에게 임명합니다. Google Resource Server 보.. 2020-08-01 kafka Kafka란 LinkdIn에서 처음 개발된 분산 메시징 시스템으로써 현재는 Confluent에서 개발되고 있다. Kafka는 데이터 파이프라인을 구축할 때 가장 많이 사용 되는 시스템이고 RabiitMQ와 비교가 많이 되지만 성능의 효율이 더 좋다. Kafka는 다음과 같은 특성을 갖는다. 1) Publish, Subscribe (발행/구독) Pub-Sub은 메세지를 직접 생산하고 소비자를 결정하는 관계가 아니다. Publisher는 Topic 을 통해서 메세지를 생산하는 일만 담당하며, Consumer는 Topic을 통해 메세지를 소비만 한다. 즉 Publisher, Consumer는 서로 직접적으로 연결되어 있지 않다. 2) File 시스템 저장 메세지를 메모리 큐에 저장하는 방법 대신 File 시스.. 2020-07-20 React There are no plans to remove classes from React. You can read more about the gradual adoption strategy for Hooks in the bottom section of this page. Hooks don’t replace your knowledge of React concepts. Instead, Hooks provide a more direct API to the React concepts you already know: props, state, context, refs, and lifecycle. As we will show later, Hooks also offer a new powerful way to combine .. 2020-04-18 이전 1 다음