inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

Update 후 UpdateMemberResponse 매핑할 때

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] update하고 응답할 때 어차피 request dto에 응답할 파라메터 값이 담겨져있는데 해당 값을 response dto에 할당해서 응답하면 되지 않을까요? 즉 제가 구상한 코드는 다음과 같습니다. @Operation(summary = "회원 수정") @PutMapping("{id}") public UpdateMemberResponse updateMemberV1(@Validated @RequestBody MemberUpdateDTO memberUpdateDTO, BindingResult bindingResult, @PathVariable("id") Long id){ memberService.update(memberUpdateDTO, id); return new UpdateMemberResponse(id, memberUpdateDTO.getName(), memberUpdateDTO.getCity(), memberUpdateDTO.getStreet(), memberUpdateDTO.getZipcode()); } 굳이 컨트롤러단에서 memberService.findOne(id)를 select문을 날려서 호출해서 준영속상태의 Member 엔티티의 값을 response dto에 할당하는 이유가 있을까요?

  • java
  • spring
  • spring-boot
  • jpa
경민 댓글 1 좋아요 0 조회수 80

4주 3회차 과제

해결됨

[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>

중복 예약을 데이터베이스의 고유값 제약으로 예방하는 방법 조건은 1)동일 일자와 동일 타임 슬롯인 경우 중복으로 간주 2)약속(부킹)이 취소되어 attendance_status 모델 필드값이 cancellled인 경우 예약 가능 위를 구현하기 위해 데이터베이스에게 아래 정보가 고유해야 한다는 특별한 규칙을 알려줄 수 있습니다. 1)누가 예약하는지 2)언제 예약하는지 3)어느 시간대에 예약하는지 위의 세가지가 모두 같으면 중복 예약이라고 판단 합니다. 취소된 재예약은 가능하게 하기 위해 고유성 규칙에 한가지 예외를 부여합니다. 호스트, 날짜, 시간 슬롯의 조합은 고유해야 한다. 예외적으로 예약상태가 "취소됨"이라면 그 예약은 위의 고유성 규칙을 무시해 달라고 합니다. 새로운 예약 생성 시: 데이터베이스는 예약하려는 호스트, 날짜, 시간슬롯 정보를 보고, 현재 '취소됨' 상태가 아닌 다른 예약이 이미 있는지 찾아봅니다. 만약 '취소됨' 상태가 아닌 다른 예약이 이미 같은 자리에 있다면, 데이터베이스는 "안돼! 이미 예약된 자리야!"라고 하며 새로운 예약을 저장하지 못하게 합니다. 만약 같은 자리에 '취소됨' 상태가 아닌 예약이 없다면, 데이터베이스는 새로운 예약을 성공적으로 저장합니다. 예약 취소 시: 어떤 예약이 '취소됨(cancelled)' 상태로 변경되면, 데이터베이스의 이 "특별한 규칙"은 그 취소된 예약을 더 이상 고유성 검사 대상에서 제외 합니다. 이제 그 자리는 "비어있는" 것처럼 간주되므로, 다른 사람이 같은 호스트, 날짜, 시간슬롯 정로 새로운 예약을 만들 수 있게 됩니다.

  • python
  • aws
  • tdd
  • FastAPI
  • 북-챌린지
usna7 댓글 2 좋아요 0 조회수 74

4주 1회차 과제

해결됨

