분류 전체보기50 [CS] 저는 HTML 프로그래머입니다. 개발을 처음 배울 때 “HTML은 프로그래밍 언어가 아니다.” 라는 말을 종종 듣곤 한다. 그런데 막상 HTML 파일을 뜯어보면 뭔가 코드 비슷한것을 적고, 브라우저는 그걸 또 해석해서 화면을 출력한다.겉보기엔 프로그래밍 언어처럼 생겼는데…도대체 왜 프로그래밍 언어가 아닐까? 튜링 완전성 관점에서 이 질문을 풀어본다.1. 튜링 완전성(Turing Completeness)이란?튜링 완전하다는 건 한 문장으로 요약하면 아래와 같다.충분한 시간과 메모리가 있다면, 어떤 계산 문제라도 표현할 수 있는 능력. 조건문, 반복문, 상태 변화, 메모리 조작 등을 이용해일반적인 계산 처리를 할 수 있어야 튜링 완전한 언어다. C, Java, Python 등 익숙한 언어들이 여기에 해당된다.즉, 위 언어들은 튜링 완전한 .. 2025. 12. 1. [회고] 학술제 탈락 원인 분석 학술제 예선에서 탈락했다.솔직히 본선 진출에 대한 기대가 있었기에 아쉬움이 남는 것이 사실이었다.하지만 아쉬움과 억울함은 잠시 덮어두고, 프로젝트 기획부터 발표까지의 전 과정을 복기하며 실패 원인을 분석해보았다.원인 1: 잘못된 문제 정의와 시장 검증 부재가장 큰 원인은 프로젝트의 모티베이션, 즉 "해결하고자 하는 문제" 자체에 대한 탐색이 완벽하지 못했다는 점이다. 3학년 겨울방학부터 준비해 온 주제가 있었으나, 교수님의 "공감되지 않는다"는 피드백에 따라 급하게 주제를 변경해야 했다.주제 탐색부터 선정 마감까지 남은 시간은 단 2~3일이었다. 이 과정에서 '지역화폐 활성화 플랫폼'이라는 주제를 선정했다.당시 우리 팀과 주변 지인들(주로 20대 학생)은 '여민전'이라는 지역 화폐를 거의 사용하지 않았고.. 2025. 11. 12. [추천 모델] 06. 백엔드 서버 연동 및 테스트 (完) 구성NestJS 백엔드 프로젝트에 recommendations 폴더를 생성하였다.Controller → Service → FastAPI 서버 순서로 API 호출이 진행된다.ModuleController와 Service를 묶어주는 모듈 구성이다.HttpModule을 등록하여 RecommendationService가 외부 서버인 FastAPI서버와 HTTP 통신을 할 수 있도록 설정한다.Controller - 클라이언트가 GET 방식으로 /recommendations 경로로 API를 요청하면 해당 컨트롤러가 요청을 받는다.- 이때, @GetUser() 데코레이터를 통해 로그인된 사용자의 ID 정보를 가져온다.- 가져온 사용자 ID와 현재 시각을 Service계층의 getPersonalizedRecommend.. 2025. 11. 1. [추천 모델] 05. FAISS 인덱스, FastAPI 서버 구축 FAISS의 정의, 선택 이유FAISS란?Facebook Ai Similarity Search의 약자로, Meta의 AI 연구소에서 개발한 유사 벡터 검색 라이브러리.FAISS를 사용하는 이유도서관에서 책 A와 비슷한 책 10권을 찾고자 하는 경우에 비유하자면,일반적인 검색 방식은 모든 책을 책 A와 일일히 비교해야 한다.만약 책이 수십, 수백만권이면 굉장히 오래 걸릴 것이다. FAISS 방식으로 A와 비슷한 책 10권을 찾는 경우에는,미리 도서관의 모든 책의 핵심 내용을 요약하여 색인을 만들어 둔다.이후 색인을 활용해 A와 가장 비슷한 책 10권을 빠르게 찾아낸다. 현재 프로젝트에서 도서관의 책들은 가게 벡터(Item Vector)이고, 책 A는 사용자 벡터(User Vector)이다.즉 FAISS는 .. 2025. 10. 23. [추천 모델] 04. 모델 구현 및 평가 (3): 모델 구현 마무리 Review Data 변경에 따른 재학습기존 리뷰 데이터는 user_id가 약 20종류, review수가 2,000여개였다.새로운 리뷰 데이터는 user_id가 약 370종류, review수가 3,700여개이다. 새로운 리뷰 데이터 바탕으로 지금까지의 모든 과정을 다시 진행해보겠다. 먼저, Baseline 모델이다.테스트 정확도는 6.79%이다. Exp2 모델이다.테스트 정확도는 12.25%이다.Baseline 모델에 비해 5.46%의 성능 향상을 보였다. Exp3 모델이다.이전 데이터셋을 통한 학습에서는 성능 감소 즉, 노이즈로 인식했었다. 테스트 정확도는 15.73%이다.Exp2 모델에 비해 3.48%의 성능 향상을 보였다. 이전 데이터셋에서는 meal_time 피처가 사용자의 선호를 학습하기에 불충.. 2025. 10. 17. [추천 모델] 03. 모델 구현 및 평가 (2): Exp 2, 3 / Trouble Shooting Exp 2: category 추가기존 Baseline 모델에 category feature를 추가했다. 분석학습 데이터로 학습한 결과이다. Loss Graph - 빨간 선Baseline 모델과 같이 매우 안정적이다.epoch 2에서 가장 낮은 손실값을 기록했으며, 이후로 미세하게 증가하며 overfitting의 조짐을 보였다. Accuracy Graph - 빨간 선첫 epoch부터 10%를 넘는 정확도를 보였으며, 최종적으로 14%까지 상승했다.이를 통해 category feature를 통해 사용자의 취향을 더 잘 파악할 수 있게 되었다. 테스트 데이터를 통해 구한 Top-10 Accuracy는 약 15.6%이다.Baseline 모델에 비해 7.1% 향상되었다. (14% 개선)즉, 이 모델은 15.6% .. 2025. 10. 16. [추천 모델] 02. 모델 구현 및 평가 (1): Baseline Model Baseline Model 구현가장 먼저 구현할 모델이다.이 모델에서는 최소한의 faeture 즉, user_id와 store_id만을 사용한다.이를 통해 모델은 사용자와 가게의 기본적인 관계를 학습한다.추후 다른 feature를 추가하여 점진적 복잡성을 구현한다. 이러한 순서로 진행하는 이유는 아래와 같다.1. 최소한의 성능 기준 확보최소한의 모델을 성능 기준으로 삼음으로써, 추후 여러 feature들이 추가되었을 때 그 feature가 모델 성능을 얼마나 향상시켰는지를 측정할 수 있다.2. 디버깅 용이성모델이 혹시라도 제대로 학습되지 않을 때, 원인이 user_id와 store_id 사이의 관계 문제인지, 아니면 다른 피처의 문제인지 찾아내기 쉽다. 모델의 핵심 구성은 위와 같다.user_id와 st.. 2025. 10. 16. [추천 모델] 01. 데이터 전처리 프로젝트 폴더 구조 및 개발환경 설정위와 같은 구조로 폴더를 생성하였다.data ⎹ processed: 전처리된 데이터(학습, 테스트 데이터) 저장 ⎹ raw: 리뷰 데이터 원본 저장notebooks ⎹ saved_models: 모델 개발 중간 과정들을 저장 ⎹ ~.ipynb: 실제 코드 이후 venv를 통해 python 가상환경을 설정하여 각종 라이브러리의 버전 관리를 로컬과 분리하였다.데이터 전처리1. 데이터 타입 변환 및 결측치 확인이후 진행할 time값 피처 엔지니어링을 위해 time 데이터의 타입을 object에서 datetime으로 변경하였다.결측치 또한 없음을 확인하였다. 2. Time Feature Engineering사용자의 특정 시점 패턴을 파악하기 위해 t.. 2025. 10. 14. [대규모 시스템 설계] Ch 01. 사용자 수에 따른 규모 확장성 책 "가상 면접 사례로 배우는 대규모 시스템 설계 기초"를 읽고 정리하는 글입니다. 단일 서버동작[사용자] 웹 사이트의 도메인 이름으로 DNS 서버에 질의[DNS] 사용자에게 해당 IP 주소 반환[사용자] 해당 IP 주소로 HTTP 요청 전달[웹서버] HTML 또는 JSON 형태의 응답 반환데이터베이스사용자가 늘어나면 단일 서버로는 트래픽을 감당할 수 없기 때문에 여러 서버를 두어야 한다.하나는 웹/모바일 트래픽 처리 용도, 다른 하나는 데이터베이스용이다.단일 서버 형태에 DB가 웹 서버와 연결된다.데이터베이스 선택관계형 DB (RDBMS)전통적인 DBMySQL, Oracle DB 등자료를 테이블과 열, 칼럼으로 표현한다.Join을 이용해 여러 테이블을 병합한다.비관계형 DB (NoSQL)네 종류Key.. 2025. 10. 12. 이전 1 2 3 4 ··· 6 다음