728x90
📚 Today's TODO
✅ 풀스택 GPT deploy 에러 처리하고 과제 제출
✅ 어제 코테 문제 (계속 밀리는 중)
✅ 어제 잔디 인증
✅ 오늘 코테 문제 풀기
✅ 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술: 섹션 2
📡 새로 알게 된 내용
🗃️ 코테 문제
https://daily-programming-til.tistory.com/151
99클럽 코테 스터디 4일차 TIL + 투포인터
🔗 백준 1253 좋다 📌오늘의 학습 키워드투 포인터✨공부한 내용 본인의 언어로 정리하기투 포인터를 활용하면 N제곱이 걸릴수도 있는 문제를 N만에 풀 수 있다. 숫자 배열이 들어오면 일단
daily-programming-til.tistory.com
🗃️ 스프링 MVC 1편
- 웹 서버(Web Server) vs. 웹 어플리케이션 서버(WAS)
- 웹서버는 정적 웹페이지를 관리하고 웹 어플리케이션은 웹서버의 기능을 포함하면서 동적으로 애플리케이션 로직까지 실행해 웹사이트를 로드 할 수 있다.
- WAS는 장애가 생길 가능성이 꽤 많으므로 Web server가 대답할 수 있는 건 최대한 대답하게 시키고, 나머지는 WAS가 하도록 하는 게 좋음!
- 서블렛(Servlet)
- 원래라면 TCP/IP 대기하고 소켓연결하고, HTTP 메세지 파싱하고 이런 작업들을 대신해주고 비즈니스 로직에만 집중할 수 있게 해주는 도구!
- 서블릿 객체는 싱글톤으로 관리됨 - 역시나 공유 변수 사용 주의, 서블릿 컨테이너 종료시 함께 종료
- 동시 요청, 멀티 쓰레드
- 요청이 들어오면 쓰레드를 새로 만들어 줌
- 단점: 쓰레드는 context switching 비용이 발생함, 쓰레드 생성 비용이 비쌈, 쓰레드 생성에 제한이 없음(서버가 죽을 수도)
- Thread Pool: 여기에 쓰레드를 여러 개 만들어 놓고 쓰고 반납하고 하는 형태
- 미리 만들어 놓으니까 생성 비용을 아낄 수 있고, 응답 시간이 빠르다.
- 최대치가 정해져 있으니까 너무 많은 요청이 와도 안전하게 처리 가능.
- 쓰레드 적정 갯수는 어떻게 찾을까??
- 성능 테스트로 해야함...! 사실상 정답은 없고 테스트를 통해 각각 알맞게 해야하는 듯
- 그래서 멀티 쓰레드 어떻게 관리할것인가!!
- WAS가 알아서 다 해결해줌 (얼마나 편리한가)
- 싱글톤이라는 것에 대해서만 주의하기!
- 요청이 들어오면 쓰레드를 새로 만들어 줌
- CSR, SSR
- SSR(Server side rendering): 서버에서 이미 html을 다 만들어서 전송
- JSP, Thymeleaf
- CSR(Client side rendering): 웹브라우저의 JS가 동적으로 html을 만들어 냄, 필요한 부분부분만 변경 가능
- React, Vue
- SSR(Server side rendering): 서버에서 이미 html을 다 만들어서 전송
- 스프링 부트는 빌드 결과(Jar)에 WAS서버를 포함해서 그냥 바로 빌드 배포 하면 됨
🎛️ 오늘의 TroubleShooting
Streamlit
- CacheKeyNotFoundError: Key not found in disk cache
- 이 에러가 계속 Streamlit 배포 할때 생겨서 여러가지 시도해 봤다. 결론적으로는 디렉토리를 만들어 주고 cache_data에 persist=True로 해주니까 해결되었다.
Path("./.cache/files").mkdir(parents=True, exist_ok=True)
...
@st.cache_data(show_spinner="Embedding file...", persist=True)
def embed_file(file):
...
- OPENAI_API_KEY which contains it, or pass openai_api_key as a named parameter.
- 이거는 과제를 하면서 사용자의 API_KEY를 사용할 수 있도록 하면서 생긴 문제였는데, LLM을 설정시에 openai_api_key=API_KEY 이렇게 설정해 줘서 다 해결한 줄 알았다.
- 하지만 embeddings = OpenAIEmbeddings(openai_api_key=API_KEY) 여기에도 필요하다고 로그에 떠서 추가해 줬다.
👻 오늘 하루 복기
어우 목요일 정도 되니까 집중력이 좀 떨어진다.. 그래도 보통 수요일부터 떨어지는 데 잘 버텼다!! 오늘부터 다시 스프링MVC 패턴을 학습했다. 정처기 준비 틈틈히 하면서 네트워크 지식까지!! 바쁘다 바빠
728x90
'TIL' 카테고리의 다른 글
TIL - 웹 기본 지식 (0) | 2025.01.18 |
---|---|
TIL - Servlet, Request, Response (0) | 2025.01.17 |
TIL - Steamlit (0) | 2025.01.15 |
TIL - 스프링 토이 프로젝트 (0) | 2025.01.14 |
TIL - 스프링 (0) | 2025.01.13 |