목록공부방 (42)
헬창 개발자

AI 챗봇은 이제 우리 일상에서 중요한 역할을 하고 있습니다. 특히, LLM(Large Language Model, 대규모 언어 모델) 을 기반으로 한 대화형 AI 시스템이 점점 더 발전하고 있죠.하지만 여전히 해결해야 할 세 가지 큰 문제점이 있습니다.최신 정보 반영의 어려움대부분의 챗봇은 사전 학습된 데이터를 기반으로 동작하기 때문에, 새로운 정보나 실시간 데이터를 반영하기 어렵습니다.예를 들어, "2024년 최신 스마트폰 리뷰 알려줘!" 라고 질문하면, 챗봇이 2023년 기준의 정보를 제공할 가능성이 높죠.할루시네이션(Hallucination) 문제AI가 잘못된 정보를 사실처럼 생성하는 현상을 할루시네이션이라고 합니다.이는 모델이 학습한 데이터의 부족, 모순된 정보, 혹은 문맥을 완벽히 이해하지 못..

https://www.youtube.com/watch?v=oE2Ud4-MAK0 연구실에서 교수님이 크림 크롤링 코드를 작성해달라고 하셔서 구현을 하는중에 크림 사이트는 get 방식으로 데이터를 업데이트 한다. 동적 사이트 크롤링으로 코드를 수정중에 selenium이 버전이 업그레이드 되고 문법이 많이 바뀌여서 챗쌤, 바쌤을 이용했지만 성과가 없었다. 열심히 구글링을 하면서 다른 사람 코드를 이리쓰고 저리써봐도 내부 창 스크롤을 내리는 방법이 없었다. 더구나 크림은 내부 창 스크롤을 내릴려면 키보드는 안먹고 마우스 휠로만 내려야 한다. 마지막 희망으로 공식문서를 봐볼까 했는데 다음 같은 코드가 있는것이다 설마 되겠어 ?? 했는데 됐다 ㅜㅜ 구글링을 해보니까 버전업이 돼서 나처럼 해메고 있는 사람이 있을까봐..

https://github.com/whcksdud/board 전체 프로젝트는 해당 깃허브에서 다운 가능합니다 GitHub - whcksdud/board Contribute to whcksdud/board development by creating an account on GitHub. github.com Spring Initializr로 Spring Boot 프로젝트 생성하기 https://start.spring.io/ 스프링부트 버전은 3.1.2 자바는 17 버전을 사용한다. 의존성은 다음 처럼 추가하자 파일을 다운받아서 인텔리제이로 열면 위 처럼 프로젝트 구조가 만들어 진다. 그러면 src 폴더 내부를 다음 처럼 구조화 하자 (jsp, js, css 파일은 깃허브에서 다운) 그리고 applicatio..
pip install pystan pip install plotly pip install prophet (에러시) conda install -c conda-forge conda conda install -c conda-forge prophet pip install --upgrade plotly 이후 from prophet import Prophet 선언

도커란? 도커 : 컨테이너 기술을 기반으로 한 가상화 플랫폼, 즉 독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술 가상화와 컨테이너 도커의 분할된 가상 머신들은 각각 독립적인 환경으로 구동됩니다. 이 때 베이스가 되는 기존의 환경을 Host OS, 그리고 가상 머신으로 분할된 각각의 환경을 Guest OS라고 부릅니다. 가상화 : 물리적 자원인 하드웨어를 효율적으로 활용하기 위해서 하드웨어 공간위에 가상의 머신을 만드는 기술 컨테이너 : 컨테이너가 실행되고 있는 호스트 os의 기능을 그대로 사용하면서 프로세스를 격리해 독립된 환경을 만드는 기술 가상 머신을 생성하기 위해서는 하이퍼바이저라는 소프트웨어를 사용합니다. 하이퍼바이저는 호스트 하드웨어에 설치되어 호스트와 게스트를 나누는 역할을 하고,..