[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>

사용자가 호스트인지 두 가지 방법으로 확인 가능합니다. 1. User 모델에 선언한 is_host 모델 필드가 True인지 확인 2.사용자가 캘린더를 보유했는지 확인 이 중 두 가지 방법 모두를 사용해야 한다고 생각합니다. 1. User 모델에 선언한 is_host 모델 필드가 True인지 확인 -> 관점적 측면에서 명시적이고 관리적인 역할 및 자격을 부여합니다. 즉 사용자가 호스트로 자격이 있다는 것을 의미합니다. 관리자가 특정 사용자를 호스트로 지정하거나 해제하는데 사용할 수 있고 캘린더의 유무와 별개로 관리가 가능하게 서비스의 효율을 향상시켜 줍니다. 2.사용자가 캘린더를 보유했는지 확인 ->실제 예약 요청이 들어 왔을 때 해당 호스트가 유효한 캘린더를 보유하고 있는지 확인하는 최종적인 역할을 할 수 있습니다. 즉 위의 두 정보가 모두 필요한 이유는 존재하지 않는 사용자의 username으로 캘린더 정보를 가져오려고 하거나 호스트가 아닌 사용자의 username으로 캘린더 정보를 가져오려고 하는 시도를 막을 수 있을것으로 예상됩니다. 요약하면 is host는 "호스트로서의 신분"을, 캘린더 보유 여부는 "호스트로서의 활동을 나타내는 정보여서 모두 필요합니다.

  • python
  • aws
  • tdd
  • FastAPI
  • 북-챌린지
usna7 댓글 2 좋아요 0 조회수 81

github에 회원가입이 안되는데 원인이 뭔지 모르겠어요 ㅠ

미해결

Airflow 마스터 클래스

캡차 응답을 확인할 수 없습니다. 문제 해결 정보는 https://docs.github.com/articles/troubleshooting-connectivity-problems/#troubleshooting-the-captcha 를 참조하세요. 위와 같이 메시지가 뜨는데 회사나 기관의 네트워크을 사용하라고 하는데 꼭 고정IP를 사용해야 하는 건가 해서요. 집이나 도서관 등 유동IP는 사용이 불가능한 건가요?

  • python
  • 데이터-엔지니어링
  • airflow
dhkim218 댓글 2 좋아요 0 조회수 908

dashboard에서 pod 생성이 되지 않습니다.

미해결

대세는 쿠버네티스 (초급~중급편)

안녕하세요 제 설치환경은 mac이고 카페에 올라가 있는 가이드대로 설치하고 노드연결까지 완료했습니다. 대시보드에 접속해서 pod 생성하려고 하는데 권한이 없는지 해당화면이 나옵니다. 해결할 수 있는 좋은 방법이 있을까요?

  • docker
  • kubernetes
  • devops
  • container
김아현 댓글 2 좋아요 1 조회수 128

설정한 도메인에 접속이 전부 안되는 경우..

해결됨

수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화

박사님.. 갑자기 도메인으로 설정했던, NPM, 포르테이너, n8n 등에 연결 거부가 발생했습니다.. 콘타보 서버를 리스타트 했는데, 여전히 전부 연결이 안되는데 어떻게 해야 하나요?ㅜㅜㅜ --> 조마조마했는데, 다시 리부팅 하니까 되네요ㅜㅜ

  • docker
  • n8n
  • 인공지능(ai)
  • 프롬프트엔지니어링
  • ai-활용-(ax)
xebeclee 댓글 2 좋아요 0 조회수 69

Cannot read properties of undefined (reading 'parts')

해결됨

수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화

오류가 나서 찾아보니 해당 x된 부분이 모델때문에 오류가 나서 그런거 같은데,,해당 부분 모델은 2.5 pro를 사용하고 있습니다만 다른 모델 추천하실께 있으실까요...? 왜 오류가 나는지 모르겠네요

  • docker
  • n8n
  • 인공지능(ai)
  • 프롬프트엔지니어링
  • ai-활용-(ax)
오개발 댓글 3 좋아요 0 조회수 175

윈도우 build test오류 질문

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 클린도 해보고 다시 시도해보아도 test때문에 실패 한다네요.. 왜이럴까요..??

  • java
  • spring
  • mvc
  • spring-boot
escho94 댓글 2 좋아요 1 조회수 155

FAL AI 이미지 생성요청 시 이미지가 너무 많이생성됩니다.

해결됨

원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)

제목 그대로 쇼츠에 올릴 영상 5개를 만들기 위해서 이미지 생성을 하면 이미지가 너무 많이생성이 됩니다. 처음에는 제가 잘못했나 싶었는데 2번째 생성시도했을때는 이미지가 122개가 생성이되네요.. ( REQUEST로 확인했을때 정확하게 세보지는 않았지만 중복된 이미지가 많았습니다) 어디가 문제일까요 ..? (이미지 마다 눌러서 URL 복사해서 유튜브 자동화 시트에 붙여넣기 하면 영상생성은 잘됩니다)

  • python
  • youtube-api
  • n8n
  • ai-활용-(ax)
