Seongjin Hong

29 posts published

우아한테크코스 6기 프리코스 과정에서 배운 세 가지 디자인 패턴
Javascript

우아한테크코스 6기 프리코스 과정에서 배운 세 가지 디자인 패턴

같은 문제를 더 나은 방법으로 풀어내기 위해 노력하는 과정에서 배우는 것들이 있다. 디자인 패턴도 그 중 하나다. 이번 글에서는 우아한테크코스 6기의 프론트엔드 부문 프리코스를 수강하면서 익히게 된 싱글톤 패턴, 책임연쇄 패턴, 템플릿 메서드 패턴을 자바스크립트 코드와 함께 소개한다.

GPT 언어 모델에서 생성 데이터를 JSON 형태로 주고 받게 해주는 Function Calling 살펴보기
AI

GPT 언어 모델에서 생성 데이터를 JSON 형태로 주고 받게 해주는 Function Calling 살펴보기

그동안 ChatGPT 등 GPT 기반 서비스에서 JSON 처럼 규격화 된 응답을 얻어내려면 많은 수고를 감수해야 했다. 최근에 OpenAI가 공개한 Function Calling은 이러한 불편 없이 API 호출 만으로 JSON 데이터를 얻어낸 뒤, 백엔드에서 원하는 함수를 실행하게 해준다. 그 방법을 예시와 함께 알아보도록 하자.

OpenAI API를 애플리케이션의 백엔드 데이터 에이전트로 활용한 KinoQuizAI 개발 후기
AI

OpenAI API를 애플리케이션의 백엔드 데이터 에이전트로 활용한 KinoQuizAI 개발 후기

ChatGPT를 계기로 생성AI(Generative AI)는 대화형 에이전트나 컨텐츠 생성 모델로서 유용성이 입증된 상태다. 하지만 이것에 포함되어 있는 방대한 학습 정보 자체를 일종의 데이터 소스로 활용하는 방안은 없을까? 이 의문을 해소하기 위해 만든 KinoQuizAI 프로젝트의 개발 과정과 문제 해결 경험, 그리고 후기를 정리했다.

ChatGPT를 비롯한 대화형 AI 서비스에서 더 좋은 결과물을 얻게 해주는 프롬프트 엔지니어링 (Prompt Engineering)
AI

ChatGPT를 비롯한 대화형 AI 서비스에서 더 좋은 결과물을 얻게 해주는 프롬프트 엔지니어링 (Prompt Engineering)

대화형 인공지능이 생성하는 결과물의 품질을 높이는 프롬프트 엔지니어링(Prompt Engineering)을 소개한다. 프롬프트(Prompt)란 무엇인가, 왜 이것의 올바른 엔지니어링이 필요한가를 알아보고, ChatGPT를 통해 직접 시험해 본 엔지니어링 사례를 소개한다. 아울러 그 과정에서 얻은 프롬프트의 작성 요령도 함께 안내할 것이다.

Docker Swarm에서 시크릿(Secret)을 환경변수로 주입할 때 꼭 필요한 쉘 스크립트(Shell Script) 소개
docker

Docker Swarm에서 시크릿(Secret)을 환경변수로 주입할 때 꼭 필요한 쉘 스크립트(Shell Script) 소개

도커 스웜(Docker Swarm)의 시크릿(Secret)은 오직 파일 마운트 방식으로만 환경변수를 주입할 수 있다. 따라서 이 방식을 지원하지 않는 도커 이미지에는 시크릿(Secret)을 환경변수에 사용하기 어렵다. 하지만 쉘 스크립트(Shell Script)와 도커파일(Dockerfile)을 조합하면, 안 되는 것을 되게 만들 수 있다. 그 방법을 소개한다.

Docker Swarm에서 시크릿(Secret)으로 패스워드 등 보안 정보 다루기
docker

Docker Swarm에서 시크릿(Secret)으로 패스워드 등 보안 정보 다루기

도커 스웜(Docker Swarm)에서 환경변수나 컨픽(Config)은 평문 상태로 저장되고 오가기 때문에 보안이 필요한 데이터를 다루기에는 적합하지 않다. 암호화되지 않은 채로 전송되거나 보관되어서는 안 되는 패스워드, 인증서, 키파일, 기타 텍스트 및 바이너리 파일을 다룰 때엔 시크릿(Secret)을 이용해보자.

분산 시스템의 내결함성을 높이는 뗏목 합의 알고리즘(Raft Consensus Algorithm)과 정족수(Quorum) 개념 알아보기
system

분산 시스템의 내결함성을 높이는 뗏목 합의 알고리즘(Raft Consensus Algorithm)과 정족수(Quorum) 개념 알아보기

뗏목 합의 알고리즘(Raft Consensus Algorithm)은 다수 노드로 이루어진 분산 시스템에서 전체 노드의 최신화 및 동기화, 그리고 내결함성(False Tolerance)을 동시에 구현하기 위해 만들어진 합의 알고리즘의 일종이다. 이번 글에서는 이 알고리즘의 동작 원리와 정족수(Quorum) 개념을 간략히 살펴볼 것이다.

Docker Compose에서 각 서비스 컨테이너에 쓰이는 환경변수를 다루는 방법
docker

Docker Compose에서 각 서비스 컨테이너에 쓰이는 환경변수를 다루는 방법

도커 컴포즈(Docker Compose)를 사용할 때 각 서비스 컨테이너에 필요한 환경변수들을 어떻게 하면 효율적으로 다룰 수 있을까? 이번 글에서는 도커 컴포즈(Docker Compose)에서 환경변수를 다루는 방법들을 알아보고, 각 방법이 실제 배포 상황에서 어떤 우선순위를 갖는지, 그리고 주의해야 할 점은 무엇인지를 살펴보자.

Docker Compose에서 Ghost 4 기반 블로그를 Ghost 5로 간편하게 업그레이드하기
docker

Docker Compose에서 Ghost 4 기반 블로그를 Ghost 5로 간편하게 업그레이드하기

최근에 업데이트된 Ghost 5는 오직 MySQL 8 만을 공식 지원하게 되었다. SQLite3이나 MariaDB를 이용하던 사용자라면 운영 환경에 대한 큰 변화가 불가피해졌다. 그러나 도커를 이용하면 이런 변화에 유연하게 대응할 수 있다. 이번 글에서는 도커 컴포즈(Docker Compose)로 배포한 Ghost 4 기반 블로그를 Ghost 5로 간편하게 업그레이드 하는 방법을 다룬다.

Certified Kubernetes Administrator(CKA) 자격증 합격 후기 및 유용한 팁 (2022.02, v1.23)
kubernetes

Certified Kubernetes Administrator(CKA) 자격증 합격 후기 및 유용한 팁 (2022.02, v1.23)

CKA는 쿠버네티스 클러스터 관리 능력을 검증하는 대표적인 국제 자격증 중 하나다. 엔지니어 경험이 없는 초심자로서 이 CKA 자격증 시험에 도전하여 합격한 과정과 후기를 공유한다. 같은 시험을 준비하시는 분들께 도움이 될 만한 최신 내용과 팁도 함께 소개한다. (최근 수정일 : 2023년 2월 2일)