passport란? 내부적으로 쿠키와 세션을 사용해서 Node.js에서 인증을 쉽게 적용할 수 있는 미들웨어이다. passport는 strategy(전략)라는 인증 전략을 사용하는데, 하나의 플로그인이라고 생각하면 쉽다. 여기서 strategy라고 하는 것은 어떤 것을 이용해, 어떻게 인증을 구현할 것인가에 대한 전략을 말한다. 예를 들어 passport-facebook이라는 전략을 사용한다고 하면 사용자가 이미 가지고 있는 페이스북 아이디와 연동해서 인증을 수행할 수 있게 된다. 이외도 OpenID, Heroku, HTTP Bearer를 사용해서 인증하는 방법 등 다양한 방법이 존재한다. 서비스의 목적에 맞게 사용하면 되는데 보통의 웹 서비스는 주로 local에서 구현하는 passport-local, ..

HTTP와 AJAX HTTP는 URL과 Header같은 부가 정보를 포함하여 사용자가 원하는 데이터를 정확히 주고받을 수 있도록 해준다. HTTP 통신은 클라이언트 요청 한번에 응답 한 번을 보내고 통신을 끝내게 된다. 따라서 페이지의 일부분만 갱신하고 싶어도 응답을 다시 보내야 한다. 따라서 페이지의 일부분만 갱신하고 싶어도 응답을 다시 보내야 한다. 그래서 이러한 제약으로부터 조금 더 진화한 AJAX라는 것이 등장했다. AJAX는 ‘Asynchonous JavaScript XML’의 약자로 XMLHttpRequest라는 자바스크립트 객체를 이용해 서버와 비동기 방식으로 통신하여 DOM을 조작해 문서의 일부분만 갱신하는 것을 가능하게 된다. 따라서 HTTP 대신 AJAX를 사용하는 경우는 이메일 중복 ..

MongoDB 무작위로 크롤링을 한 데이터라던가 세션, 로그 데이터 등의 비정형 데이터는 데이터가 어떤 형태로 들어올지 모르므로 어느 정도 융통성 있게 테이블을 짜 놓는게 좋다. 특히 빅데이터 같은 경우에는 양이나 형태가 가늠되지 않으니, 이 상태에서 데이터를 분산처리하고, 또 그에 맞게 스키마를 작성하는 것은 매우 비효울적이다. 이럴때 사용할 수 있는 데이터베이스가 MongoDB이며 NoSQL 중 가장 인기 있는 데이터베이스이다. MongoDB의 특징은 다음과 같다. Schema-Free(Schema-less)이다. Schema가 없다. 같은 Collection 안에 있을지라도 다른 Schema를 가지고 있을 수 있다 솔루션 자체의 분산 처리, 샤딩, 데이터 리밸런싱, 복제, 복구를 지원한다. 대용량,..

데이터 유형에 따른 SQL 종류 SQL 서로 관계가 있는 데이터 구조를 만들고 싶을 경우에 사용한다. 각 관계에 대한 데이터가 자주 수정되는 경우에 사용한다. 서비스에 명확한 스키마가 중요할 경우에 사용한다. NoSQL 데이터의 형태를 정확히 규명할 수 없는 경우에 사용한다. 읽기(Read)가 변경(Update)보다 많은 데이터일 경우 사용한다. 데이터의 양이 많아 수평으로 확장해야 하는 경우 사용한다. 개발 환경 설정 MySQL 설치 생략 MySQL Workbench를 이용하여 roadbook 스키마에 customers, purchase 테이블을 만들어주자 ORM : Sequelize ORM(Object Relational Mapping)이란? 객체와 관계를 맵핑해주는 역할 ORM을 사용하면 SQL이 ..

웹 파싱 크롤링 자동화된 방법으로 웹을 탐색하는 작업을 말하며 여러 개의 인터넷 사이트 페이지를 수집해서 분류하는 것 파싱 어떤 페이지에서 내가 원하는 데이터를 특정 패턴이나 순서로 추출하여 정보를 가공하는 작업 스크래핑 http를 통해 웹 사이트의 내용을 긁어와 원하는 형태로 가공하는 모든 작업을 말하며 크롤링과 파싱도 일종의 스크래핑이다. Node.js에서 크롤링 및 파싱을 하려면 axios 모듈과 chreerio 모듈이 필요하다. chreerio는 axios의 결과로 받은 데이터에서 DOM Selector를 사용해 필요한 데이터만 추출하는 데 사용할 수 있다. npm install cheerio npm install axios cheerio 함수 load() html 문자열을 cheerio 객체로 ..