본문 바로가기

만들고 싶은거 만들기

(24)
일상의기록 프로젝트 2 (MariaDB 데이터베이스 설계) DB설계 먼저 우선적으로 진행하려고 한다. 일단 사용할 DB의 경우 SQLite 와 MariaDB 두 개 중 고민했는데정규화된 데이터 구조와 백엔드 개발에 집중하고 있기 때문에,MariaDB로 정했다.  SQLite의 경우 파일형식으로 된 DB라 간단하긴 하지만, 실제 DB 설계에 근접하게 공부해보고 싶어서 그나마 관계형 DB이면서 무료인 MariaDB를 사용하기로 한다.또 여러사람이 함께 사용하게 되는 서비스이기 때문에 SQLite는 동시에 하나의 쓰기 작업만 허용하므로,다중 사용자가 동시에 쓰기 작업을 시도하면 경합 상태(contention)가 발생할 수 있다고해서아무래도 MariaDB를 선택하기로 마음먹었다. ### 경합 상태(contention) : 여러 프로세스나 사용자가 동시에 동일한 리소스(..
일상의기록 프로젝트 1 (프로젝트 컨셉 및 기능 정의) 이번에 만들어볼껀 간단한듯 간단하지 않은 sns 비스무리한것을 만들꺼다. 일단 컨셉은 일상의 사진을 업로드하면사진정보들을 이용해 이미지에 맞는 스토리를 자동으로 생성해주고 페이스북이나 인스타형태로 게시글을 자동으로 작성해주는 형태로 제작할 예정이다. 이번에 집중해볼껀 프로젝트의 구조화와 회원가입-로그인,게시글 작성 및 수정,DB 설계 등 백앤드에 집중되게끔 진행해 볼 예정이다. 팀 프로젝트가 아닌 혼자서 다 만드는것이다 보니,아직 머리속이 정리되지 않은 느낌이지만 일단 진행하면서 수정하기로 한다. 바로 시작해볼꺼다. 일단 만능그림봇을 하면서 정말 아무것도 없이 초기개발을 하다보니 구현을 위한 밑작업이 중요하다는것을 깨닫고 필요한 기능이나 api 설계, 컨셉, 머신러닝, db 설계 같은 부분을 깔끔하게 정..
광고 수익을 창출할 웹사이트 만들어보기 4-4(React서버 프론트엔드 부분 기능 추가구현 및 개선사항) 이번엔 Vercel에 배포되어있는 React 웹페이지에 수정 및 구현한 사항에 대해서 알아보겠다. 리액트는 크게 바뀐건 로고가 생겼다는거, 그리고 화면에 사용자가 어떤 텍스트를 입력했는지 보이게 한 부분 등짜잘짜잘하게 바뀌었고 크게 바뀐부분은 없다. 상세 변경된 Git 커밋내역은 아래와 같다. 2024년 12월 8일feat: 카카오톡 공유 기능에 사용자 프롬프트 텍스트 포함카카오톡 공유 기능 추가.사용자가 입력한 프롬프트 텍스트를 공유 메시지에 포함하도록 구현.feat: 백엔드 에러 메시지 사용자에게 표시 개선백엔드에서 발생한 에러를 사용자에게 더 직관적으로 전달하도록 개선.2024년 12월 9일feat: title 수정 및 logo image 추가프로젝트 타이틀 수정.로고 이미지를 새롭게 추가하여 UI..
광고 수익을 창출할 웹사이트 만들어보기 4-3(Flask서버 백앤드 부분 기능 추가구현 및 개선사항) 자 이제 그 동안 개선하고 추가 구현한 것을 설명해보겠다.하루나 이틀치라고 해도 커밋을 꽤나 많이 했다. 근데 재미있었음. 실시간으로 무언가 바뀌는 모습이 보이고 사용자들도 반응이 괜찮았기 떄문. 암튼 바로시작한다.백앤드 로직의 커밋메세지를 요약하자면 아래와 같다. 2024년 12월 6일초기 커밋: "만능그림봇 프로젝트" 코드 업로드.2024년 12월 8일CORS 환경 변수화: CORS 관련 설정 및 패키지 추가.OpenAI 응답 로그 추가: 사용자 프롬프트 개선 및 응답 기록 기능 추가.디렉토리 자동 생성: 일부 로그 파일 자동 생성과 디렉토리 자동화.번역 및 로직 강화: 번역 기능과 상세 설명 검증 로직 개선.2024년 12월 9일프롬프트 강화: 사용자 입력 처리 로직 개선.프롬프트 변경: 프롬프트 ..
광고 수익을 창출할 웹사이트 만들어보기 4-2(open AI API,AWS EC2 사용료 예상) 하루동안 바뀐 앞모습을 한번 봐보자프론트앤드에서 조금의 수정된 부분이 세 네가지 정도 보인다. (귀여운여우 포함)이번편은 실제 사용량과 금액적인 부분을 확인해볼 예정이다. 바로 간다 끼욧일단 내 앱을 배포하고 실제 지인들을 통해 테스트를 진행해보았다. 이 과정은 사용자의 반응을 확인하고 피드백이 발견되면즉각적으로 수정되는 방향으로 진행했기 때문에 블로그와 동시에 할 수가 없었다. 그래도 간간히 사람들이 써주니까 기분이 좋다.하지만 가격을 보면 기분이 조금 슬퍼진다.사용량에 대한 청구를 확인해보자.물론 많은 트래픽을 요구하는 것도 아니고 실제 모든 사람들이 무료로 이용할 수 있는건 맞지만,지인들과 지인의 지인들까지만 테스트가 되어서 서버가 터진다거나 요금을 폭탄으로 맞는다거나 하는일은 없었다. 일단 Ope..
광고 수익을 창출할 웹사이트 만들어보기 4-1(중간점검) 어느 기술을 사용했고 구현프로세스는 어떻게 되는지 정리하는겸 작성하는 글이다.내가 보기위해 작성한 글이다.만능그림봇 프로젝트 사용 기술 (수정 및 보완)사용 기술Flask: 백엔드 프레임워크로 사용, RESTful API 구현.Gunicorn: Flask 애플리케이션의 배포를 위한 WSGI 서버.Nginx: 리버스 프록시 설정 및 HTTPS 인증서 적용.Certbot: Let's Encrypt 인증서를 통해 HTTPS 설정.OpenAI API: ChatGPT 및 DALL·E를 사용하여 프롬프트 번역 및 이미지 생성.Stable Diffusion: 이미지 생성 모델을 테스트했으나 최종적으로 OpenAI DALL·E로 대체.Flask-CORS: CORS 설정을 통해 프론트엔드와 백엔드 간 통신 허용..env..
광고 수익을 창출할 웹사이트 만들어보기 3-7(Vercel과 EC2 flask서버 통신 + Gunicorn으로 앱 띄워보기) 저번편에서 EC2서버의 SSL인증까지 완료했다.이번에는 Vercel과 flask서버의 통신을 진행할것이다. 주말이라 시간이 빨리가니 빨리 시작한다.일단 첫번째로 Vercel에서 저번에 배포한 github엔 포함되지 않는 .env의 값을 따로 추가해줘야 한다.Vercel에서 **Environment Variables(환경 변수)**를 수정하는 방법은 다음과 같다. 1. Vercel 프로젝트로 이동Vercel Dashboard에 로그인합니다.환경 변수를 수정하려는 프로젝트를 클릭합니다.2. 설정 메뉴로 이동프로젝트 대시보드 화면에서 "Settings" 탭을 클릭합니다.왼쪽 메뉴에서 **"Environment Variables"**를 선택합니다.3. 환경 변수 추가 또는 수정새 변수 추가Key: 환경 변수 이..
광고 수익을 창출할 웹사이트 만들어보기 3-6(EC2 서버에 SSL인증 + 도메인 넣기) 지난편에서 python 삽집을 땅 끝까지 했다.다행히 설치랑 필요 패키지까진 완료를 했으니 이제 실제 배포를 진행할 차례다. 찾아봤는데 Python은 JAVA와 다르게 WAS에 올라가는 개념이 아니더라. (오잉 걍 톰캣에 못 띄움?!)대신 유사한 역할을 하는 다양한 웹 서버 및 애플리케이션 서버 프레임워크가 존재한다.WSGI라는 was 비슷한 역할을 하는 서버가 있는듯 하다. (참고로 나는 톰캣 등 여러 was를 2만번은 써봤기 때문에 와스의 개념이 좀 더 쉽게 다가온다.)개발하는 환경이라면 그냥 app.py를 가져다 실행만 시키면 되지만, 운영환경의 경우 WSGI를 사용하는 것이 실제 운영 환경에서 성능과 안정성을 보장하기 위해서 더 좋다고 한다. Flask에는 기본적으로 내장 개발 서버(Werkzeu..