목록데이터엔지니어 부트캠프 (32)
imhamburger 님의 블로그
쿠버네티스 애플리케이션을 컨테이너(Container) 형태로 패키징하여 자동으로 배포, 확장 및 운영할 수 있게 해주는 오픈소스 플랫폼이다.주로 마이크로서비스나 여러 컨테이너 기반의 애플리케이션을 운영하는 데 사용된다. 왜 쿠버네티스를 사용해? 기업이나 개발팀이 마이크로서비스 구조의 애플리케이션을 운영할 때, 각 서비스를 컨테이너로 분리하여 관리하면 유연성이 높아진다.하지만 이렇게 관리해야 할 컨테이너의 수가 많아지면, 이를 직접 제어하는 것이 어려워지기 마련이다. Kubernetes는 이처럼 수많은 컨테이너와 서버를 자동으로 관리하고, 높은 가용성을 유지하며 효율적인 자원 활용을 가능하게 한다! 나는 내 컴퓨터에서 Kubernetes 클러스터를 쉽게 실행할 수 있도록 도와주는 오픈소스 도구인 mini..
파이널 프로젝트 시작 전에 2개의 프로젝트가 남아있는데 그 중 하나는 자바를 이용한 프로젝트였다.프로젝트 기간이 짧아 어떻게 할까 고민중에 로그인 기능을 구현하자고 의견을 내었다. 2일이라는 시간 안에 막 엄청난 걸 만들 수는 없을 것 같고...기능 하나를 제대로 만들어보자. 그리고 파이널 프로젝트 때도 필요한 기술들을 다뤄보자! 해서 결정하게 되었다. 팀프로젝트 주제로그인 기능을 위한 REST API를 Java로 구현메인 로그인 페이지는 Streamlit으로 제작카카오 로그인 연동을 지원로그인 회 회원가입, 회원탈퇴, 회원정보변경 기능 구현 나의 역할REST API를 Java로 구현로그인 화면 구현회원가입 화면 구현 데이터베이스 설계 및 구축 우리가 사용한 기술1. Java 17버전2. Python ..
Jenkins는 오픈 소스 자동화 서버로, 주로 소프트웨어 개발에서 CI/CD(지속적 통합/지속적 배포)를 구현하는 데 사용된다. Jenkins는 빌드, 테스트, 배포 등의 프로세스를 자동화하여 개발자와 운영팀이 소프트웨어의 변경 사항을 빠르고 안정적으로 배포할 수 있게 도와준다. CI/CD?지속적 통합(CI, Continuous Integration): Jenkins는 개발자들이 코드 변경 사항을 Git과 같은 버전 관리 시스템에 자주 병합할 수 있게 돕는다. Jenkins는 이러한 병합이 일어날 때마다 자동으로 빌드를 실행하고, 테스트를 진행하여 코드의 품질을 유지할 수 있도록 한다.지속적 배포(CD, Continuous Delivery): Jenkins는 애플리케이션을 자동으로 서버에 배포할 수 ..
스프링부트를 알기 전에 스프링부터 알아보자. 스프링(Spring) 스프링(Spring)은 자바(Java) 기반의 애플리케이션 프레임워크이다.프레임워크란 말그대로 뼈대를 의미하는데 애플리케이션 프레임워크는 애플리케이션 개발을 빠르고 효율적이게 하기 위한 툴이다. 예를 들어, 우리가 웹사이트를 만든다고 하면 로그인 기능이나 데이터베이스 연결 같은 부분을 매번 새로 만들 필요 없이,스프링이 제공하는 기능을 써서 바로 사용할 수 있다.로그인은 Spring Security를 사용하고 데이터베이스는 Spring Data JPA를 사용하는데 복잡한 SQL을 작성하지 않고 자바 객체로 데이터베이스와 쉽게 상호작용할 수 있게 도와준다. 다시 말하자면,각 프로젝트에서 개발자는 이러한 스프링 프레임워크를 이용하여 프로그램의..
다시 팀프로젝트 기간이 돌아왔다. 이번에도 3일간 과제를 수행하면 된다! 팀구성은 5인 1조인데 우리의 팀 이름은 "3Kcal" 으로 정했다. 딱히 팀 이름에 그럴싸한 아이디어가 떠오르지 않아...약간 막지은 느낌이 있다..ㅋ 팀프로젝트 주제임의의 ML 및 DL 모델에 대한 서비스를 관리 제어 하는 내부 관리 프로그램streamlit 을 통해 관리 화면을 html css js 없이 python 만으로 생성관리화면은 예측 결과에 대한 검토 및 잘못된 예측에 대한 코맨트, 라벨 기록 가능그 외 관리 화면에서 위 검토된 코맨트, 라벨을 기반으로 서비스 예측 정확성 통계 도출 모델 선정우리가 선택한 ML은 글을 읽어 감정을 예측하는 모델이다. (여기) 이 모델을 선택한 이유는... 개인적인 생각으로는! 이전에 ..
사용자가 이미지를 업로드하면 hotdog인지 not hotdog 인지 판별해주는 API 기능을 만들고, 사용자가 보는 프론트쪽이랑 API 기능을 연결할 것이다. (판별해주는 딥러닝 모델은 이미 만들어져있는 것을 사용할 것이다.) 그러면 우리가 만들어줘야할 건 2가지이다.판별해 결과를 출력해주는 API 기능사용자 웹페이지 (매우 간단하게..!)사전 준비사항핫도그를 판별해주는 모델 (여기)핫도그를 판별해주는 모델은 이미지를 업로드하면 다음과 같이 출력된다.#예시 { "label": "not hot dog", "score": 0.7514119744300842 "label": "hot dog", "score": 0.2524546346134245 } 즉, 업로드한 이미지가 not hot dog 점수가 높다면 그것..
사건의 발단은... 딥러닝 구현을 위해 Tensorflow를 설치하였는데... 에러가 났다.나는 pdm 가상환경에서 설치를 하였는데, 어떤 환경이든 상관은 없는 것 같고 조금 연식이 있는 컴퓨터를 사용하고 있다면 에러가 날 수도 있다. (근데 나는 20년도에 샀눈디... 어쨋든...) 에러메세지 1: No candidate is found for `tensorflow` that matches the environment or hashes에러메세지 2: ValueError: Unable to create tensor, you should probably activate padding with 'padding=True' to have batched tensors with the same length.에러메..
지난글에서 사진을 업로드하는 기능을 만들고 업로드된 사진이 DB에 적재되는 것까지 구현하였다. 이번에 할 Task는 다음과 같다. 1. "ml-worker"라는 모듈 이어서 만들기2. "ml-worker" 모듈을 자동적으로 실행해줄 cron 세팅하기3. Docker 이미지로 만들어 실행해보기 (잘 되는지)4. 숫자이미지를 넣으면 예측해주는 기능을 진짜 딥러닝 모델 입히기5. 다시 Docker 이미지로 만들어 로컬이 아닌 AWS 에서 실행해보기6. AWS에서 도커를 실행하였을 때, 라인알람 문제 해결하기 1. "ml-worker"라는 모듈 이어서 만들기 나는 for문을 이용해 NULL이었던 prediction_result / prediction_model / prediction_time 을 채워주었었다...
MNIST 딥러닝을 시작하기 전에 사전 작업으로 파일을 업로드하면 해당 파일을 업로드할 때마다 DB에 저장시키는 기능을 구현하였다.이전에는 텍스트만 입력하면 입력한 텍스트를 DB에 저장시키는 기능을 구현하였었다. (이전글) 1. 업로드 API 구현하기 이번엔 조금 업그레이드하여 파일을 업로드할 수 있는 기능을 구현해보자!아래 코드는 FastAPI 공식문서를 참조하여 작성하였다. FastAPI에서는 다양한 기능을 간단하게 구현할 수 있어 편리하다.from typing import Annotatedimport osfrom fastapi import FastAPI, File, UploadFilefrom datetime import datetimeimport pymysql.cursorsapp = FastAPI..
아래와 같은 배포된 웹사이트가 있고,음식 이름을 입력 후 "저장" 버튼을 누르면 입력값이 MariaDB에 저장이 되게끔 만들고자 한다. 1. 기능 구현하기 웹사이트 화면 나는 웹사이트(프론트앤드)에서 입력받은 값을 FastAPI(백앤드)에서 받을 것이다.내가 만든 main.py 은 다음과 같다.from typing import Unionfrom fastapi import FastAPIfrom fastapi.middleware.cors import CORSMiddlewarefrom datetime import datetimeimport pandas as pdimport pymysql.cursorsimport csvapp = FastAPI()origins = [ "http://localhost:88..