안녕하십니까 강사님! fastapi강의를 정말 유익하게 보고 있습니다. 정말 감사드립니다. 다름이 아니라 저는 현재 학생으로써 백엔드 개발을 빠르게 이해하고 싶어서 개발 속도가 빠른 fastapi를 선택하여 공부중입니다. fastapi의 기술 스택을 익히면 어느 방향성에서 강점을 보일까요? 물론 하고자 하는 목표를 정하고 그에 맞는 기술을 배우는 것이 훨씬 더 좋은 방향이라고 생각하나 수업을 듣던중에 그럼 이렇게 장점을 가진 fastapi기술은 어디에서 사용할까? 단순 백엔드 개발로써는 자바가 많이 보편화 되어있으니 국내에서는 자바가 훨씬 유리할 거 같은데 국내에서는 어떤 방식으로 이 프레임워크를 다룰까? 이런 부분들이 궁금해졌고 이런 부분들을 알아야 조금 더 fastapi의 강점을 생각하면서 공부에 도움이 될 거 같아서 질문드립니다. 강사님이 생각하시기에 fastapi는 어떤 분야에서 강점을 보이고 어떤 분야에서 이 프레임워크를 사용해 확장할 지 궁금합니다. 학생의 관점에서 보면 시야를 넓게 보는게 한계가 있어서 도움을 청합니다. 실례가 안된다면 뛰어난 경력을 가지신 강사님께 여쭙고 싶습니다! 만약에 바쁘시다면 키워드라도 주시면 제가 직접 자료 조사를 해서 알아가도록 하겠습니다. 다시 한번 좋은 강의를 제공해주심에 감사를 표합니다! 강의 관련 제 생각은 강의를 다 본 후에 강의평에 남기도록 하겠습니다!
Java의 구조와 기초 용어 9:49 용어 관련하여 생성된 객체는 몇 개이고, 변수는 무엇인가요? 라는 문제에서 생성된 객체는 new를 받는 것을 의미하는 것으로 ParentC parent, ChildC child 이렇게 2개 인데 변수도 parent, child라고 한다면 객체와 변수라는 용어는 같은 의미인가요?
다차원 배열과 문자열 배열 과정 챕터 19:24에서는 입력 구문에서 int arr[3][3]={1, 2, 3}, {4, 5, 6}, {7, 8, 9} 20:28에서는 입력 구문에서 const char *arr[2][2]={{Hello", "World"}, {"app", "dev"}}; 위 2개 입력 구문의 차이에서 첫번째는 왜 arr[3][3]이고, 두번째는 *arr[2][2]인지 모르겠습니다.
비전공자 신입 취준생입니다. 부트캠프 통해서 백엔드 과정을 수료 후 너무 부족해서 현재 인프런에서 자바하고 스프링공부를 다시하면서 알고리즘 공부도 준비를 해야할 것 같아서 강의를 듣고있습니다. 자바도 아직 많이 부족한데 파이썬으로 하다보니 더 헷갈리네요 제공해주신 파이썬 기초강의를 듣고 알고리즘 강의를 듣고있는데 기초강의와 다르게 파이참으로 할 땐 들여쓰기를 하더라고요 자바와 다른 방식으로 들여쓰기를 하다보니 아직은 어려운데 들여쓰기는 어떤식으로 익혀야할지 모르겠네요
🚨 필독) 질문하시기 전에 꼭 읽어주세요 (10초 소요) 제목을 구체적으로 작성해 주세요 ✅ 좋은 예 : 감정일기장 Home 구현중 xx 이슈가 발생합니다. ⛔ ️ 나쁜 예 : 이거 왜 안되나요?, 오류나요 도와주세요 등 비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요! 코드의 이슈는 전체 프로젝트를 "링크 형태"로 올려주셔야 원인을 파악할 수 있습니다. 깃허브, 구글드라이브 등의 수단을 통해 링크 형태로 전달해주세요 직접 실행해보며 원인을 파악해야 하기 때문에 텍스트 형태로 붙여넣는건 삼가해주세요 🥲 답변이 도움이 되셨다면 답글 or 해결완료 버튼을 클릭해주세요 비슷한 궁금함을 갖고 계신 분들께 도움이 될 수 있어요! 제 답변이 여러분께 도움이 되었는지 저도 알고 싶어요 🥲 강의 내용에 궁금한 점이 있다면 몇 챕터의 몇 분 몇 초인지 알려주시면 더 좋아요 더 빠른 답변이 가능합니다 실행하는데 문제가 되지는 않는데 혹시 해결할 수 있는 방법이 있을까요??
안녕하세요! 강의 잘 듣고 있습니다. (3.2) Zustand 기본 사용법 1 강의의 9분 21초경 에서 궁금한 점이 생겨 질문드립니다. 강의에서 get 메서드는 store(객체) 전체를 반환 한다고 설명하셨습니다. 그리고 set 메서드는 인자로 전달된 객체의 프로퍼티만을 갱신 한다고 하셨는데요. 그런데 아래 코드처럼 보면, set 내부에서는 따로 get() 을 호출하지 않아도 count 값을 바로 참조해 업데이트하고 있습니다. increase: () => { const count = get().count; // 여기서 store의 count 프로퍼티를 가져온다 set({ count: count + 1 }); // 그런데 여기서는 count를 직접 사용할 수 있다? } 제가 이해하기로는 store의 값을 변경하기 위해 프로퍼티를 참조할 때에도(여기서는 count: ) 먼저 get() 으로 현재 store의 참조를 얻은 뒤 수정해야 할 것 같은데, set({ count: count + 1 }) 처럼 직접 count를 갱신할 수 있는 이유 가 궁금합니다. 즉, set 은 내부적으로 get() 을 다시 호출해서 현재 store 상태를 알고 있는 건가요? 아니면 set 이 store 객체의 참조를 이미 가지고 있어서 가능한 건가요?
로컬에서는 분명히 문제 없이 DB에 접속이 되는데 빌드를 해서 apk파일을 만들어서 안드로이드 기기에 설치를 하면 network error가 나네요 app.json 파일에 "android": { "usesCleartextTraffic": true, 이렇게 설정을 했는데도 네트워크 오류가 나는데 이것 말고 더 수정해야하는 내용이 있을까요? 환경 설정은 https://inf.run/6wYbc 여기와 동일합니다.
[Live 챌린지] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
수업에서는 common component생성, storybook 작성을 한번에 하고 그 다음 수정하는것이 효율적이라고 하셨는데 일괄생성 후 수정작업하다 보니 ( 색상코드를 사용하지 않음, 색상코드를 적용오류에 대한 발견, html 구조 이상, story 파일 오류 등 ) 다시 하나씩 재생성하는 경우도 생기게 되네요. 그냥 하나씩 component 생성 후 story 생성하는것이 낫지 않을까 싶어 글 남깁니다.
출력값 str1==str2: true str1==str2: false 이부분 str2==str3: false 이게 맞죠? int형과 integer의 동일한 값은 ==나 equals 모두 true이지만 int와 int / integer와 integer끼리의 -128~127 외의 값은 ==로 비교 했을 때 false double은 == 비교 값은 모두 false new로 새로만든 생성자의 데이터 값은 값은 동일하여도 메모리 주소의 값이 달라서 ==와 equals(메서드 지정x)은 모두 false이며 같게 하려면 본 동영상 8분30초 부분 메서드와 같아야 equals가 true가 나오는 거죠? 처음 equals가 값만 같으면 ture라고 생각했는데, new생성자는 값이 같아도 메모리 값이 달라서 메서드가 없으면 equals도 결과 값이 false가 나오네요 처음 str="hello"가 같은 메모리 주소를 가르켜 equals메서드가 따로 없어도 ture가 나온다는 점을 잘 알아야 겠네요
33강에 27-30분대를 보면 SecurityConfig 클래스에서 .formLogin을 .oauth2Login으로 바꾸고, TodoController 에서 CustomUserDetails로 받았던 사용자 정보를 CustomOAuth2User 로 바꾼 것으로 보이는데,, 일반 로그인 시에 사용할 로직과 소셜 로그인 시에 사용할 로직을 둘 다 두지 않고, 소셜 로그인 하나만 사용하는 것으로 진행하려고 바꾸는건가요??
한 번에 끝내는 AI 에이전트 개발 올인원 (w. LangGraph, Google ADK, CrewAI)
안녕하세요. 좋은 강의 항상 감사드립니다. 한 가지 문의드리고 싶습니다. 섹션 6의 28강에서 RAG 실행 부분을 실습하던 중, 제 로컬 환경에서는 코드가 에러 없이 정상적으로 실행되었지만 .chroma/esl_topics 폴더가 생성되지 않는 현상이 발생했습니다. 코드 상으로는 os.makedirs(PERSIST_DIR, exist_ok=True) 구문이 있으므로 폴더가 자동으로 생성될 것으로 예상했는데, 실제로는 생성되지 않는 것 같습니다. 혹시 해당 폴더가 생성되는 정확한 경로를 알려주실 수 있을까요? 또는 Windows 환경에서는 위 코드로 폴더가 생성되지 않는 경우가 있는지도 궁금합니다. 확인 부탁드립니다. 감사합니다. import os from typing import Type, Optional from crewai.tools import BaseTool from pydantic import BaseModel, Field from env import OPENAI_API_KEY from langchain_community.vectorstores import Chroma from langchain_openai import OpenAIEmbeddings, ChatOpenAI from langchain_community.document_loaders import PyPDFLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.chains import RetrievalQA os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY PDF_FILENAME = os.path.join("knowledge", "29ESLConversationTopic.pdf") PERSIST_DIR = os.path.join(".chroma", "esl_topics") def qa(question): os.makedirs(PERSIST_DIR, exist_ok=True) embeddings = OpenAIEmbeddings() try: has_index = bool(os.listdir(PERSIST_DIR)) except FileNotFoundError: has_index = False if has_index: vectordb = Chroma(persist_directory=PERSIST_DIR, embedding_function=embeddings) else: loader = PyPDFLoader(PDF_FILENAME) docs = loader.load() splitter = RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=100) chunks = splitter.split_documents(docs) vectordb = Chroma.from_documents(chunks, embeddings, persist_directory=PERSIST_DIR) retriever = vectordb.as_retriever(search_kwargs={"k": 3}) llm = ChatOpenAI(model="gpt-4o-mini",temperature=0.3) return RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=retriever).run(question) class RAGToolInput(BaseModel): question: str = Field(description="질문") class RAGTool(BaseTool): name: str = "ESL_Chroma_RAG" description: str = "Retrieves from '29 ESL Conversation Topics' PDF via ChromaDB and answers questions." args_schema: Type[BaseModel] = RAGToolInput def _run(self, question: str): try: return qa(question) except Exception as e: return str(e) rag_tool = RAGTool()