TIL

TIL - 스프링

yolang 2025. 1. 13. 21:50
728x90

그로밋 티타임과 함께

📚 Today's TODO

✅ 스프링 핵심 원리 - 기본편 완강

📡 새로 알게 된 내용

🗃️ 풀스택 GPT

  • vector store: Vector stores are databases that can efficiently store and retrieve embeddings. Embedding을 저장하고 반환하는 데이터베이스
  • stuff document 에서 "STUFF"의 의미: It takes a list of documents, inserts them all into a prompt and passes that prompt to an LLM. document의 list를 가져와서 prompt에 넣고 llm에 pass 하는 것. stuff은 list of 를 뜻한다.

🗃️ 스프링 핵심 원리

  • @Autowired  타입(Type)으로 조회한다.
  • Callback:
  • 객체를 생성하는 것과 초기화 하는 것의 분리
  • 싱글톤 빈에 프로토타입 빈을 주입시켜 사용하는 경우의 문제생김 ➡️ 프로토타입 빈이 싱글톤 빈과 같은 생명주기를 갖게 되어버림.
  • 웹 스코프의 종류
    • request: HTTP 요청 하나가 들어오고 나갈 때까지 유지되는 스코프
    • session: HTTP session과 동일한 생명주기를 가지는 스코프
    • application: ServletContext 와 동일한 생명주기를 가지는 스코프
    • websocket: 웹소켓과 동일한 생명주기를 가지는 스코프

🎛️ 오늘의 TroubleShooting

memory = ConversationBufferMemory(return_messages=True)
  • return_messages = True로 해놓으면 human 과 AI message를 반환해 준다. 
  • 나는 설정하지 않았다가 Chain 내에서의 타입이 맞지 않아 오류가 생겼고 True로 변경해줬더니 잘 되었다.
chain = {"context": map_chain, "question": RunnablePassthrough()} | RunnablePassthrough.assign(history = load_memory) | final_prompt | chat
  • chain에서 단순히 Dict를 넘겨주는 건지, 실제로 어떤 작업을 하는 건지 구분하는 것이 중요하다. 
  • 나는 값을 넘겨주는 순서에서 타입 오류가 생겨 순서를 바꿨더니 해결했다.

👻 오늘 하루 복기

아니 이런 멍청한 실수를... 어제 풀스택 챌린지 과제 다해놓고 커밋까지 했는데, 커밋했다는 안도감 때문인지 커밋 내역을 제출하지 않았다... 후.. 담에는 더블췍! 오늘부터 새로 코테 스터디를 시작하는 데 너무 졸림 이슈로 내일 일찍 일어나서 해결해보겠다. 스포하자면 벨만 포드 알고리즘이라는 데 나는 지금 한창 배웠던 백트래킹으로 풀려고 했다...ㅎㅎ

728x90