172만명의 커뮤니티!! 함께 토론해봐요.
미해결
[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
안녕하세요! SUBQUERY 이해 (업데이트) 강의에서 예2의 비교 부분의 쿼리문을 JOIN으로 바꿔서 표현해보려고 하는데 실행 결과 category_id가 1부터 전부 나옵니다. 어떻게 해야 5('Comedy')보다 큰 것만 추출할 수 있을까요? pdf파일 7page JOIN으로 바꿔서 표현해본 쿼리문 실행 결과
김양희
2024-10-31T09:20:12.229Z
댓글 1
좋아요 0
조회수 180
미해결
[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
먼저 친절하고 자세한 강의 감사합니다. 덕분에 셀레니움을 이용해서 간단하지만 1차로 원하는 부분까지 개발해 봤습니다. 캠핑장 예약을 위해 아직 더 가야 하지만 버튼 하나로 조회 결과 화면까지 이동하는 건 확인했습니다. ㅎㅎ 질문입니다. pyside6 설치 강의에 나오는 Qt for Python 확장 설치를 더이상 지원하지 않는답니다. 섹션13 의 PySide6 설치 및 사용법 강의에 나오는 Qt for Python 을 검색하니 이 확장은 더 이상 사용되지 않습니다. 대신 Qt All Extensions Pack 확장자를 사용하세요. 라는 멧세지가 나옵니다. Qt All Extensions Pack 이걸 설치해도 강의 따라가는 데 문제가 없을까요? 설치 잘 못 되었다가는 꼬일 거 같아 대기중입니다. ㅠㅠ 감사합니다.
dgroups72
2024-10-31T08:09:27.419Z
댓글 2
좋아요 1
조회수 279
해결됨
실전! FastAPI 입문
swagger 로 opt 생성, 검증 api 실행을 했더니 sqlalchemy.engine.Engine ROLLBACK 로그가 출력이 됩니다. 원인을 모르겠습니다... 로그 INFO: Application startup complete. INFO: 127.0.0.1:63654 - "GET /docs HTTP/1.1" 200 OK email-validator not installed, email fields will be treated as str. To install, run: pip install email-validator INFO: 127.0.0.1:63654 - "GET /openapi.json HTTP/1.1" 200 OK 2024-10-31 14:25:27,367 INFO sqlalchemy.engine.Engine SELECT DATABASE() 2024-10-31 14:25:27,367 INFO sqlalchemy.engine.Engine [raw sql] {} 2024-10-31 14:25:27,369 INFO sqlalchemy.engine.Engine SELECT @@sql_mode 2024-10-31 14:25:27,369 INFO sqlalchemy.engine.Engine [raw sql] {} 2024-10-31 14:25:27,369 INFO sqlalchemy.engine.Engine SELECT @@lower_case_table_names 2024-10-31 14:25:27,370 INFO sqlalchemy.engine.Engine [raw sql] {} 2024-10-31 14:25:27,372 INFO sqlalchemy.engine.Engine BEGIN (implicit) 2024-10-31 14:25:27,377 INFO sqlalchemy.engine.Engine SELECT user.id, user.username, user.password, todo_1.id AS id_1, todo_1.contents, todo_1.is_done, todo_1.user_id FROM user LEFT OUTER JOIN todo AS todo_1 ON user.id = todo_1.user_id WHERE user.username = %(username_1)s 2024-10-31 14:25:27,377 INFO sqlalchemy.engine.Engine [generated in 0.00018s] {'username_1': 'admin'} INFO: 127.0.0.1:63658 - "POST /users/log-in HTTP/1.1" 200 OK 2024-10-31 14:25:27,603 INFO sqlalchemy.engine.Engine ROLLBACK INFO: 127.0.0.1:63664 - "POST /users/email/otp HTTP/1.1" 200 OK 2024-10-31 14:26:02,514 INFO sqlalchemy.engine.Engine BEGIN (implicit) 2024-10-31 14:26:02,514 INFO sqlalchemy.engine.Engine SELECT user.id, user.username, user.password, todo_1.id AS id_1, todo_1.contents, todo_1.is_done, todo_1.user_id FROM user LEFT OUTER JOIN todo AS todo_1 ON user.id = todo_1.user_id WHERE user.username = %(username_1)s 2024-10-31 14:26:02,514 INFO sqlalchemy.engine.Engine [cached since 35.14s ago] {'username_1': 'admin'} INFO: 127.0.0.1:63671 - "POST /users/email/verify HTTP/1.1" 200 OK Sending email to admin@fastapi.com! 2024-10-31 14:26:12,519 INFO sqlalchemy.engine.Engine ROLLBACK src/database/ repository.py from typing import List, Optional from fastapi import Depends from sqlalchemy import select, delete from sqlalchemy.orm import Session from database.connection import get_db from database.orm import ToDo, User class ToDoRepository: def __init__(self, session: Session = Depends(get_db)): self.session = session def get_todos(self) -> List[ToDo]: return list(self.session.scalars(select(ToDo))) def get_todo_by_todo_id(self, todo_id: int) -> ToDo | None: return self.session.scalar(select(ToDo).where(ToDo.id == todo_id)) def create_todo(self, todo: ToDo) -> ToDo: self.session.add(instance=todo) self.session.commit() self.session.refresh(instance=todo) return todo def update_todo(self, todo: ToDo) -> ToDo: self.session.add(instance=todo) self.session.commit() self.session.refresh(instance=todo) return todo def delete_todo(self, todo_id: int) -> None: self.session.execute(delete(ToDo).where(ToDo.id == todo_id)) self.session.commit() class UserRepository: def __init__(self, session: Session = Depends(get_db)): self.session = session def get_user_by_username(self, username: str) -> User | None: return self.session.scalar(select(User).where(User.username == username)) def save_user(self, user: User) -> User: self.session.add(instance=user) self.session.commit() self.session.refresh(instance=user) return user src/service/ user.py import random import time import bcrypt from datetime import datetime, timedelta from jose import jwt class UserService: encoding: str = "UTF-8" JWT_SECRET_KEY: str = "f002393019e8776398370aa671767b860b702854724591cd0da5fc97bda3daf1" JWT_ALGORITHM: str = "HS256" def hash_password(self, plain_password: str) -> str: hashed_password: bytes = bcrypt.hashpw( plain_password.encode(self.encoding), salt=bcrypt.gensalt() ) return hashed_password.decode(self.encoding) def verify_password( self, plain_password: str, hashed_password: str ) -> bool: return bcrypt.checkpw( plain_password.encode(self.encoding), hashed_password.encode(self.encoding) ) def creat_jwt(self, username: str) -> str: return jwt.encode( { "sub": username, "exp": datetime.now() + timedelta(days=1), }, self.JWT_SECRET_KEY, algorithm=self.JWT_ALGORITHM ) def decode_jwt(self, access_token: str) -> str: payload: dict = jwt.decode( access_token, self.JWT_SECRET_KEY, algorithms=[self.JWT_ALGORITHM] ) return payload["sub"] @staticmethod def create_otp() -> int: return random.randint(1000, 9999) @staticmethod def send_email_to_user(email: str) -> None: time.sleep(10) print(f"Sending email to {email}!") src/api/ user.py from fastapi import APIRouter, Depends, HTTPException, BackgroundTasks from cache import redis_client from database.orm import User from database.repository import UserRepository from schema.request import SignUpRequest, LoginRequest, CreateOTPRequest, VerifyOTPRequest from schema.response import UserSchema, JWTResponse from security import get_access_token from service.user import UserService router = APIRouter(prefix="/users", tags=["USER"]) @router.post("/sign-up", status_code=201) def user_sign_up_handler( request: SignUpRequest, user_service: UserService = Depends(), user_repository: UserRepository = Depends(), ): hashed_password: str = user_service.hash_password( plain_password=request.password ) user: User = User.create( username=request.username, hashed_password=hashed_password ) user: User = user_repository.save_user(user) return UserSchema.from_orm(user) @router.post("/log-in", status_code=200) def user_log_in_handler( request: LoginRequest, user_service: UserService = Depends(), user_repository: UserRepository = Depends(), ): user: User | None = user_repository.get_user_by_username( username=request.username ) if not user: raise HTTPException(status_code=404, detail="User Not Found") verified: bool = user_service.verify_password( plain_password=request.password, hashed_password=user.password ) if not verified: raise HTTPException(status_code=401, detail="Not Authorized") access_token: str = user_service.creat_jwt(username=user.username) return JWTResponse(access_token=access_token) @router.post("/email/otp") def create_otp_handler( request: CreateOTPRequest, _: str = Depends(get_access_token), user_service: UserService = Depends() ): otp: int = user_service.create_otp() redis_client.set(request.email, otp) redis_client.expire(request.email, 3 * 60) return {"otp": otp} @router.post("/email/verify") def verify_otp_handler( request: VerifyOTPRequest, background_tasks: BackgroundTasks, access_token: str = Depends(get_access_token), user_service: UserService = Depends(), user_repo: UserRepository = Depends(), ): otp: str | None = redis_client.get(request.email) if not otp: raise HTTPException(status_code=400, detail="Bad Request") if request.otp != int(otp): raise HTTPException(status_code=400, detail="Bad Request") username: str = user_service.decode_jwt(access_token=access_token) user: User | None = user_repo.get_user_by_username(username) if not user: raise HTTPException(status_code=404, detail="User Not Found") background_tasks.add_task( user_service.send_email_to_user, email="admin@fastapi.com" ) return UserSchema.from_orm(user)
python 리팩토링 orm FastAPI pytest
포팃
2024-10-31T05:48:52.384Z
댓글 1
좋아요 0
조회수 243
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
~와 같다라는 식을 쓸때 =가 아닌 == 로 표기하는 이유가 있을까요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
shs4166
2024-10-31T03:26:41.849Z
댓글 2
좋아요 0
조회수 87
미해결
AWS 배포 완벽가이드 (feat. Lightsail, Docker, ECS)
import express from "express"; import * as redis from "redis"; const PORT = 4000; const createApp = async () => { const app = express(); const client = redis.createClient({ url: "redis://localhost:6379" }); await client.connect(); app.use(express.json()); app.get("/", (req, res) => { res.status(200).send("hello from express"); }); return app; }; createApp().then((app) => { app.listen(PORT, () => { console.log(`App listening at port ${PORT}`); }); }); Error: connect ECONNREFUSED 127.0.0.1:6379 [1] at createConnectionError (node:net:1647:14) [1] at afterConnectMultiple (node:net:1677:16) { [1] errno: -4078, [1] code: 'ECONNREFUSED', [1] syscall: 'connect', [1] address: '127.0.0.1', [1] port: 6379 [1] } WSL의 bind를 0.0.0.0으로 바꿔봄 방화벽에서 6379 포트 허용함 WSL의 ip를 localhost 대신에 넣어서 접속 시도 이렇게 했는데 실행하면 계속 연결할 수 없다는 에러가 발생합니다. 혹시 해결 방법을 알 수 있을까요?
aws docker ci/cd aws-ecs wsl redis
몰랑몰랑우주선
2024-10-31T02:08:26.274Z
댓글 1
좋아요 0
조회수 368
해결됨
개발자를 위한 쉬운 도커
여러 DB가 동시에 한 볼륨을 공유할 때 발생하는 데이터 무결성 문제는 없나요?
docker 가상화 ci/cd docker-compose github-actions docker-volume docker-image container
gogoDevelop
2024-10-31T01:47:10.214Z
댓글 2
좋아요 1
조회수 226
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
판다스 강의 다듣고 작업형 들으려는데 작업형1모의문제1 부터 들으면 될까요? 강의안에서 지난시간에 작업형 첫번째 예시문제랑 기출문제를 풀어봤다고 말씀하시는데 풀어본 기억이 없어서요… 혹시 이전에 들어야하는 강의가 있을까요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
권종오
2024-10-31T01:18:14.582Z
댓글 2
좋아요 0
조회수 150
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
/ 사용할 때와 : 사용할 때 어떻게 구분하나요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
shs4166
2024-10-30T23:48:55.952Z
댓글 2
좋아요 0
조회수 92
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pd.DataFrame 을 하기도 전인데 이렇게 표 형태로 나오는 건 왜일까요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
shs4166
2024-10-30T15:35:43.644Z
댓글 1
좋아요 0
조회수 83
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
어떨 때는 그냥 df로 데이터를 확인하고 어떨 때는 df.head()로 확인을 하는데 무슨 차이인가요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
shs4166
2024-10-30T15:05:16.206Z
댓글 2
좋아요 0
조회수 90
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
제가 인강은 처음이라 어디서 자료를 불러와야 하는지 모르겠습니다..
python 머신러닝 빅데이터 pandas 빅데이터분석기사
김치현
2024-10-30T12:54:53.991Z
댓글 2
좋아요 0
조회수 123
미해결
RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)
테슬라_KR.txt / 리비안_KR.txt 파일이 첨부파일에 없어요.. 첨부파일 중 pdf 폴더도 비어있습니다..
정성범
2024-10-30T12:37:00.288Z
댓글 2
좋아요 1
조회수 247
미해결
대세는 쿠버네티스 (초급~중급편)
현재 그램 노트북에서 실습을 진행중입니다. CPU 6 core, RAM 16 GB인데 vm 세개를 동시에 돌리면 메모리 사용량이 99%까지 차면서 노트북이 정상적으로 작동을 안합니다.. 혹시 해결 방법이나 차선책이 있을까요? 작업 관리자에서 확인해보니 vagrant가 메모리를 많이 차지하는 것 같은데 VM 생성 이후에는 그냥 vagrant 없이 oracle vm과 xshell 로만 실습을 해도 될까요? 지금은 환경구성 단계까지만 실습을 했는데 그 뒤 강의에서 vagrant가 없어도 되는지도 궁금합니다.
김민경
2024-10-30T06:31:45.406Z
댓글 2
좋아요 1
조회수 148
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
원래 주석처리 된거 드래그 후 ctrl + / 를 해도 주석변경이 안되고 계속 / 기호가 나와요. 항상 그러는게 아니라 어떨때는 되고 어떨때는 안되는데 혹시 이유가 있을까요?
python 머신러닝 빅데이터 pandas 빅데이터분석기사
박건우
2024-10-30T05:54:20.049Z
댓글 3
좋아요 0
조회수 321
해결됨
직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
이건 질문 아닙니다. ^^ 구현하고 싶은 간단한 내용이 있었는데, 강의에서 배운 내용을 기반으로 하고, A.I.에 질문하여 코드를 작성한 후 정상 작동에 성공했습니다. 저 같은 왕초보도 작동하는 뭔가를 만들어 내게 하는 이 강의는 정말 훌륭합니다~! 아주 기초적이고 작은 성공이라도 동기부여를 위해 소중합니다. ^^ # ■ 아래 코드의 용도 --- 작동 성공했음 _24-10-30 11:26 # "C:\\Users\\user\\Desktop\\제목 추가\\"에 여러 개의 hwp 파일들이 있을 때 # 파일을 하나씩 열고, 문서의 맨 처음으로 이동하여 파일명(~~~.hwp)을 타이핑하고 엔터를 3번 친 후 저장하고 닫기 import win32com.client as win32 hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL","FilePathCheckerModule") import os from time import sleep os.chdir("C:\\Users\\user\\Desktop\\제목 추가\\") # r"C:\Users\user\Desktop\\제목 추가\\"로도 작동 성공함 for i in os.listdir(): hwp.Open(os.path.join(os.getcwd(), i)) sleep(0.2) # 문서 객체 가져오기 --- 일코 doc = hwp.XHwpDocuments.Item(0) # 전체 경로에서 파일명 추출 --- 일코, GPT full_path = doc.FullName file_name = os.path.basename(full_path) # 커서를 원하는 위치로 이동 (예: 문서 맨 처음) --- GPT hwp.HAction.Run("MoveTopLevelBegin") # 파일명 입력 (타이핑) --- GPT hwp.HAction.GetDefault("InsertText", hwp.HParameterSet.HInsertText.HSet) hwp.HParameterSet.HInsertText.Text = file_name hwp.HAction.Execute("InsertText", hwp.HParameterSet.HInsertText.HSet) # 엔터를 3번 치기 --- GPT for _ in range(3): hwp.HAction.Run("BreakPara") hwp.Save() hwp.Clear(1)
learner
2024-10-30T04:40:48.814Z
댓글 0
좋아요 2
조회수 228
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요. [18]에서 level을 5에서 6으로 변경한 것 아닌가요? 결과가 5가 나오는 이유를 모르겠습니다.
python 머신러닝 빅데이터 pandas 빅데이터분석기사
강민균
2024-10-30T04:14:05.981Z
댓글 1
좋아요 0
조회수 87
해결됨
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요. [17]에서 1) dict변수와 di가 같은 변수인가요? 갑자기 변한 설명이 없어서요. 2) di['name']을 실행하면 왜sam이 나오는지. sam은 무슨 의미인지 모르겠습니다.
python 머신러닝 빅데이터 pandas 빅데이터분석기사
강민균
2024-10-30T03:14:17.866Z
댓글 2
좋아요 0
조회수 72
미해결
[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
df.loc[:"가격"] df.loc[2, '메뉴':'가격'] 큰따옴표, 작은 따옴표 사용 기준이 헷갈립니다
python 머신러닝 빅데이터 pandas 빅데이터분석기사
shs4166
2024-10-30T03:02:41.262Z
댓글 1
좋아요 0
조회수 70
미해결
초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
1+1 산술 연산을 하기 위하여 실행을 했는데 위와 같은 메세지가 떴습니다. 어떻게 해야 하나요?
python 챗봇 streamlit openai chatgpt
eunh2106
2024-10-30T02:33:06.810Z
댓글 1
좋아요 0
조회수 177
해결됨
파이썬 알고리즘 트레이딩 파트3: 클라우드 거래 자동화
안녕하세요? 오랜만에 질문드립니다~ start_PairTrading_Order_Realtime_final.bat 파일을 강의에서 나온대로 VScode powershell에서 .\start_PairTrading_Order_Realtime_final.bat 을 통해 작동시키면 주문이 잘 체결 되고 있긴한데, window scheduler를 통해 실행시키면 와 같은 화면이 뜨고 실행이 안됩니다. 어떻게 하면 좋을까요?
python azure 퀀트 github-actions crontab
SClee
2024-10-30T02:02:38.139Z
댓글 2
좋아요 1
조회수 172