전체 글 114

Date Helper 개발일지 #4 – 장소 정확도 개선 및 코스 기반 추천 설계 & API 연동 고민 (2025.03.28)

📌 지난 개발일지 요약 (#3)UI로 전면 개편 위치 선택 로직을 시/도 → 상세지역으로 구조화버튼 클릭 시 로딩 처리 UX 개선추천받은 장소들의 현실성과 정확성에 대한 문제 인식 ❗ 문제의 시작 – 존재하지 않는 장소들OpenAI GPT를 통해 추천을 받는 건 좋았으나,막상 그 장소들을 보면…존재하지 않는 카페 이름서울 데이트 추천인데 부산 식당 등장;;;;;지도에 검색되지 않는 허상 같은 장소들라는 현실과의 괴리가 발생...  💡 문제 해결을 위한 첫 시도 – 네이버 장소 검색 API이를 해결하기 위해,GPT가 추천한 장소명들을 네이버 장소 검색 API로 검증하는 프록시 서버를 naver-proxy로 따로 구성했고,→ 실제 존재하는 장소인지 필터링 가능→ 주소, 카테고리, 지도 좌표 등도 확보 가..

Project/Date Helper 2025.03.28

Date Helper 개발일지 #3 – 사용자 입력 고도화 & UI 개선 & 위치 추천 고도화 고민(2025.03.27)

✅ 이번 개발일지에서 구현 완료한 내용 1. 사용자 친화적인 감성 UI로 전면 개편기존: 기능 위주로 구성된 기본 폼 UI (input, select만 배치)변경: 이모지와 감성적인 문구 추가 (ex. “📅 언제 만날까요?”)전체 폼에 스타일 통일 적용 (inputStyle, labelStyle, 감성 폰트 등)깔끔하고 부드러운 카드형 UI로 개편 2. 위치 입력 구조 변경 (대분류 → 소분류 방식)기존: 사용자가 직접 위치 텍스트를 입력 (오타, 비일관성 문제 발생)변경:📍 시/도 선택 → 📌 상세 지역 선택의 2단계 셀렉터 방식오타 방지 + 정제된 입력값 확보로 향후 추천 정확도 향상 기대 3. 로딩 UX 개선문제: 추천 응답까지 2~3초 소요되는데 아무 표시가 없어 사용자가 헷갈림개선:버튼 클..

Project/Date Helper 2025.03.28

Date Helper 개발일지 #2 – 현재까지 진행 상황과 UI 개선 계획 (2025.03.25)

🚀 지금까지 구현된 기능과 남은 작업 정리 ✅ 구현 완료한 내용 OpenAI GPT API 연동→ 사용자가 입력한 조건에 따라 ChatGPT를 통해 데이트 추천 응답 생성추천 API 구현 (POST /recommend)→ 입력값: 날짜, 위치, 연령대, 식사 포함 여부, 실내/실외 선호 (대규모 변경예정)→ 응답값: 장소 + 설명이 포함된 추천 코스 리스트Postman을 통한 기본 테스트 완료→ 실제 API 요청/응답 정상 동작 확인→ 다양한 조건 조합 테스트  웹 UI 구성 완료 (기초 버전)→ 간단한 HTML + JS 기반 입력 폼→ 추천받기 버튼 클릭 시 결과 출력까지 정상 흐름 구현   🧩 앞으로 해야 할 작업 사용자 입력 조건 고도화 (25.3.27 예정)예산, 분위기, 시간대 등 세부 조건..

Project/Date Helper 2025.03.27

[프로그래머스] 전화번호 목록 (Lv.2) - (python 파이썬)

문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/42577  프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  Approach전화번호 목록에서, 한 번호가 다른 번호의 접두어가 되는 경우가 있는지를 판단하는 문제다.처음에는 모든 번호를 비교해서 일일이 접두어를 체크하려 했지만,효율성을 고려해서 해시 방식으로 풀어보았다. 나의 코드 :  시행착오 & KeyError처음에는 다음과 같이 썼다가 KeyError가 발생했다.if hash_number[temp] and temp != phone_num:이는 temp가 딕셔너리에 없을 때, 존재 여부..

[프로그래머스] 다리를 지나는 트럭 (Lv.2) - (python 파이썬)

문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 🧠 Approach : 이 문제는"트럭이 일정 길이의 다리를 지나는데 걸리는 시간을 계산하는 시뮬레이션 문제다.트럭은 다리 위에 동시에 올라갈 수 있지만, 총 무게를 초과할 수 없다.또한 다리의 길이만큼의 시간 동안 다리 위에 머무르게 된다.처음에는 각 트럭이 다리 위에서 얼마나 지났는지를 직접 카운트하면서 풀었지만,챗GPT의 피드백을 반영해 다리 진입 시간을 기록하고 현재 시간과 비교하는 방식으로 리팩토링했다.또한 매 루프마다 ..

Date Helper 개발일지 #1 – OpenAI 연동 & 보안 삽질.. (2025.03.19)

🛠️ 해야할 목표 Backend Flask에서 OpenAI API 연동GPT 모델을 활용한 데이트 코스 추천 기능 구현 (service.py)API 키 보안 관리 및 GitHub 연동 안전하게 처리     🧩 1. OpenAI 연동  오늘은 Flask 백엔드에서 openai 라이브러리를 통해 ChatGPT API를 호출하는 기능을 구현했다.pip install openai python-dotenv로 라이브러리를 설치한 후, 아래처럼 기본 구조를 구성했다..env 파일에 키를 저장해서 하드코딩을 피했다.. (오랜만에 하니 처음에 그대로 하드코딩 할 뻔 했다..!)     🤖 2. GPT-4를 쓰고 싶었지만, 현실은 GPT-3.5  처음엔 내가 chat gpt plus를 이용하다보니까 당연히 GPT-4..

Project/Date Helper 2025.03.21

Date Helper 프로젝트 기획서

📌 Date Helper 프로젝트 기획서1️⃣ 프로젝트 개요🔹 프로젝트 이름: Date Helper🔹 한 줄 설명:사용자의 위치, 선호도를 반영하여 데이트 코스를 추천하는 웹 & 앱🔹 개발 목적개인 프로젝트Flask + React 기반의 풀스택 개발 경험 축적ChatGPT API를 활용한 추천 시스템 구현🔹 목표MVP(최소 기능 제품) 개발 및 배포깃허브, 블로그에 프로젝트 진행 과정 공유실제 사용자 피드백 반영하여 개선2️⃣ 요구사항 정의🔹 핵심 기능 (필수 기능)✅ 사용자의 위치 입력 (예: 강남, 홍대, 성수 등)✅ 실내/실외 여부 선택✅ 식사 여부 선택✅ ChatGPT API를 활용한 데이트 코스 추천✅ 추천 결과를 사용자에게 JSON 형식으로 제공 (백엔드 API 개발)✅ React ..

Project/Date Helper 2025.03.20

[프로그래머스] 같은 숫자는 싫어(Lv.1) - (python 파이썬)

문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr Approach : 중복 숫자를 지우면서 순서를 유지하는 문제인데, 단순하게 중복을 지우는 세트로 바꾸고 리스트로 다시 만들어주면.. 당연히 안된다..! 세트로 변환될 때 순서가 바뀌기 때문이다.스택/큐를 활용하여 새로운 리스트를 만들어줘야할 것으로 보인다. 나의 코드 :  def solution(arr):     if not arr:         return arr     tmp = arr[0]     answer = [tmp]..

[프로그래머스] 기능개발(Lv.2) - (python 파이썬)

문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr Approach : 작업하는데 남은 날들을 계산하여 day라는 리스트에 담고, 이 day리스트를 순회하면서 뒤에 숫자가 앞에 숫자보다 크지 않는부분에까지 숫자를 count해서 stack에 쌓는 아이디로 접근했다. 나의풀이 :  import math def solution(progresses, speeds):     days = []     answer = []     for idx in range(0, len(progresses))..

Flask CORS (Cross Origin Resource Sharing)

보통 웹에서 사용하는 HTTP request는 다른 도메인 데이터를 요청할 수 있다. 가령 Flask로 local에서 구현하다가 구글같은 페이지의 주소를 복사해와서, src = '' 안에 넣으면 로컬페이지에서 구글페이지 이미지가 뜨는것과 같은 구조이다. 하지만 스크립트 태그 ( )로 둘러싸인 스크립트 코드에서 실행되는 HTTP request는 동일한 서버에서만 요청할 수 있다. 정확히 프로토콜, 호스트명, 포트가 동일해야하고 이를 Same Origin Policy 라고 한다. 즉 http://localhost:5000/ 서버에서 http://localhost:8080/test 이 서버에 요청할 수가 없다는 것이다. (포트번호가 다르기 때문에 에러가 난다) 그럼 프론트엔드 서버에서 백엔드 서버를 가져와야하..

Back-end/Flask 2022.07.29