본문 바로가기

프로그래밍/기타57

ChatGPT 알아보기 - Token 안녕하세요. 오늘은 ChatGPT 시리즈의 마지막으로 ChatGPT에서 Token에 대해서 알아보도록하겠습니다. Token이란 ChatGPT의 기본 단위입니다. 이 Token이라는 단위를 이용해서 가격을 설정하고 이전 대화의 컨텍스트를 유지하는 단위로도 됩니다. Tokenizing Token은 단어의 조각이라고 할 수 있습니다. 프롬프트가 입력되면 입력된 프롬프트는 모델에 처리되기전에 먼저 token으로 분할됩니다. 이렇게 token화 되는 방식은 정확하게 word만을 나누는것은 아니며 띄어쓰기, 컴마, 복합어 등을 기준으로 쪼개질 수 있습니다. https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them 에서 이야기하.. 2023. 6. 4.
ChatGPT 알아보기 - API 사용하기 안녕하세요. 이전 시간에는 ChatGPT의 동작 과정과 프롬프트(Prompt)에 대해서 알아보는 시간을 가졌었습니다. 프롬프트 엔지니어링을 통해서 서비스에서 ChatGPT를 써볼 수 있지 않을까 ? 라고 고민하실 수 있습니다. 저도 고민하고 있고 실제로 사용하는것도 API 하나로 쉽게 가능합니다. 오늘 포스팅에서는 ChatGPT를 프로젝트에 적용하기 위해서의 API의 사용방법에 대해서 알아보도록 하겠습니다. Open API 사용방법 https://openai.com/blog/introducing-chatgpt-and-whisper-apis 사이트에 접속하여 로그인을 진행합니다. 로그인을 하게되면 3가지를 선택할 수 있습니다. 해당 UI에서 제일 오른쪽의 API를 선택합니다. 그 후 프로필을 선택하고 Vi.. 2023. 5. 24.
ChatGPT 알아보기 - ChatGPT의 동작 과정과 프롬프트(Prompt) ? 안녕하세요. 이전 포스팅에서 ChatGPT 알아보기 - 개요와 기본 사용법라는 포스팅으로 찾아 뵈었었는데요. 해당 포스팅에서 ChatGPT를 사용하는 방법과 기존 구글 검색과의 차이점, 그리고 어디에 사용하면 좋을지에 대해서 알아보았었습니다. 오늘은 ChatGPT의 기본적인 동작 과정과 잘 사용하기 위해 프롬프트라는 개념과 적용하는 방법에 대해서 알아보도록 하겠습니다. ChatGPT의 동작 과정 이전 포스팅을 통해 우리는 기본적으로 ChatGPT의 사용방법에 대해서 알게 되었습니다. 오늘은 먼저 ChatGPT와 유저의 동작이 어떻게 되는지 한번 알아보도록 하겠습니다. 사용자가 ChatGPT interface에 Text를 입력합니다. 이러한 Text는 질문이 될 수 있고, 정보를 전달하는 것일 수 있습니다.. 2023. 5. 13.
ChatGPT 알아보기 - 개요와 기본 사용법 안녕하세요. 요즘 IT 업계의 핫한 키워드 중 하나로 ChatGPT가 있습니다. ChatGPT는 대화형 AI로써 검색의 새로운 패러다임을 가져다주고 있습니다. 저는 회사에서 진행한 한 세션에서 인사이트를 얻었습니다. 개발자로써 이러한 새로운 기술, 새로운 환경에 대해서 이해하고 사용할 수 있으면 지금까지와는 또 다르게 개발자로써의 성장을 한번 더 할 수 있을거라고 생각했습니다. 오늘은 ChatGPT에 대해서 제가 정맇한 내용으로 알아보는 시간을 가져보도록 하겠습니다. 그리고 다음 시간에는 좀 더 ChatGPT를 잘 사용할 수 있는 Token과 프롬프트 엔지니어링에 대해서도 알아보려고 합니다. ChatGPT 란 ? ChatGPT란 방대한 양의 텍스트 데이터로 학습된 AI 언어 모델입니다. ChatGPT는 .. 2023. 5. 5.
[기타] CloudEvents v1.0.2 번역 및 정리 - 이벤트 메시지 스키마 스펙 안녕하세요. 사바라다입니다 ! 클라우드가 보편화되고 서비스를 만들어내는게 쉬워지면서 여러개의 서버로 하나의 서비스를 이루는 MSA(MicroService Architecture)로 개발이 이루어지고 전환도 이루지고 있습니다. 이에 따라 기존의 모놀리식(monolithic) 방식과는 주요하게 고려해야할 부분이 부분이 다릅니다. 오늘 여러분들에게 소개드릴 내용은 CloudEvents Spec입니다. 하나의 서비스를 하나의 서버가 아닌 여러개의 서버로 제공한다는 것은 서버간의 Message 교환이 중요합니다. 따라서 Message의 Schema 또한 중요한데요. CloudEvents Spec은 이러한 스키마의 표준에 대해서 고민하고 논의하여 정의된 문서입니다. 오늘은 CloudEvents Spec의 내용을 요.. 2023. 4. 19.
[OAuth2] spring-authorization-server를 이용하여 인증 서버(auth server) 만들기 안녕하세요. 이전시간까지 우리는 jwt란 무엇인지, OAuth2 스펙과 기본적인 flow에 대해서 각각 알아보았습니다. [JWT] JWT(Json Web Token)에 대해서 자세히 알아봅시다 - 이론편 [OAuth2] OAuth2 개론 - 개요와 Authorization Code Flow 이번 포스팅과 다음 포스팅에서는 OAuth2의 인증 서버와 리소스 서버를 실제로 구현해보도록 하겠습니다. 이번 실습은 이전시간에 배운 authorize_code grant type을 토대로 진행합니다. 오늘 실습에 대한 코드는 github Repository에서 확인하실 수 있습니다. spring-authorization-server의 등장 기존에는 Spring Security에서 인증 서버를 구성할 수 있도록 지원하.. 2023. 3. 18.
[OAuth2] OAuth2 개론 - 개요와 Authorization Code Flow 안녕하세요. 이전 포스팅에서는 jwt의 이론과 Java, Spring Boot에서의 실습을 진행해보았습니다. 이번 시간에는 OAuth2의 기본적인 이론에 대해서 알아보도록 하겠습니다. 그리고 이번 포스팅의 이론을 기반으로하여 다음시간에는 실습을 진행해보도록 하겠습니다. OAuth2란 ? OAuth(Open Authorization) 2.0는 HTTP 기반의 인증을 위한 업계 표준 프로토콜입니다. OAuth는 리소스를 소유하고 있는 소유자(Resource Owner)를 대신하여 리소스(Resource)에 대한 접근을 제어할 수 있습니다. 이 프로토콜은 접근하고자 하는 리소스를 소유하고 있는 리소스 소유자(Resource Owner)와 리소스 서버(Resource Server), 이를 사용하고자 하는 클라이.. 2023. 3. 11.
[JWT+JAVA] JWT(Json Web Token)에 대해서 자세히 알아봅시다 - 실습편 안녕하세요. 이전 포스팅에서 JWT의 이론적인 측면에 대해서 자세히 다뤄보았습니다. 오늘은 JWT를 java에서 생성해보고 검증하는 코드를 실제로 작성해보도록 하겠습니다. 오늘 실습한 내용은 github에 올려두어 직접 테스트를 진행해보실 수 있습니다. 실습 코드 github Link 환경 아래가 오늘 jwt 실습에 사용할 라이브러리입니다. jjwt를 사용합니다. jjwt를 사용하는 이유는 라이브러리를 선택할 때 아래의 기준으로 선택되었습니다. 표준 스펙을 대부분 지원하는가 ? project가 가장 star의 수가 많은가 ? 문서가 잘 되어있는가 ? implementation("io.jsonwebtoken:jjwt-api:0.11.5") runtimeOnly("io.jsonwebtoken:jjwt-imp.. 2023. 2. 27.
[JWT] JWT(Json Web Token)에 대해서 자세히 알아봅시다 - 이론편 안녕하세요. 오늘은 JWT와 그 기본적인 스펙에 대해 자세히 알아보는 시간을 가져보도록 하겠습니다. 저의 옛날 포스팅에 보면 JWT에 대해서 간단히 설멍했던 글이 있습니다. [REST API] REST API의 Security With JWT 하지만 너무 단순한 개념적인 부분만 설명드렸기 때문에 이번 기회로 제대로 정리해보고자 합니다. JWT 란 무엇인가 ? JWT는 Json Web Token의 약자로써 서로다른 기기에 데이터를 전달할 때 사용하는 방법중 하나입니다. 구성은 기본적으로 Base64포맷이며 Header와 Body(claim 이라고 부르기도 합니다) 그리고 Signature 부분으로 나뉘어집니다. 실제로 JWT는 아래처럼 생겼습니다. .을 기준으로 slice하면 첫번째 부분부터 Header,.. 2023. 2. 19.
[Spring Security] 인증 Filter를 기준으로 Custom Filter 추가와 변경 안녕하세요. 오늘 포스팅에서는 인증 Filter의 추가와 변경하는 방법에 대해서 알아보도록 하겠습니다. Filter Spring Securtiy는 기본적으로 Filter를 기반으로 동작합니다. 따라서 Spring Security Framework를 이해하기 위해서는 Filter에 대해서 이해하는것이 필수입니다. Filter는 요청을 수신하고 그 논리를 실행하고 최종적으로 다음 Filter로 요청을 전달하는 역할을 합니다. 아래의 이미지는 여러 필터가 동작하는 방식을 나타냅니다. Filter 1에서 로직을 실행하고 Filter 2로 전달, Filter 3으로 전달하고 마지막에는 Controller에서 Request를 받아서 처리합니다. 그리고 Controller의 Response가 만들어지고 이렇게 만들어.. 2023. 1. 18.
[Spring Security + JPA] JPA를 사용해서 Spring Security User 인증 서비스 만들기 안녕하세요. 오늘은 유저 정보를 MySQL에 저장하고 JPA를 활용하여 이 정보를 기준으로 Spring Security에서 유저의 인증을 확인하는 샘플을 만들어보도록 하겠습니다. 오늘 구현할 부분은 아래의 이미지에서 색깔로 칠해져 있는 부분입니다. 이부분들을 커스터 마이징하면 DB에서 유저를 가져와서 이를 인증에 이용할 수 있게 됩니다. 오늘 구현한 샘플은 github에 올려두었습니다. 전체 코드가 궁금하신 분들은 github repository에 접근하시면 확인이 가능합니다. 구현 필요 부분 오늘 실습에서 Spring Security의 Interface를 이해하고 있어야하는 부분은 아래와 같습니다. 해당 Interface가 하는 역할 및 구현 부분에 대한 정의는 이전 포스팅[Spring Security.. 2022. 12. 28.
[Spring Security] Spring Security에서 UserDetailsService와 PasswordEncoder Interface 분석하기 안녕하세요. 이전시간에 Spring Security의 전체적인 아키텍쳐와 기본적인 샘플에 대해서 알아보았습니다. 아래가 Spring Security의 전체적인 이미지였습니다. 오늘은 이어서 UserDetailsService와 PasswordEncoder의 디테일한 부분에 대해서 알아보도록 하겠습니다. UserDetailsService와 UserDetailsManager interface UserDetailsService는 이전시간에 사용자에 대한 세부 정보를 가져오는 역할을 한다고 했습니다. 실제로 인터페이스를 확인해서 UserDetailsService는 어떻게 활용해야하는지 확인해보도록 합시다. /** * 유저의 데이터를 가져오는데 사용하는 Core Interface * * 이 인터페이스는 read-o.. 2022. 12. 18.