깜자TV 댓글 2 좋아요 0 조회수 132

4주 3회차 과제

해결됨

[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>

데이터베이스 고윳값 제약으로 예방하는 구현에 대해서 조사했습니다. 동일 일자와 동일 타임슬롯인 경우 중복 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에서 처리하곤 했었는데 데이터베이스 기능으로 이용하는게 레이스 컨디션도 피할 수 있고 장점이 있어보이네요. 실무에 적용할때도 꼭 이용해보겠습니다.

  • python
  • aws
  • tdd
  • FastAPI
  • 북-챌린지
김도현 댓글 1 좋아요 0 조회수 65

30강에서 몇일째 고생중입니다ㅜ

해결됨

수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화

남박사님. 오디오 아웃풋 테스트에서 여러가지 방법으로 진행중인데, 잘 안되네요. 파일 또는 URL을 제공하라는데, 어디서 문제가 생겼을까요?ㅜ 공유기가 문제인가 싶어서, DDNS 9900번 포트를 인터넷창으로 접속하면, 아래와 같이 접근이 되는거 같은데요.(이게 맞는지 잘 모르겠습니다만...) 조언 부탁드립니다..

  • docker
  • n8n
  • 인공지능(ai)
  • 프롬프트엔지니어링
  • ai-활용-(ax)
xebeclee 댓글 2 좋아요 0 조회수 60

4주 5회차 과제

해결됨

[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>

파일 삭제 정책 booking을 삭제할때 해당 booking과 업로드된 파일을 같이 삭제하는 정책 의미없는 파일이 남아있는 것은 저장 공간 낭비 유출 위험을 줄여준다(?) (예: 삭제된 booking의 파일을 남겨두어 총 100개의 파일이 저장된 상태라고 가정. 그 중에 70개는 필요한 파일, 나머지 30개는 필요없는(삭제된 booking) 파일임. 파일을 바로 제거하지 않아서 100개가 다 유출되는 것보다 의미없는 파일을 바로바로 제거하여 70개만 유출되는 것이 더(?) 낫다..) 그러나 한편으로는 트래픽이 적은 시간에 삭제된 booking의 파일을 주기적으로 정리하는 로직을 실행하는 것이 더 나을까 하는 생각도 드네요

  • python
  • aws
  • tdd
  • FastAPI
  • 북-챌린지
ayo 댓글 2 좋아요 0 조회수 56

4주 1회차 과제

해결됨

[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>

is_host / 캘린더 보유 여부 중에 어느 것을 사용할까? 둘 다? is_host 는 반드시 사용할 것 같음 is_host 필드가 있으면 캘린더 라는 다른 엔티티에 의존하지 않고 is_host 만으로 호스트 여부를 판단할 수 있어서 캘린더 보유 여부는 선택적일 것 같음 아래와 같은 정책을 설정해야할 필요가 있을때 is_host 인데 캘린더가 있는 경우 s_host 인데 캘린더가 없는 경우 아니면 '호스트는 최소 하나 이상의 캘린더는 있어야 한다' 같은 정책

  • python
  • aws
  • tdd
  • FastAPI
  • 북-챌린지
ayo 댓글 2 좋아요 0 조회수 49

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': '이유'}}]} 0 127.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비트)ㅍ

  • python
  • 몽고db검색문제
호기심고양이 댓글 1 좋아요 0 조회수 85

4주 1회차 과제

해결됨

[매일 완독 챌린지] 저자와 함께하는 <FastAPI로 기획에서 출시까지>

기획의 관점에서 Host 체크 방법 is_host 필드 체크 사용자가 호스트인지 먼저 확인을 하게 되므로 호스트 등록, 호스트만 조회, 호스트에 주어진 권한 제어 등 호스트를 따로 관리하고 싶을때 장점이 있습니다 캘린더 보유 체크 캘린더로 호스트일 경우는 호스트, 게스트 구분이 회원 등급이나 종류가 아닌 모두가 호스트나 게스트가 될수 있고 예약이 서로에게 일어날 수 있을때 장점이 있습니다. 구글 캘린더로 예를 들면 모두가 초대가 가능하고 초대도 가능한 방식입니다. 내가 선택한다면 저라면 기본적으로는 is_host 필드로 체크하고 실제 예약을 받는다면 캘린더 체크를 이후에 하겠습니다. 호스트 관리를 따로 하게 되면 호스트만 따로 조회도 가능하고 호스트를 하고 싶지 않을때는 호스트가 되지 않는 것도 가능합니다. 또한 is_host를 기본 true로 하게 되면 모두가 호스트가 되는 방식도 가능하므로 앞에서 가정한 모두가 호스트/게스트인 방식도 쉽게 전환이 가능합니다. 예약 가능한 캘린더 체크는 실제로 이사람이 호스트라고 하더라도 예약일자가 있는지에 따라 예약화면 컨트롤 등이 가능하기 때문에 체크가 필요합니다. 요약하면 is_host 체크를 할 때 상황에 따라 유연하게 호스트 <-> 게스트 전환이 쉽고 필요한 경우 호스트이면서 게스트인 정책도 가능하기 때문에 좀 더 유연한 방법이라고 생각합니다.

  • python
  • aws
  • tdd
  • FastAPI
  • 북-챌린지
김도현 댓글 2 좋아요 0 조회수 45

DNS server 오류 관련 문의 드립니다.

해결됨

수익형 AI Agent n8n 전문가 강의, 블로그·쇼츠 자동화

전체적으로 Execute workflow를 진행 할 때, 노드를 넘어 갈때 위와 같은 Dns Server 오류가 발생되고 있습니다. 기존 실습에서는 그때 마다 다시 해당 노드만 Execute step(플레이 버튼)을 2~3번 정도 누르면 다시 실행이 되는데, 전체적으로 한번에 실행 되지 않고 노드를 넘어갈때 마다 거의 해당 오류가 노출 되고 있습니다. 어떤 방법을 조치하면 좋을지 문의드립니다.

  • docker
  • n8n
  • 인공지능(ai)
  • 프롬프트엔지니어링
  • ai-활용-(ax)
leo41572 댓글 3 좋아요 0 조회수 75

맥 os vscode 설정 - python interpreter select

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

안녕하세요. 맥 os에 vscode를 설정하려고 하는데 python interpreter select -> 알맞는 python 버전을 클릭해도 선생님과 같은 파란색 바가 안 뜨는데 어떤 문제가 있을까요? 코드를 입력해도 그에 따른 설명이 선생님과 같이 안 뜹니다(ex. 명령어 print를 입력해도 설명이 안 뜸 )

  • python
eunbee27873 댓글 1 좋아요 0 조회수 133

part5. 청팀홍팀 풀이 질문 드립니다.

미해결

2026 코딩테스트 올인원 [JAVA]

안녕하세요! 남노씨님 덕분에 강의 잘 들으며 학습중입니다. part5.청팀홍팀 풀이로 보여주신 것에서 질문이 있습니다. 문제의 Input 예시 이해가 잘 되지 않았습니다. 제가 혼자 생각했을 때는, 주어진 friends[][] 배열을 인접리스트로 만들어야한다고 생각했고, 서로는 쌍방이니 양방향 그래프. 양방향 값을 인접리스트에 넣어주어야 한다고 생각했습니다. 근데 input 예시를 보니, 예시1은 서로 양방향 없이 구성되어있고, 예시2는 인접리스트처럼 서로 양방향으로 구성되어있습니다. 이상황에서 인접리스트를 구성하려니 예시2로는 중복이 발생하더라구요. 1. 예시 1,2 기준이 달라보이는데 어떻게 해석해야 좋을까요? 2. 양방향 그래프=무방향 그래프 같다고 볼 수 있나요? 이 문제의 경우 어떤 그래프인지, 구현의 차이점이 있는지 궁금합니다. 3. 풀이에서는 인접리스트를 별도로 안만들고, 받은 배열 자체를 인접리스트인것처럼 바로 사용하였는데, 이전 풀이와 비교해서 왜 이렇게 사용하였는지 궁금합니다. (문제에서 캐치할 수 있는 차이점이 뭘지) 4. dfs/bfs에서 사용하는 자료구조(큐,재귀/스택)는 풀이에 사용하지 않으셨는데 문제 상 필요 없는건지, 이분그래프일 때 사용 안해도 되는지 궁금합니다. (일단 bfs 큐 사용한 구조 만들고 시작했는데 이렇게 접근하면 안되는걸까요?ㅠㅠ) 이해 도와주시면 감사하겠습니다 :)

  • java
  • 코딩-테스트
  • 알고리즘
  • data-structure
송유진 댓글 3 좋아요 0 조회수 122

fal.ai 요청시 wait 보다는 status 체크가 더욱 좋을것 같아요

미해결

원클릭으로 AI가 생성해주는 Youtube 쇼츠 만들기 자동화(with n8n)

fal.ai 요청시 wait 무작정 넉넉히 잡는건 서버 메시지큐 상태를 알수없고 내 TASK가 언제 처리될지 모르는 상태에서 감(?) 으로 때리는 방법이라 엣지 케이스가 너무 많은것 같아요 주기적으로 Status 호출해서 체크하는 방법이 좋아보입니다. falai POST API 생성후 응답이 다음과 같이 오는데 status_url 을 사용하면 간단히 처리가 가능할것 같습니다. { "status": "COMPLETED", "request_id": "728614ce-f8c3-498c-8174-e4beea63b48d", "response_url": "https://queue.fal.run/fal-ai/kling-video/requests/728614ce-f8c3-498c-8174-e4beea63b48d", "status_url": "https://queue.fal.run/fal-ai/kling-video/requests/728614ce-f8c3-498c-8174-e4beea63b48d/status", "cancel_url": "https://queue.fal.run/fal-ai/kling-video/requests/728614ce-f8c3-498c-8174-e4beea63b48d/cancel", "logs": null, "metrics": { "inference_time": 41.99311113357544 } } status_url 을 다시 http request로 던지고 응답문에 switch 걸고 WAIT 상태에서 loop 돌려주면 깔끔할것 같아요 while 문처럼 내부에 sleep 있는 것 처럼 loop 돌리는게 호율적이여 보입니다. 코드 리뷰 정도의 의견이라고 생각해주세요! 강의 잘보고 있습니다. 감사합니다. 예시> 추가적으로 위에 상태조회 방법과 함께 MERGE 처리도 코드 필요없이 이렇게 구성하면 별도 code node 없이 아래처럼 가능할것 같아요! 참고 부탁드립니다. 추가1 Http auth 부분도 Header Auth 로 별도로 지정해주고 아래처럼 호출하는게 보안상 안전해 보입니다! 추가2 falai 외에도 Creatomate render post 요청 이후 응답에서 ID 조합으로 상태 체크 WAIT 를 구성하는것도 괜찮을 것 같아요! API DOCS https://creatomate.com/docs/api/reference/get-the-status-of-a-render curl -X GET https://api.creatomate.com/v2/renders/RENDER_ID \ -H "Authorization: Bearer YOUR_API_KEY_HERE" Response: { "id": "a862048b-d0dc-4029-a4ef-e172e8ded827", "status": "succeeded", "url": "https://cdn.creatomate.com/renders/a862048b-d0dc-4029-a4ef-e172e8ded827.mp4", "snapshot_url": "https://cdn.creatomate.com/snapshots/a862048b-d0dc-4029-a4ef-e172e8ded827.jpg", "output_format": "mp4", "render_scale": 1, "width": 1280, "height": 720, "frame_rate": 60, "duration": 3, "file_size": 10804 }

  • python
  • youtube-api
  • n8n
  • ai-활용-(ax)
asdf9090 댓글 3 좋아요 1 조회수 167

인기 태그

인프런 TOP Writers

주간 인기글