본문 바로가기

전체 글140

3. 파이썬 기초(3) https://docs.python.org/ko/3.9/tutorial/controlflow.html 4. 기타 제어 흐름 도구 — Python 3.9.23 문서4. 기타 제어 흐름 도구 방금 소개한 while 문 외에도, 파이썬은 다른 언어들에서 알려진 일반적인 흐름 제어문들을 사용하고, 나름의 변형을 가하고 있습니다. 4.1. if 문 아마도 가장 잘 알려진 문docs.python.org 4.1. if 문 if … elif … elif … 시퀀스는 다른 언어들에서 발견되는 switch 나 case 문을 대신함 4.2. for 문 파이썬의 for 문은 C 등에서 사용하는 전통적인 for 문과 다르게 동작 : C는 반복 변수를 통해 반복 범위, 조건, 증가값을 직접 지정 : 파이썬은 리스트, .. 2025. 7. 21.
2. 파이썬 기초(2) https://docs.python.org/ko/3.9/tutorial/introduction.html>> 와 …)의 존재 여부로 구분됩니다: 예제를 실행하기 위해서는 프롬프트가 나올 때 프롬프트 뒤에 오는 모든 것들을 입" data-og-host="docs.python.org" data-og-source-url="https://docs.python.org/ko/3.9/tutorial/introduction.html" data-og-url="https://docs.python.org/ko/3.9/tutorial/introduction.html" data-og-image=""> 3. 파이썬의 간략한 소개 — Python 3.9.23 문서3. 파이썬의 간략한 소개 다음에 나올 예에서, 입력과 출력은 프롬프트.. 2025. 7. 16.
1. 파이썬 기초(1) https://docs.python.org/ko/3.9/tutorial/appetite.html 1. 입맛 돋우기 — Python 3.9.23 문서1. 입맛 돋우기 여러분이 컴퓨터를 많이 사용한다면, 결국 자동화하고 싶은 작업을 발견하게 됩니다. 예를 들어, 많은 텍스트 파일들을 검색-수정하고 싶거나, 사진 파일들을 복잡한 방법으로 이docs.python.org 1장: 입맛 돋우기 컴퓨터를 사용해 자동화하고 싶은 작업 : 파일 검색, 수정, DB, 프로그램 제작 등 : 개발자? : C/C++/Java : 파이썬과 달리 기본적인 기능 외에는 import 해야 하는 경우가 많음 : 파이썬은 print 함수를 import 안해도 가능 : 즉, 라이브러리를 갖고 작업해야만 함 : 일반적인 코드 작성/테스.. 2025. 7. 15.
0. 파이썬 기초 (0), 달팽이 배열 https://docs.python.org/ko/3.9/tutorial/index.html 파이썬 자습서 — Python 3.9.23 문서파이썬 자습서 파이썬은 배우기 쉬우면서도 강력한 프로그래밍 언어입니다. 효율적인 자료 구조와 객체 지향 프로그래밍에 대한 간단하고도 효과적인 접근법을 제공합니다. 파이썬은 우아한docs.python.org 서문 객체지향 프로그래밍데이터를 객체로 묶고, 객체들 간의 상호작용을 중심으로 프로그램을 구성하는 방식 : 코드 재사용성과 유지보수성이 높음 : 예시 언어 : Python, Java, C++ 등절차지향 프로그래밍프로그램을 순서대로 실행되는 명령(절차)들의 집합으로 보는 방식 : : 함수 단위로 코드 구성, 명확한 흐름 제어 : 예시 언어 : C, Pascal .. 2025. 7. 15.
17. MongoDB, 사용자 메시지 저장 데이터베이스 생성 이번 과제는 웹사이트에 사용자의 메시지 입력 데이터, AI 응답 내용 등을 저장할 수 있는 데이터베이스까지 생성하여 연동해보고자 함 RDBMS와 NoSQL의 차이Next.js는 프론트엔드뿐 아니라 서버사이드 API도 같이 만들 수 있는 프레임워크 : React 기반 UI + 백엔드 API를 하나의 프로젝트에서 관현대의 데이터베이스는 크게 두 가지로 나뉨 : 관계형 데이터베이스(RDBMS)와 비관계형 데이터베이스(NoSQL) : 저장 방식, 구조, 활용 목적에 있어서 큰 차이를 보임 RDBMS (Relational Database Management System)RDBMS는 흔히 알려진 전통적인 데이터베이스 : MySQL, PostgreSQL, Oracle 등이 대표적인 예 : 데이터를 행과 열이 있는 테.. 2025. 7. 4.
16. Next.js API Route 마이그레이션 현재 상태Flask 백엔드 (Python), EC2에서 /sendMessage 요청 처리, 프론트엔드에서 http://api.도메인.com/sendMessage 요청 중 변경 목표Next.js API Route (JavaScript), Vercel에서 /api/sendMessage 처리, https://도메인.com/api/sendMessage로 변경 예정 Next.js API 기능을 구현하는 방법Next.js API 기능이란Next.js는 프론트엔드뿐 아니라 서버사이드 API도 같이 만들 수 있는 프레임워크 : React 기반 UI + 백엔드 API를 하나의 프로젝트에서 관리할 수 있다는 것 : 즉, Python Flask 같은 서버 없이도 Next.js 프로젝트 내부에서 API 서버 역할을 처리할.. 2025. 6. 27.
15. 응답값 JSON 파싱, 추천 메시지 구현 앞으로 출력(GPT 응답)을 JSON 형식으로 받도록 수정할 예정 : GPT에게 프롬프트를 바꾸어 JSON 구조로 응답하라고 지시해야 함 : 그전에 백엔드, 프론트엔드 코드 구조를 다시 살펴보자 프론트엔드(Chat.jsx)사용자의 입력값은 inputMessage 상태로 저장됨const [inputMessage, setInputMessage] = useState(''); 백엔드로 POST 요청 (JSON 형식으로 message + thread_id 전달)const response = await axios.post(`${API_URL}/sendMessage`, { message: inputMessage, thread_id: threadId});여기까지 사용자의 응답값을 JSON으로 보내는 것은 이미 잘.. 2025. 5. 22.
14. 도메인 연동, API 엔드포인트 분리, .env 활용, gitignore 보안, 챗봇 기능 검증 Vercel 프론트엔드 도메인 연동Project 접속 : Settings : Domains : Add DomainSave 클릭시 아래와 같이 Vercel에서 DNS 설정 방식을 제안함A 레코드 방식으로 호스트 이름(Name)은 @(루트 도메인 jysdev.com을 의미) : 값(Value)은 76.76.21.21 : 이 설정을 도메인을 생성했던 가비아에 접속하여 DNS 설정을 추가해야 함 : DNS 레코드가 감지되면 Vercel에서 자동으로 도메인을 확인할 것 근데 대부분의 사용자들이 도메인 주소(jysdev.com) 앞에 www. 을 붙이거나 안 붙이거나 섞어서 입력함 : 서비스의 안정성을 높이기 위해 jysdev.com과 www.jysdev.com 둘다 연결 : 즉, www.jysdev.com도 연결.. 2025. 5. 14.
13. 웹 백엔드 인프라 구축 (EC2 서버 설정, HTTPS 적용, 도메인 연결, 포트포워딩) 백엔드 코드 Github에 업로드이때, OpenAI Key와 같은 민감 정보는 제외하고 업로드 : API Key 재생성해야 함 백엔드 코드(app.py) EC2 인스턴스에서 클론 받기백엔드(Flask) 코드를 GitHub에 올려놓았음 : 그걸 AWS EC2 서버 안으로 복사해 오는 과정 : EC2 서버(Ubuntu)에 SSH 접속 후, git clone 명령어로 GitHub의 코드를 EC2 안에 다운로드해야 함 Git 설치(EC2 서버 SSH 접속한 환경의 홈 디렉토리에서 실행)- sudo apt update- sudo apt install git -y 깃허브에서 백엔드 코드 클론- git clone 깃허브 주소디렉토리 이동, 코드 확인- cd portfolio-backend- ls즉, EC2 서버에서.. 2025. 5. 8.
12. AWS EC2 인스턴스 생성(Ubuntu 서버), Nginx 설치, EC2 IP 접속 AWS(Amazon Web Services)아마존이 제공하는 클라우드 플랫폼 : 서버, 데이터베이스, AI 등 다양한 서비스 제공 EC2 인스턴스 생성 (Ubuntu)EC2(Elastic Compute Cloud)AWS의 가상 서버 서비스 : 컴퓨터 한 대를 클라우드에 띄우는 것과 같음 인스턴스 (Instance)EC2에서 실행 중인 가상 머신(서버 한 대)을 말함AWS 콘솔 : EC2 대시보드 : 인스턴스 시작 인스턴스 이름 설정운영체제 Ubuntu 선택 인스턴스 유형서버의 성능 (CPU, 메모리 등)을 결정하는 사양 : AWS 프리티어(무료 계정)에서 제공하는 t2.micro 인스턴스 선택 : 키 페어 생성 및 저장 네트워크 설정SSH : 내 IP 선택 : 현재 접속 중인 사용자 IP 주소만 허용 :.. 2025. 5. 4.
11. OpenAI Assistant, API 엔드포인트 sendMessage 요청 openAI Assistant가 무엇인지 간단하게 OpenAI에게 역할과 성격을 부여해서 "특정 일을 하는 직원처럼" 일하게 만드는 기능 : 예를 들어, "너는 이제부터 이력서 전문가야"라고 역할을 고정시키는 것임 즉, 기존 ChatGPT 모델을 하나의 "역할을 가진 AI"로 정의하고, 지속적인 대화(thread)를 저장하며, 파일 업로드, 코드 실행 등까지 가능한 GPT 확장 기능 : 단순히 prompt만 보내던 방식에서 벗어나 GPT를 "챗봇 인격 하나"처럼 만들 수 있는 고급 API thread_idAssistant와 사용자 간의 "하나의 대화방 ID"라고 할 수 있음 : 즉, thread_id는 특정 대화 세션을 식별하는 고유 ID : Assistant와의 대화는 thread를 기준으로 저장 : .. 2025. 5. 1.
10. GitHub 배포, Vercel 사용, OpenAI API GitHub에 Frontend 코드 배포해보기1단계 : GitHub 가입 및 저장소(Repository) 만들기로그인 후 우측상단 +버튼 : New repository : 저장소 이름(Repository name)을 입력 : Public(공개) 또는 Private(비공개) 설정 : README 파일은 추후 추가 : Create repository 버튼 클릭 : 저장소 한개 생성된 것2단계 : 로컬에 Git 설치터미널 brew install git 3, 4단계 : 터미널에서 프로젝트 폴더로 이동 후 Git 초기화cd .../portfolio : git init 5단계 : GitHub 저장소와 연결하기git remote add origin repository 주소 : 이를 통해 내 코드 폴더와 GitHub .. 2025. 4. 27.