묻고 답해요
163만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
설정한 도메인에 접속이 전부 안되는 경우..
박사님..갑자기 도메인으로 설정했던, NPM, 포르테이너, n8n 등에 연결 거부가 발생했습니다..콘타보 서버를 리스타트 했는데, 여전히 전부 연결이 안되는데 어떻게 해야 하나요?ㅜㅜㅜ
-
미해결ChatGPT AI퀀트봇으로 코인 매매시그널 무한생성하기
실전 투자 진입 청산 문의
안녕하세요 이틀간 강의를 들었습니다.90프로 정도 들었는데요궁금한 것이 이렇게 팩터 투자를 위한 한 사이클에 대해서는 알겠는데, 실제 트레이딩은 어떻게 하는지입니다.가령, 이걸 1시간 봉 기준이나 일봉 기준으로 트레이딩을 한다면 생성한 팩터들을 가지고 어떻게 트레이딩해야 하는지요?데이터봇, 생성봇, 포플봇, 검증봇을 가지고 실제 트레이딩은 어떻게 하는지 감이 안오네요.가격 데이타를 계속 모니터링하면서 어느 시점에 진입하고 청산하는지요? 제가 생각할 땐 일봉 기준이라면 매일 9시에 전일자까지의 데이타를 가지고 다시 돌려서 get_trading_weight() 함수의 결과를 가지고 와서 투자를 해야 할 거 같은데요 그럴려면 이번달의 일 데이타는 따로 수집을 하고 관리하는건가요? 바이낸스에는 월단위로 전월까지의 데이타가 생성되는 것으로 알고 있습니다.대략의 트레이딩 방향이나 내용이라도 알려주시면 감사하겠습니다. 감을 못잡겠네요.
-
미해결클로드 코드 완벽 마스터: AI 개발 워크플로우 기초부터 실전까지 (with 커서 AI)
nvm + window 사용시 계속 문제 발생
window에서 nvm 사용하고 있습니다다름이 아니라 nvm 때문에 경로가 계속 이상하게 잡혀서설치부터 설정까지 제대로 되는 게 없는데요 ㅠㅠ문제가 생길 때마다 ai 도움 받아서 환경 변수 경로도 바꾸고 해결하고 있긴 한데강의를 진행할 수록 문제가 계속 생기네요nvm을 안쓰는 게 나은 걸까요?(설정을 많이 건들어서 이제 와서 nvm 지운다고 다시 돌릴 수 있을지도 걱정입니다ㅠㅠ)클로드코드가 원래 window 는 호환이 잘 안되는 건지강사님이 mac 기준으로 작업하셔서 설정이 조금씩 다른 건지 알 수가 없는 게 가장 답답하네요ㅎㅎ 지금까지 있었던 문제 : claude 인식 불가, ide 인식불가, mcp 인식불가, statusLine 노출안됨 이었고인식 문제는 해결했는데 (statusLine은 아직도 안 나오고 있습니다)또 다시 생긴 새로운 문제는 settings.local.json 에허가 목록을 넣어놔도 어떤 작업을 요청하면 계속 권한을 물어봅니다;("Bash" 로 넣었을 때도 아무 효과가 없어서 에러메시지 보고 "Bash:*"로 수정한 것) "permissions": { "allow": [ "Bash:*", "mcp__playwright:*", "mcp__context7__*", "Bash(del nul)", "Bash(git add:*)", "Bash(git commit:*)", "Bash(netstat:*)", "Bash(findstr:*)", "Bash(taskkill:*)", ] },어떻게 하면 좋을까요..?
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
Volume과 VolumeMount는 왜 나눠놨을까요?
안녕하세요.수업 중 뜬금없이 든 생각인데요.. 마운트 되지 않으면 볼륨을 붙일 필요가 없을텐데 왜 볼륨과 볼륨마운트를 나눠놨을까요?그냥 든 생각은 볼륨은 파드에 할당하고 볼륨마운트는 컨테이너에 할당하는 속성이라서 그런가(?) 생각도 들긴 하는데요.. 혹시 이유가 있을까요?
-
미해결실무에서 바로 쓰는 SQL [SQL200제 저자 직강]
음 잘 입력한거 같은데... 세션이 만료가 되버려 조회가 안됩니다.. 질의 결과에서 계속 돌고있습니다.
CREATE OR REPLACE VIEW speech_viewASSELECT REGEXP_SUBSTR(lower(speech_text), '[^ ]+', 1, a) wordFROM speech, (SELECT LEVEL aFROM dualCONNECT BY LEVEL <= 52); SELECT COUNT(word) AS 부정단어FROM speech_viewWHERE lower(word) IN (SELECT lower(n_text)FROM negative);
-
해결됨수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
Cannot read properties of undefined (reading 'parts')
오류가 나서 찾아보니 해당 x된 부분이 모델때문에 오류가 나서 그런거 같은데,,해당 부분 모델은 2.5 pro를 사용하고 있습니다만 다른 모델 추천하실께 있으실까요...? 왜 오류가 나는지 모르겠네요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 build test오류 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]클린도 해보고 다시 시도해보아도 test때문에 실패 한다네요.. 왜이럴까요..??
-
미해결원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)
FAL AI 이미지 생성요청 시 이미지가 너무 많이생성됩니다.
제목 그대로 쇼츠에 올릴 영상 5개를 만들기 위해서이미지 생성을 하면 이미지가 너무 많이생성이 됩니다. 처음에는 제가 잘못했나 싶었는데 2번째 생성시도했을때는 이미지가 122개가 생성이되네요..( REQUEST로 확인했을때 정확하게 세보지는 않았지만 중복된 이미지가 많았습니다)어디가 문제일까요 ..?(이미지 마다 눌러서 URL 복사해서 유튜브 자동화 시트에 붙여넣기 하면 영상생성은 잘됩니다)
-
미해결
4주차 과제(1회차, 5회차)
1회차 과제 : 호스트 정의 정책저는 호스트를 자격과 상태라는 두 가지 관점으로 나누어 정의했습니다. is_host 필드는 시스템이 부여한 면허증 같은 정체성이라면, 캘린더 보유 여부는 실제 모임을 열 장비를 갖췄는지 보는 준비 상태입니다.저는 두 요소를 모두 유지하되 역할을 수직적으로 분리하는 정책을 세웠습니다.is_host(권한 레이어): 메뉴 노출 등 UI/UX 접근 제어용으로 활용합니다.캘린더 여부 (데이터 레이어): 실제 예약 로직 실행 시 최종 검증용으로 씁니다.이 정책의 의도는 '잠재적 호스트에 대한 배려'입니다. 가입 즉시 자격을 부여해 소속감을 주되, 실제 운영은 캘린더 개설을 통해 단계적으로 유도하는 UX를 설계했습니다. 캘린더를 수정하거나 잠시 삭제해도 호스트라는 자격(정체성)은 유지되어야 안정적인 서비스 이용이 가능하다고 판단했기 때문입니다.데이터 불일치는 API 단의 강한 검증으로 막고, 조회 성능 문제는 예약 시점에만 확인하는 지연 검증으로 해결하겠습니다.5회차 과제 : 파일 삭제 정책논리적 삭제 후 유예 기간 뒤 물리적 삭제 방식을 생각해보았습니다. 사용자가 삭제를 클릭하면 is_deleted 같은 표시를 남기고, API 로직에서 is_deleted가 True이면 없는 데이터로 취급해서 접근 권한을 차단하도록 만듭니다. 그리고 실제 파일은 30일 뒤에 물리적으로 삭제 하는 것입니다. 미팅 서비스 특성상 예약 취소 후에도 분쟁이 생길 수 있고, 사용자가 실수로 파일을 지웠을 때 복구할 최소한의 시간을 벌어주고 싶었기 때문입니다. 그렇다고 너무 오래 보관하면 저장 공간이 넘쳐날 수 있으니 최적화를 위해 1달 정도의 유예 기간을 두는 것이 적절하다고 생각했습니다.
-
미해결
4주 1~5회차 과제
# 4주 1회차 두가지 요소를 다 사용하는 전략을 이용할것 같습니다. 1. is_host 만 체크할 경우 호스트 권한은 있지만 캘린터 미생성등으로 캘린더가 없는 host가 api를 호출했을때 500 에러가 발생할 위험이 있습니다. 2. 또한 캘린더 존재만 체크할 경우 일반 유저가 확인하지 못한 경로고 캘린더를 생성하거나, host 권한이 없어진 유저가 호스트 기능을 수행할수 있게 될 위험이 있습니다. 그러므로 먼저 is_host 로 유저의 자격을 검증하고, 이후 실제 비즈니스 로직 진입 전 캘린더 유무를 확인해 예외처리 등을 하는 것이 가장 안정적으로 접근할수 있게 될것 같습니다. # 4주 2회차 sqlalchemy를 사용해 기존 예약과 겹치지 않는 지 확인하는 메서드입니다. ```python from sqlalchemy import select, and_, or_ from app.models.booking import Booking async def check_timeslot_overlap(session, calendar_id, start_time, end_time): # (새로운 시작 시간 < 기존 종료 시간) AND (새로운 종료 시간 > 기존 시작 시간) # 위 조건이 참이면 시간이 겹치는 슬롯이 존재함 stmt = select(Booking).where( and_( Booking.calendar_id == calendar_id, Booking.status != "cancelled", Booking.start_at < end_time, Booking.end_at > start_time ) ) result = await session.execute(stmt) overlap_booking = result.scalars().first() if overlap_booking: return False # 중복 발생 return True # 예약 가능 ``` # 4주 3회차 동일 일자/ 타임슬롯에 대해 중복 예약을 막되, cancelled 상태인 경우는 제외해야 한다. -> postgresql에서 지원하는 partial index를 사용하는 것이 가장 깔끔할 것 같습니다. ```python from sqlalchemy import Index class Booking(Base): # ... 기존 필드 (id, calendar_id, start_at, attendance_status 등) ... # attendance_status가 'cancelled'가 아닌 데이터들에 대해서만 # calendar_id와 start_at의 조합이 유니크해야 함 __table_args__ = ( Index( "ix_unique_active_booking", "calendar_id", "start_at", unique=True, postgresql_where=(text("attendance_status != 'cancelled'")), ), ) ``` # 4주 4회차 정책 : 호스트의 노쇼 방지 맟 일정 관리의 안정성을 보장하기 위해서 예약 시간 24시간 전까지 1회에 한해 일정을 변경하는것을 허용한다. 그 이후는 취소 후 재예약만 가능한것으로 구현하는 정책을 구성할 것 같습니다. 구현 시나리오: 1. 변경 가능 기간 내 시도 (성공) 게스트가 2월 10일 오후 2시 예약을 2월 8일에 확인. 2월 11일 오후 4시로 변경 요청. 시스템은 현재 시간 + 24시간 < 예약 시작 시간을 검증 후 True. 기존 타임슬롯을 업데이트하고 성공 메시지 반환. 2. 임박한 변경 시도 (실패) 게스트가 2월 10일 오후 2시 예약을 2월 9일 오후 8시에 변경 시도. 잔여 시간이 18시간이므로 검증 로직에서 False. "예약 24시간 전에는 일정을 변경할 수 없습니다. 취소 후 재예약 바랍니다." 메시지 반환 # 4주 5회차 - soft delete 후 배치 처리를 통한 db 레코드 삭제를 세울것 같습니다. - 데이터 복구 가능성 고려 - 유저가 실수로 예약을 삭제했을때 db 레 코드와 함께 파일까지 지워지면 복구가 불가능합니다. - 트렌잭션 성능 고려 - api 요청 내부에서 s3나 로컬 파일 시스템의 i/o 작업을 직접 수행한다면 응답 시간이 길어집니다.
-
미해결[Unity6] 나만의 서바이벌 게임 만들기
강의 코드 파일은 혹시 어디에 있나요?
자료 다운 받으면 코드 파일들이 없는것 같습니다.혹시 어디서 받으면 될까요?
-
해결됨[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>
4주 3회차 과제
데이터베이스 고윳값 제약으로 예방하는 구현에 대해서 조사했습니다. 동일 일자와 동일 타임슬롯인 경우 중복Booking에 unique index를 생성하는 것인데 동일 일자 (when)과 동일 타임슬롯(time_slot_id) 조건을 생성하면 됩니다. CREATE UNIQUE INDEX uq_booking_slot ON bookings (when, time_slot_id);class Booking(SQLModel, table=True): __tablename__ = "bookings" __table_args__ = ( UniqueConstraint("when", "time_slot_id", name="uq_booking_slot"), ) attendance_status 필드값이 cancelled인 경우PostgreSQL의 경우 partial unique index가 가능합니다. where를 사용해서 field가 cancelled가 아닌 경우에 unique 제약을 걸면 됩니다. CREATE UNIQUE INDEX uq_booking_slot ON bookings (when, time_slot_id) WHERE attendance_status <> 'cancelled' ;class Booking(SQLModel, table=True): __tablename__ = "bookings" __table_args__ = ( UniqueConstraint("when", "time_slot_id", name="uq_booking_slot"), postgresql_where=text("attendance_status <> 'cancelled'") ) 다중 컬럼에 대한 unique는 종종 사용하는 방법이었는데 where를 이용해서 조건을 설정할 수 있는 건 이번에 첨 알았습니다. 필요하면 python에서 처리하곤 했었는데 데이터베이스 기능으로 이용하는게 레이스 컨디션도 피할 수 있고 장점이 있어보이네요. 실무에 적용할때도 꼭 이용해보겠습니다.
-
해결됨수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화
30강에서 몇일째 고생중입니다ㅜ
남박사님. 오디오 아웃풋 테스트에서 여러가지 방법으로 진행중인데, 잘 안되네요. 파일 또는 URL을 제공하라는데, 어디서 문제가 생겼을까요?ㅜ공유기가 문제인가 싶어서, DDNS 9900번 포트를 인터넷창으로 접속하면, 아래와 같이 접근이 되는거 같은데요.(이게 맞는지 잘 모르겠습니다만...)조언 부탁드립니다..
-
해결됨[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>
4주 5회차 과제
파일 삭제 정책booking을 삭제할때 해당 booking과 업로드된 파일을 같이 삭제하는 정책의미없는 파일이 남아있는 것은 저장 공간 낭비유출 위험을 줄여준다(?) (예: 삭제된 booking의 파일을 남겨두어 총 100개의 파일이 저장된 상태라고 가정. 그 중에 70개는 필요한 파일, 나머지 30개는 필요없는(삭제된 booking) 파일임. 파일을 바로 제거하지 않아서 100개가 다 유출되는 것보다 의미없는 파일을 바로바로 제거하여 70개만 유출되는 것이 더(?) 낫다..)그러나 한편으로는 트래픽이 적은 시간에 삭제된 booking의 파일을 주기적으로 정리하는 로직을 실행하는 것이 더 나을까 하는 생각도 드네요
-
해결됨[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>
4주 1회차 과제
is_host / 캘린더 보유 여부 중에 어느 것을 사용할까? 둘 다?is_host 는 반드시 사용할 것 같음is_host 필드가 있으면 캘린더 라는 다른 엔티티에 의존하지 않고 is_host 만으로 호스트 여부를 판단할 수 있어서캘린더 보유 여부는 선택적일 것 같음아래와 같은 정책을 설정해야할 필요가 있을때is_host 인데 캘린더가 있는 경우s_host 인데 캘린더가 없는 경우 아니면 '호스트는 최소 하나 이상의 캘린더는 있어야 한다' 같은 정책
-
미해결맥킨지 출신 김재성의 AI로 앞서가는 문제 해결력 & 리서치 전략
강의 자료 다운로드가 안됩니다.
궁금하신 점은 편하게 질문 주세요! 안녕하세요,6종 패키지, 오픈채팅 코드 pdf 등등.. 모든 자료 다운로드가 되지 않고있습니다.하단 "자료 다운로드" 버튼, 강의목차의 "다운로드" 버튼 모두 눌러봐도 다운로드가 시작되지 않고 있는데 자료 다운로드 어떻게 할 수 있나요?
-
미해결graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)
neo4j 사용에 질문 드립니다.
만약, 만든 랭체인과 그래프rag를 서비스로 만든다면, neo4j를 호출할 때, pooling은 고려하지 않아도 되는지요? 일반적으로 db 연결에 timeout이나 pooling 등의 설정을 해줘야 하는 것으로 아는데,api를 호출하는 것이라 서버에서 자체적으로 처리하는 것으로 생각하면 될런지요?
-
미해결실전에서 바로 써먹는 Kafka 입문
질문드립니다.
22강 [실습] Spring Boot로 Kafka에서 메시지 조회하기(Consumer)를 실습하고 있었습니다.강사님이 제공한 방식과 다르게 해보고 싶어서 이전 강의에서 Producer를 구현한 프로젝트에 Consumer를 추가적으로 구현하였습니다. yml 설정 추가와 consumer 클래스를 추가하엿는데, 프로젝트 기동 시 Consumerr가 초기화가 되지 않고 있습니다. 강의대로 consumer를 프로젝트 분리하여 실행하면, 강의와 동일하게 정상동작하는데, 왜 1개의 프로젝트에선 정상동작하지않는 것인지 궁금합니다.
-
해결됨남박사의 파이썬으로 실전 웹사이트 만들기
DB 검색하면 데이터가 없습니다. 라고 나와요. 5시간을 찾아봐도 모르겠어서 문의드려봅니다.
안녕하세요저의 환경은윈도우 11이고 파이선 3.12 버전입니다. 몽고DB는 8.2.3 x64입니다.ms 엣지 브라우저 버전 143.0.3650.96 (공식 빌드) (64비트) 입니다. 구글에서 긁어오는게 문제가 있어서네이버로 변경하여 긁어왔습니다.DB에 35개의 데이터를 넣었습니다.Studio 3T 프로그램으로 검새하면db.getCollection("board").find({$or:[// {title: { $regex: "이유", $options: "i" }},{name:{ $regex: "테스터", $options: "i" }}]})위의 쿼리로 검색을 했을 때name = '테스터'로 하면 35개 전부 나오고title = '이유'로 검색하면 3건이 나옵니다. 그런데 웹에서 list.html 검색에서는 0건으로 데이터가 없다고 나옵니다.원인을 아무리 찾아도 모르겠어서 문의드려봅니다. 위와 같이 네이버에서 검색하여 DB에 넣음title 이유로 검색하면 3건name 테스터로 검색하면 35건 조회됩니다.위와 같이 제목, '이유'로 검색하면 3건이 나와야 하는데위와 같이 데이터가 없습니다. 라고 나옵니다. # 검색 대상이 한개라도 존재할 경우 query 변수에 $or 리스트를 쿼리 합니다. if len(search_list) > 0: query = {"$or": search_list} print(query) # datas_count = board.count_documents({}) # 정확한 카운트 방식 datas_count = board.count_documents(query) print(datas_count) 위와 같이 print로 값을 보면{'$or': [{'title': {'regex': '이유'}}]}0127.0.0.1 - - [11/Jan/2026 17:42:01] "GET /list?search=0&keyword=이유 HTTP/1.1" 200 -이렇게 나옵니다.쿼리는 title 이유라고 잘 들어가는 것 같은데검색 결과가 0건으로 나옵니다.DB에서 검색이 제대로 안되는걸로 보이는데 어느부분일지 찾지 못하고 있습니다. 아래는 전체 소스코드 입니다. < run.py 전체 코드 > from flask import Flask from flask import request from flask import render_template from flask_pymongo import PyMongo from datetime import datetime from bson.objectid import ObjectId from flask import abort from flask import redirect from flask import url_for import time import math app = Flask(__name__) app.config["MONGO_URI"] = "mongodb://localhost:27017/myweb" mongo = PyMongo(app) @app.template_filter("formatdatetime") def format_datetime(value): if value is None: return "" now_timestamp = time.time() offset = datetime.fromtimestamp(now_timestamp) - datetime.utcfromtimestamp(now_timestamp) value = datetime.fromtimestamp((int(value) / 1000)) + offset return value.strftime('%Y-%m-%d %H:%M:%S') @app.route("/list") def lists(): page = request.args.get("page", default=1, type=int) limit = request.args.get("limit", 5, type=int) search = request.args.get("search", -1, type=int) keyword = request.args.get("keyword", type=str) query = {} search_list = [] if search == 0: search_list.append({"title": {"regex": keyword}}) elif search == 1: search_list.append({"contents": {"regex": keyword}}) elif search == 2: search_list.append({"title": {"regex": keyword}}) search_list.append({"contents": {"regex": keyword}}) elif search == 3: search_list.append({"name": {"regex": keyword}}) if len(search_list) > 0: query = {"$or": search_list} print(query) board = mongo.db.board datas = board.find(query).skip((page - 1) * limit).limit(limit) datas_count = board.count_documents(query) print(datas_count) tot_count = datas_count last_page_num = math.ceil(tot_count / limit) block_size = 5 block_num = int((page - 1) / block_size) block_start = int((block_size * block_num) + 1) block_last = math.ceil(block_start + (block_size - 1)) return render_template( "list.html", datas=datas, datas_count=datas_count, limit=limit, page=page, block_start=block_start, block_last=block_last, last_page_num=last_page_num, search=search, keyword=keyword) @app.route("/view/<idx>") def board_view(idx): if idx is not None: page = request.args.get("page") search = request.args.get("search") keyword = request.args.get("keyword") board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if data is not None: result = { "id": data.get("_id"), "name": data.get("name"), "title": data.get("title"), "contents": data.get("contents"), "pubdate": data.get("pubdate"), "view": data.get("view") } return render_template("view.html", result=result, page=page, search=search, keyword=keyword) return abort(404) @app.route("/write", methods=["GET", "POST"]) def board_write(): if request.method == "POST": name = request.form.get("name") title = request.form.get("title") contents = request.form.get("contents") print(name, title, contents) current_utc_time = round(datetime.utcnow().timestamp() * 1000) board = mongo.db.board post = { "name": name, "title": title, "contents": contents, "pubdate": current_utc_time, "view": 0 } x = board.insert_one(post) print(x.inserted_id) return redirect(url_for("board_view", idx=x.inserted_id)) else: return render_template("write.html") if __name__ == "__main__": app.run(debug=True, port=9000) < list.html 전체 코드 ><script> function search() { var v_search = document.getElementById("search").value; var v_keyword = document.getElementById("keyword").value; if(v_search == "" || v_keyword == "") { return false; } else { self.location.href = "{{url_for('lists')}}?search=" + v_search + "&keyword=" + v_keyword; } } </script> <!-- % if datas_count() > 0 %} # Deprecated 됨--> {% if datas_count > 0 %} <table> <thead> <tr> <td>번호</td> <td>제목</td> <td>이름</td> <td>날짜</td> <td>조회수</td> </tr> </thead> <tbody> <!-- 반복되는 구간 --> {% for data in datas %} <tr> <td>{{loop.index + ((page - 1) * limit)}}</td> <td><a href="{{url_for('board_view', idx=data._id, page=page, search=search, keyword=keyword)}}">{{data.title}}</a></td> <td>{{data.name}}</td> <td>{{data.pubdate | formatdatetime}}</td> <td>{{data.view}}</td> </tr> {% endfor %} <!-- 반복되는 구간 끝 --> </tbody> </table> {% if block_start - 1 > 0 %} <a href="{{url_for('lists', page=block_start - 1, search=search, keyword=keyword)}}">[이전]</a> {% endif %} {% for i in range(block_start, block_last + 1) %} {% if i > last_page_num %} {{ i }} {% else %} {% if i == page %} <b>{{ i }}</b> {% else %} <a href="{{url_for('lists', page=i, search=search, keyword=keyword)}}">{{ i }}</a> {% endif %} {% endif %} {% endfor %} {% if block_last < last_page_num %} <a href="{{url_for('lists', page=block_last + 1, search=search, keyword=keyword)}}">[다음]</a> {% endif %} <select name="search" id="search"> <option value="" {% if search == '' or search == -1 %} selected {% endif %}>검색대상</option> <option value="0" {% if search == 0 %} selected {% endif %}>제목</option> <option value="1" {% if search == 1 %} selected {% endif %}>내용</option> <option value="2" {% if search == 2 %} selected {% endif %}>제목+내용</option> <option value="3" {% if search == 3 %} selected {% endif %}>작성자</option> </select> <input type="text" name="keyword" id="keyword" {% if keyword != "" %} value={{keyword}} {% endif %}> <input type="button" value="검색" onclick="search()"> {% else %} <h3>데이터가 없습니다.</h3> {% endif %} <a href="{{url_for('board_write')}}">글작성</a>오타가 있는지 문제가 될만한 부분이 있는지 5시간이나 찾아봤는데 도저히 못찾아서 문의드려봅니다.봐주셔서 감사합니다.버전 143.0.3650.96 (공식 빌드) (64비트)버전 143.0.3650.96 (공식 빌드) (64비트)ㅍ
-
미해결즐거운 블렌더 - 아이소메트릭 하우스
컨트롤 방법
익스투르드 혹은 스케일 조절할 때 명령어를 실행 도중에 화면을 돌리거나 줌인아웃하면서 확인 할 수 없는걸까요..?