전체보기 106

미니큐브에 ingress와 nginx를 이용해 외부 접속 라우팅 적용하기

이전 시간에는 미니큐브에서 스프링 프로젝트와 MySQL을 실행하고, 포트포워딩을 사용하여 외부에서 접속하는 방법을 배웠습니다. 그러나 이 방법으로는 하나의 서비스만 접속할 수 있습니다. 만약 여러 개의 서비스를 운영하고 있다면, 파이썬 기반의 플라스크나 장고, 자바 기반의 스프링, 그리고 자바스크립트 기반의 노드제이에스 등을 함께 사용하는 경우 라우팅이 필요합니다. 이번 시간에는 쿠버네티스에서 라우팅할 수 있는 방법을 배우겠습니다. domain.com/spring → spring project domain.com/flask → flask project 1. 샘플 프로젝트 만들기 스프링의 경우, 이전 시간에 만들었던 것을 그대로 활용할 예정입니다. 파이썬 프로젝트를 만들기 싫다면, 스킵하고 아래 flask..

카테고리 없음 2023.02.24

쿠버네틱스를 이용해 스프링 프로젝트를 배포해보자

이 글을 보는 사람은 도커와 쿠버네티스에 대한 기본적인 지식이 있다고 생각할 것입니다. 도커는 알겠는데 쿠버네티스는 처음이라면 아래 동영상을 보고 진행하시기 바랍니다. https://www.youtube.com/watch?v=s_o8dwzRlu4&ab_channel=TechWorldwithNana 쿠버네티스 컨테이너에 외부에서 접속하는 과정은 일반적으로 다음과 같습니다. 외부 → nginx → minikube → ingress controller → service → pod 각각이 잘 동작하는지 확인하려면 거꾸로 구현해야 합니다. 여기서는 서비스와 파드를 구현해보고 외부에서 접속하는 과정은 ingress 대신 포트포워딩을 이용해 간단히 구현해볼 것입니다. 쿠버네티스에 스프링 프로젝트 배포하기 1. EC2..

카테고리 없음 2023.02.23

Web Speech API를 이용해 텍스트를 입력해보자

들어가며 최근 자사 웹 플랫폼을 한창 만들고 있습니다.. 새로운 요구사항이 들어왔는데, 바로 음성인식으로 텍스트 데이터를 입력할 수 있으면 좋겠다는 내용이었습니다. 자사 플랫폼 중에서 전문가의 리뷰를 받는 부분이 있는데, 이 때 전문가 분들이 타이핑을 하기 어려워하는 분들이 많다는 이유였습니다. 한 번도 해보진 않았지만, 일단 해보겠다고 하고 난 뒤 구현에 성공했습니다. 여기서는 그 과정에서 대해서 말해보려고 합니다. 디자인 처음 생각한 디자인은 Mac 의 받아쓰기 기능과 같습니다. 이 기능을 그대로 활용하면 좋겠지만, 아쉽게도 전문가 분들이 대부분 윈도우를 사용하시고 윈도우 11 부터 한국어를 지원하기 때문에 사용하기가 어렵습니다. 어쨋든 기능 디자인은 아래처럼 간단합니다. 마우스로 데이터를 입력할 부..

카테고리 없음 2023.02.02

GPT로 MockAPI를 만들어보자

