본문 바로가기

프로그래밍248

[Go] Java 개발자의 GoLang 튜토리얼 - Interface와 Duck Typing 개요 Java에서의 Interface는 기능적인 설계를 추상화하고 특정 기능을 강제적으로 구현하게 만듬으로써 다형성과 같은 설계적인 이점을 가져가기 위한 언어적인 특징입니다. 우리는 Java에서의 Interface를 통해서 설계적인 추상화를 할 수 있고 상황에 따라 캐스팅하여 다형성(polymorphism)을 충족시킬수도 있습니다. Go에서도 interface가 있습니다. 하지만 Java에서의 interface와는 결이 유사하면서도 조금 다릅니다. Go에서의 Interface는 형태를 강제하지 않습니다. 반대로 Interface와 동일한 어떠한 형태를 띄고 있으면 이것을 Interface의 하나의 구현으로 보는 Duck Typing의 형태를 띄고 있습니다. 이러한 부분이 이해가 잘 가지 않으실 수 있습니.. 2023. 10. 2.
[Go] Java 개발자의 GoLang 튜토리얼 - Method와 Receiver 개요 안녕하세요. Java에서는 Class를 이용하여 코드를 캡슐화하고 OOP를 달성하는 기초로 활용합니다. 하지만 GoLang에는 클래스를 지원하지 않습니다. type struct로 커스텀 object를 만들 수는 있지만 method를 내부에 가질 수 없습니다. golang에서는 하지만, 그와 타입에 대한 method를 정의할 수 있는 방법이 별도로 있는데요. 그 방법에 대해서 알아보도록 하겠습니다. Receiver 클래스 내부의 함수 즉, 메소드(Method)를 사용하기 위해서는 sturct type을 먼저 작성하고 Receiver 함수를 만들어주야합니다. 선언은 아래처럼할 수 있습니다. func (r {{ReceiverType}}) {{MethodName}}({{arguments}}) { // me.. 2023. 9. 26.
[Go] Java 개발자의 GoLang 튜토리얼 - New vs Make 개요 안녕하세요. Java는 new를 이용하여 Heap 메모리에 데이터를 할당할 수 있습니다. 반면 Go는 메모리에 할당할 수 있는 방법이 여럿있고 해당 방법에 따라서 할당되는 방식이 달라집니다. 오늘은 이러한 Golang의 Memory 할당에 대해서 알아보도록 하겠습니다. Java에서의 객체 메모리 할당 Java에서는 아래처럼 new keyword를 이용하여 heap 메모리에 객체(Object)를 할당할 수 있습니다. User user = new User(); Go 언어에서도 메모리에 객체를 할당할 수 있는 방법을 제공합니다. Go 언어는 Java와는 다르게 메모리를 할당하고 값을 초기화 할 수 있는 방법을 여럿 제공하고 있습니다. 어떠한 것들이 있는지 확인해보고 그 차이점을 확인해보도록 하겠습니다. .. 2023. 9. 10.
[Go] Java 개발자의 GoLang 튜토리얼 - 데이터 타입과 타입 변환 (Conversion) 개요 안녕하세요. Java를 이미 배운 상태에서 새로운 언어인 GoLang을 처음부터 배우는건 귀찮고 힘듭니다. 그래도 배워야한다면 이미 배운 지식인 Java를 이용해서 비교해가면서 배워보는건 어떨까요 ? 저는 이러한 방법으로 Go 언어를 배웠습니다. 그랬더니 조금은 덜 지루했던것 같아요. 오늘은 Java와 비교하며 Go 언어의 문법적인 내용을 살펴보도록 하겠습니다. 데이터 타입 제일 처음 알아볼 Go 언어에 대한 내용은 DataType에 대한 내용입니다. DataType은 프로그램을 구성하는 가장 기본적인 메모리 구조에 대한 정의입니다. 어떤 DataType을 선택하느냐에 따라서 최적화된 프로그래밍이 가능합니다. DataType은 변수의 값이 메모리에 할당되는 사이즈를 정의할 수 있고 Type을 정의할.. 2023. 9. 4.
[Go] Java 개발자의 GoLang 튜토리얼 - Mac에서 Go 설치 및 IDE를 통한 Run 안녕하세요. 오랫만에 인사드립니다. 거의 3달만에 신규 포스팅을 작성하게 되었습니다. 이전 마지막 포스팅이 6월 4일의 ChatGPT에 관한내용이더라구요. 한동안 공부와는 거리를 두고 지냈었습니다. 게임도하고 하반기에 있는 이벤트 준비도하고 그랬습니다. 그리고 이제 조금씩 다시 복귀하려고합니다. 개요 최근 회사 업무로 GoLang을 사용해불 수 있었습니다. Kotlin, React 이래로 제대로 하나의 언어를 공부하는것은 오랫만이었는데요. Golang 언어에 대해서 제가 얻었던 지식을 이번 포스팅부터 조금씩 풀어보려고합니다. 어떤 언어든 설치하고 Hello World는 찍어보는것이 그 언어에 대한 시작이라고 생각합니다. 오늘은 Mac에서 Go를 설치하고 IDE를 통해 Run을 해보는것까지 진행해보겠습니다.. 2023. 8. 29.
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.