전체 글 53

Antigravity와 Gemini API를 활용한 상담 챗봇 만들기

안내: 본 포스팅은 초등학교 선생님들을 대상으로 한 교내 바이브코딩 연수의 강의 슬라이드 원고를 바탕으로, 최신 AI 모델 동향을 반영하여 핵심 내용과 실습 단계를 블로그 글 형식으로 재구성한 내용입니다.1. 코딩을 몰라도 괜찮아요: 바이브 코딩의 개념과거의 프로그래밍은 컴퓨터 언어의 문법을 외우고 한 줄씩 코드를 직접 타이핑해야 하는 높은 진입장벽이 있었습니다. 하지만 최근 AI 기술의 발전으로 개발의 패러다임이 완전히 바뀌고 있습니다.말하듯이 개발하는 '바이브 코딩(Vibe Coding)'이란?바이브 코딩(Vibe Coding)이란 복잡한 코드를 사람이 직접 작성하는 대신, 인공지능에게 일상적인 자연어로 원하는 기능과 화면의 느낌(Vibe)을 프롬프트로 전달하여 소프트웨어를 완성하는 개발 방식을 뜻합..

구글 클래스룸 시작하기 ① | 학생 일괄 등록과 각종 실전 노하우

💡 핵심 요약 미리보기 구글 클래스룸 도입의 첫 관문은 '학교 구글 계정(관리자 권한)'을 확보하는 것입니다. 계정을 CSV로 일괄 등록하기 전, 반드시 조직 단위(OU)를 먼저 만들어 두어야 오류를 방지할 수 있습니다. 시·도교육청 통합 테넌트는 학교가 최상위 루트가 아니므로, CSV 경로(Org Unit Path)에 전체 경로를 정확히 입력해야 PERMISSION_DENIED 권한 거부 오류를 피할 수 있습니다. 1. 구글 클래스룸의 시작, 학교 계정 준비하기 새 학기나 새로운 프로젝트 수업을 맞아 구글 클래스룸을 도입하려 할 때, 선생님들께서 가장 먼저 부딪히는 장벽은 바로 "교사와 학생들의 구글 계정을 어디서 어떻게 만들어야 하는가?"입니다.일반 개인 구글 계정(@gmail..

구글 공인 혁신가 도전기| VIA26 지원 준비와 현직 교사의 날 것 그대로의 주제 고민

📌 핵심 요약VIA26(Virtual Innovator Academy): 6주간 주 1회(2시간) 온라인 화상으로 진행되는 구글 공인 혁신가 양성 과정입니다.핵심 지원 기준: 이미 완료된 솔루션을 나열하는 것이 아니라, 1년간 실패를 겪으며 풀어갈 '진짜 문제(HMW 질문)'를 정의하는 것이 중요합니다.작성 원칙: 제미나이(AI)에게 작성을 전적으로 맡기지 않고, 내 경험(Brain)을 먼저 정리한 뒤 논리적 일관성을 유지하는 파트너로 활용합니다.프롤로그: GEG 행사 참여, 그리고 지원 결심얼마 전 GEG(Google Educator Group) 전국 단위 행사에 다녀왔습니다. 전국에서 모인 선생님들의 수업 사례와 치열한 고민을 접하면서 꽤 묵직한 자극을 받았습니다.이전까지 구글 공인 트레이너나 혁신..

선형회귀와 다항회귀

선형회귀¶KNN Regression과 Linear Regression의 차이를 알아보자¶저번에 만들어둔 KNN 회귀 모델에 기존 데이터의 범위에 없던 큰 값을 입력하면 예측이 제대로 이루어지지 않는다.해당 현상을 해결해보자.In [14]:# 데이터 준비하기import numpy as npperch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7, 23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5, ..

KNN 회귀문제 다루기 + 과소적합문제 해결

지도학습 알고리즘은 분류와 회귀로 나뉜다.KNN으로 회귀문제를 해결해보자.KNN으로 회귀문제(새로운 샘플의 값을 예측)를 해결하는 방법은이웃 샘플의 타깃값의 평균을 구하는 것이다.In [4]:# 훈련 데이터를 준비한다import numpy as npperch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0, 21.0, 21.0, 21.3, 22.0, 22.0, 22.0, 22.0, 22.0, 22.5, 22.5, 22.7, 23.0, 23.5, 24.0, 24.0, 24.6, 25.0, 25.6, 26.5, 27.3, 27.5, 27.5, 27.5, 28.0, 28.7, 3..

데이터 전처리

fish_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0,                 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0,                 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0, 9.8,                 10.5, 10.6, 11.0, 11.2, 11.3, 11.8, 11.8, 12.0, 12.2, 12.4, 13.0, 14.3, 15.0]fish_weight = [242.0, 290.0, 340.0, 363.0, ..

VSCode와 Jupyter Notebook의 차이

최근 들어 Visual Studio Code(VSCode)를 활용해 Python 작업을 하면서 한 가지 의문이 떠올랐다.VSCode에서는 Jupyter Notebook과 같은 .ipynb 파일을 사용할 수 있다.그렇다면 과연 VSCode가 Jupyter Notebook을 완전히 대체할 수 있을까?라는 생각이 들었습니다.대부분의 기능을 사용할 수 있는 VSCode가 아닌 Jupyter Notebook을 사용하는 메리트는 무엇일까..이를 해결하기 위해 이것저것 알아보았다.1. 로컬 개발 환경과 IPython Notebook의 시작책으로 공부를 하던 중, "로컬 개발 환경"이라는 용어가 나왔다.이 용어가 구체적으로 무엇을 의미하는지, 그리고 Jupyter Notebook의 장점은 무엇인지 먼저 정리할 필요가 ..

데이터 분석 2024.12.06

훈련 세트와 테스트 세트 추출하기

fit()에 사용한 데이터로 score()을 수행하면 모델은 데이터를 100% 판별할 수 밖에 없다.데이터를 훈련 세트와 테스트 세트로 나누어 모델을 훈련하고, 평가해보자. import numpy as npimport matplotlib.pyplot as pltfrom sklearn.neighbors import KNeighborsClassifier 필요한 라이브러리 및 클래스를 import 한다.  # 도미와 빙어 데이터 준비fish_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0,                 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, ..

사이킷런 KNN모델로 데이터 분류하기

# 도미 데이터 준비bream_length = [25.4, 26.3, 26.5, 29.0, 29.0, 29.7, 29.7, 30.0, 30.0, 30.7, 31.0, 31.0,                 31.5, 32.0, 32.0, 32.0, 33.0, 33.0, 33.5, 33.5, 34.0, 34.0, 34.5, 35.0,                 35.0, 35.0, 35.0, 36.0, 36.0, 37.0, 38.5, 38.5, 39.5, 41.0, 41.0]bream_weight = [242.0, 290.0, 340.0, 363.0, 430.0, 450.0, 500.0, 390.0, 450.0, 500.0, 475.0, 500.0,                 500.0, 340.0, ..

[AI개발자 부트캠프 Elice] Selenium심화, 브라우저 제어

1. 브라우저 제어Q. 브라우저 제어는 왜 해야할까요?로그인 자동화로그인 후에만 나오는 웹 페이지 분석을 위해ID와 비밀번호 입력 후 로그인 버튼 클릭 (또는 엔터키 입력)드랍다운 버튼 클릭드랍다운 버튼을 클릭해야만 나오는 요소의 추출을 위해드랍다운 버튼을 찾아서 클릭→ 답은 Selenium입니다!!  2. 브라우저 로딩 기다리기브라우저 로딩이 지연되는 경우가 있습니다.이럴 때는 어떻게 해야할까요?Point Itime.sleep(n): 무조건 기다리기import timewith webdriver.Firefox() as driver: driver.get(url) # 웹페이지 로딩 time.sleep(10) # 10초간 기다리기 e = driver.find_element() ...