들어가며 최근 Backen-GPT와 관련된 글(https://beoks.tistory.com/91)을 올렸습니다. 동시에 GPT는 현재 Backend에 적용하기에는 다양한 한계가 존재한다고 평가했는데, 그래도 응용할 수 있는 방법이 없을까 고민하다 MockAPI에는 적용할만하다고 생각해 만들어보게 되었습니다. 디자인 기존 MockAPI는 주로 모바일이나 프론트엔드 개발에서 아직 벡엔드가 구현되지 않았을 때 API와 관련된 프론트 기능을 구현할 때 사용되었습니다. 하지만 스캐폴딩 코드에 해당하기에 MockAPI를 구현하는데 시간을 많이 쓰는 건 올바르지 않습니다. 따라서 목적과 초기 데이터베이스 상태를 설정하면 바로 원하는 API를 구현할 수 있도록 최대한 간단한 디자인을 목표로 삼아 아래와 같은 인터페이..

Machine Learning 2023.02.01

Backend-GPT를 알아보자

들어가며 최근 GeeksNews에서 GPT를 이용한 벡엔드 서버에 관한 기사를 봤습니다(https://news.hada.io/topic?id=8341). 벡엔드 개발자로서는 굉장히 흥미로운 주제이기 때문에 어떻게 구현되어있는지 알아보았습니다. 이 포스트에서는 그 결과와 한계에 대해서 설명해보고자 합니다. Backend-GPT란? 기존 벡엔드 서버는 코드를 이용해서 구현했습니다. Backend-GPT는 코드를 이용한 구현은 버그, 리뷰 필요 그리고 우리가 원하는 비즈니스 로직이 아닌 우리가 말하는 것만 수행한다고 비판하는 것에서 시작합니다. 비즈니스 로직을 처리하기 위해선 인간의 지능이 적절한 형태라고 말합니다. 이 문제를 해결하기 위해 LLM(Large-Language Model, ex.GPT) 을 벡엔..

Machine Learning 2023.01.30

[AWS Lex] Intent 업로드 API 구현하기

들어가며 지난글 (https://beoks.tistory.com/86)에선 API를 이용해서 AWS Lex와 대화할 수 있는 기능을 구현해보았습니다. 이번에는 발화 의도(Intent)를 업로드할 수 있는 API를 개발해보려고 합니다. 지난 글과 상당히 유사한 부분이 많기 때문에 이전 글을 많이 인용할 예정입니다. 1. 역할 생성 AWS Lex API 를 관리하기 위한 역할과 정책을 정의합니다. 여러 서비스를 이용하는 경우 각 서비스 마다 목적에 따라서 권한을 나누어 관리하는 것이 좋습니다. 권한을 정의할 정책과 정책을 적용한 역할을 만들어봅시다. IAM Console(https://console.aws.amazon.com/iam/) 에 루트 사용자로 로그인합니다. 엑세스 관리 > 역할 부분에서 역할 만들..

카테고리 없음 2023.01.16

추상화, 일반화, 단순화 그리고 자동화

기억하기 개발자로서 일을 하다 보면 여러 회의를 거치면서 제목과 같은 단어들이 오가는 것을 알 수 있다. 하지만 같은 의미인데도 다른 뜻과 의도로 말하는 경우가 많다. 기획자 - (간략) 저희가 데이터를 수집하고 검증화를 하려고 하는데 일일이 하기에는 시간이 오래 걸릴 것 같아요, 그래서 자동화를 하는 시스템을 만들었으면 좋겠어요. 나 - (자동화..? 크롤링 같은 걸 말하는 건가? 일단 데이터 수집 방식에 대해서 여쭤봐야겠다.) 아 그럼 데이터는 어떻게 수집하시나요? 기획자 - 그것도 있고 저희가 책에 있는 내용을 수기로 입력하기도 해요. 그리고 이 데이터가 올바른지 검증하는 시스템을 자동화했으면 좋겠어요. 나 - (데이터 검증 기준이 있으니 그걸 코드로 구현해 달라고 하시는 건가?) 그럼 데이터가 올..

카테고리 없음 2023.01.12

[React] AWS로 React 를 배포하고 자동화를 시스템을 구축해보자 - 1. S3 배포

들어가며 오늘은 회사에서 새로운 프로젝트를 시작하기 위해 리액트 프로젝트를 자동으로 AWS에 배포하는 과정을 진행했고 마주쳤던 이슈에 대해서 정리해보고자 합니다. 이 포스트는 아래와 같이 단계별로 구성되어 있습니다. 1. S3로 배포하기 2. CloudFront로 배포 강화하기 - 예정 3. Github Action으로 배포 자동화하기 - 예정 기존 배포 과정과 문제점 기존에는 AWS 서비스에 대해서 잘 몰라 Nginx를 이용해서 정적 파일을 제공하도록 설계하고 이를 EC2에 올려 배포했습니다. 여기서 문제점은 단순히 정적 파일을 제공하는데 EC2라는 자원은 상당히 비싸다는 것입니다. 웹 페이지의 경우 특정 시간에는 접속이 낮은 경우가 많은데 EC2로 배포를 진행하게 될 경우 시간당 과금이 발생하기 때문..

Web 2022.12.19

AWS Lex를 이용한 챗봇 REST API 서버 구현하기

AWS Lex를 Facebook, Slack 그리고 Twilio 같이 연결서비스를 제공하는 메시지 앱 이외의 서비스에 연결하고 싶은 경우 별도의 HTTP API 서버를 구현해야합니다. 여기에서는 그 과정에 대해서 서술하겠습니다. 1. 아키텍쳐 사용자는 메시징 앱을 통해서 텍스트를 입력합니다. 메시징 앱은 텍스트내용을 HTTP API 요청에 담아 AWS API Gateway에 전달합니다. AWS API Gateway는 요청 인증을 확인하고 이를 AWS Lambda에 전달합니다. AWS Lambda는 비즈니스 로직을 수행하고 Amazon Lex의 PostText API를 호출하여 통신을 수행합니다. 위 데이터 전달 과정을 역으로 수행하여 응답 결과를 사용자에게 전달합니다. 여기서는 MakeAppointmen..

카테고리 없음 2022.11.30

Spring Data Elasticsearch 사용 예제

Table of contents 1. 들어가며 2. 간단한 사용방법 2.1 Elasticsearch 실행 2.2 Spring Data Elasticsearch 종속성 추가 2.3 Spring Data Elasticsearch 연결 설정 2.3 테스트 클래스 생성 2.4 테스트 레포지토리 생성 2.5 Service 코드 생성 2.6 Controller 코드 생성 2.7 HTTP API 테스트 2.8 마무리 3. 세부사항과 동작과정 Reference 1. 들어가며 이번 포스트에서는 Spring Data Elasticsearch 를 가장 간단하게 사용하는 방법을 먼저 다루고 각 방법을 세부적으로 수정하는 방법과 Spring Data Elasticsearch 의 동작과정에 대해서 다루어 보겠습니다. ❕이 포스트..

카테고리 없음 2022.11.09