Programing
-
[AWS Bedrock] Bedrock 시작하기Programing/AWS 2024. 2. 27. 00:59
LLM의 빠른 도입과 테스트를 위해 Bedrock을 이용해 LLM서비스를 구축하기로 선택했습니다. (아래의 이전 글 참조) [생성AI 서비스 선택] AWS Sagemaker VS AWS Bedrock 생성AI를 비즈니스에 도입하는 경우가 급증하고 있는 만큼, '우리도...!!'를 외치게 되는 분들이 많으실 겁니다. OpenAI나 기타 기업 및 서비스의 API를 직접 가져다 쓰기에는 리소스가 만만치 않고, brain-nim.tistory.com 이제 AWS Bedrock이 제공하는 Foundation Model 중 하나를 선택해 서비스를 구축해봅시다. 주의사항 주의1) 리전 별 이용 가능한 모델, 가격이 다릅니다. 미국 동부, 미국 서부를 제외하면 선택 가능 모델이 매우 제한됩니다. 같은 모델이더라도 미국..
-
[생성AI 서비스 선택] AWS Sagemaker VS AWS BedrockPrograming/AWS 2024. 2. 26. 19:12
생성AI를 비즈니스에 도입하는 경우가 급증하고 있는 만큼, '우리도...!!'를 외치게 되는 분들이 많으실 겁니다. OpenAI나 기타 기업 및 서비스의 API를 직접 가져다 쓰기에는 리소스가 만만치 않고, 타 리소스와의 유연한 연계, 특히 RAG와 같은 벡터DB를 연계하고 관리비용을 줄이고자 한다면 클라우드 서비스부터 시작하는게 맞는 것 같기도 합니다. 그렇게 이런 저런 비교를 하며 AWS로 왔는데 (아마 가장 많은 비율로 '원래 AWS를 사용하고 있었으니까' or 'AWS 관련 자료가 가장 찾기 쉬워서'겠죠?) AWS 안에서도 LLM을 지원한다는 서비스가 Sagemaker, Bedrock로 나뉩니다. AWS에 익숙치 않거나, 기존 Sagemaker를 이용하지 않고 자체적으로 모델을 구축 관리해왔던 입..
-
[Flutter] 검색창(SearchBar) 위젯 활용 예시Programing/Flutter 2024. 1. 21. 16:54
검색창은 많은 어플에서 사용하는 요소인 만큼, 플러터에서는 검색창 위젯을 기본으로 제공하고 있습니다. (Flutter 공식문서) 그런데 사용하려고 보면 parameter가 매우 많습니다. 최소단위부터 하나씩 확인 해봅시다. 시작 body에 넣고 Padding으로 감싼 뒤 시작하겠습니다. import 'package:flutter/material.dart'; class TestScreen extends StatelessWidget { const TestScreen({super.key}); @override Widget build(BuildContext context) { final ThemeData themeData = ThemeData(useMaterial3: true); return MaterialAp..
-
[Flutter] kotlin 버전 충돌 에러 해결 (Exception: Gradle task assembleDebug failed with exit code 1, Duplicate class kotlin.collections.jdk8)Programing/Flutter 2023. 11. 4. 19:52
잘 돌아가던 flutter 앱에 기능을 추가하려고 패키지를 새로 설치했더니 아래와 같은 에러가 발생했습니다. Launching lib\main.dart on sdk gphone64 x86 64 in debug mode... Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:checkDebugDuplicateClasses'. > A failure occurred while executing com.a..
-
python으로 private DB에 접속하기 (베스쳔 터널링, PyMySQL)Programing/OCI 2023. 11. 1. 20:45
DB를 private한 공간에 만들면 당연히 local에서는 그냥 접속할 수 없습니다. 아래와 같은 과정을 거쳐야 합니다. 1) DB와 같은 보안로직을 가진 베스쳔 서버를 만들어야 합니다. AWS라면 동일한 VPC 내에 EC2를, OCI라면 동일한 VCN 내에 VM을 만들어야 합니다. 2) VM(EC2)에서 DB에 접속 가능하도록 미리 세팅해줍니다. 3) VM(EC2)을 경유해(터널링) 로컬에서 DB로 접속합니다. private에 위치한 DB에 python으로 접속해봅시다. 0. 구성 Public Subnet(공용 서브넷)은 외부에서 접근 가능한 서브넷입니다. Private Subnet(전용 서브넷)은 해당 VCN 내에서만 접근 가능한 서브넷입니다. 로컬의 python에서 Private Subnet에 위..
-
OCI VM으로 API 요청이 들어가지 않는 경우 (Could not send request)Programing/OCI 2023. 10. 4. 19:44
현상 새로 생성한 VM 내에 flask 서버를 구축하고 테스트를 진행해봤습니다. 서버는 잘 작동하고 있으나, request를 받지 못하는 이슈가 발생했습니다. AWS에서 처럼 VM의 인바운드 규칙(OCI: ingress rule)을 모두 열어봐도 마찬가지 였습니다. 해결 VM에 접속한 뒤 아래의 명령만 터미널에 입력해주면 됩니다. # 모든 iptables 규칙을 삭제합니다. $sudo iptables -F
-
OCI APEX #1. Workspace 생성하기Programing/OCI 2023. 9. 6. 20:11
APEX를 이용하면 로우코드로 대시보드, 게시판 등의 웹 어플리케이션을 만들 수 있습니다. 제가 느낀 주관적인 장점은 다음과 같습니다. 어플리케이션 운영을 위한 서버를 따로 구축하지 않아도 된다. DB와 직접적인 소통이 가능하다. (물론 OCI에 구축한 DB만 가능) 프론트 개발에 큰 비용을 들이지 않고 간단한 어플리케이션 개발이 가능하다. 간단한 관리자용 대시보드를 만드는데 예쁜 디자인은 필요 없죠. APEX를 이용하면 간단하게 만들어 볼 수 있을 것 같습니다. APEX를 이용하기 위해서는 사전에 DB를 생성해 두었어야 합니다. 현재 OCI에서 APEX와 연동 가능한 DB는 두개입니다. Oracle DB MySQL DB MySQL을 APEX와 연동하는 것은 상대적으로 더 복잡하기도 하고, Oracle ..
-
OCI MySQL DB (MDB) #2. DB에 접속하기 (MySQL Workbench)Programing/OCI 2023. 8. 20. 19:42
지난 글에서는 OCI에 MySQL DB 인스턴스(MDB) 를 생성했습니다. OCI MySQL DB (MDB) #1. DB 인스턴스 생성 OCI에서는 관계형 데이터베이스 인스턴스로 Oracle과 MySQL을 주로 제공합니다. 그러고보니 둘다 오라클이 소유하고있죠. 오픈소스인 MySQL이 더 익숙하니, MDB를 생성해보겠습니다. 주의) OCI에서는 brain-nim.tistory.com 이어서 1) Public Subnet에 있는 VM에서 MDB에 접속할 수 있도록 설정한 뒤, 2) 로컬의 MySQL 워크벤치에서 MDB에 접속해보도록 하겠습니다. 0. VM생성(bastion 용도), 접속 일단 Public Subnet에 VM이 생성되어 있어야겠죠? 만약 같은 VCN 내의 Public 서브넷에 만들어둔 VM이..