728x90
📚 Today's TODO
✅ 풀스택 GPT 챌린지 오전에 끝내기
✅ 스프링 입문 오후에 끝내기
📡 새로 알게 된 내용
🗃️ 파이토치 트랜스포머를 활용한 자연어 처리와 컴퓨터 비전 심층학습
- few-shotting : 이전에 LLM Prompt를 작성할 때 example를 한 2~3개 넣어 주는 방식을 사용했었는데 이게 few-shotting이었다. 따라서 few-shot prompt template는 example들을 제공해 주고 그에 따라 새로운 질문에 예시를 기반으로 답변하라는 뜻이다.
- PipelinePromptTemplate이라는 것을 배웠는데 현시점에서는 deprecated 되었다고 한다. 이것은 prompt들을 서로 합쳐주는 역할을 했는데, 이렇게 하여 추상화하지 않고 직접 pipeline에서 추가하는 것이 더 유연하다고 판단한 것으로 생각된다.
- set_llm_cache를 통해서 prompt한 내용을 cache 할 수 있다. 이 방법을 쓰면 비용절감은 물론 답변 시간도 빨라진다. 어떤 DB를 쓸건 지는 본인이 선택하면 된다. (https://python.langchain.com/docs/integrations/llm_caching/)
- get_openai_callback: 이것을 사용하면 각 prompt의 사용 token 수와 가격을 받아 볼 수 있다.
🗃️ 스프링 입문 - 인프런
- JDBC (Java Database Connectivity): 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. (위키백과)
- OCP(Open Closed Principle): 개방 폐쇄 원칙은 확장에 대해서는 open이나 수정은 closed를 뜻한다. 예를 들어 DB를 변경할 때 그 연결하는 코드만 수정한 채로 기본 로직은 그대로 가져가는 것이다. - 다형성
- @Transactional: JDBC는 기본적으로 auto-commit을 한다고 한다. 근데 이게 좋지 않다고 한다. 강의에서는 테스트 케이스에 @Transactional를 사용하여 테스트 코드에서 실제 DB에 반영하지 않도록 했다. 따라서 AfterEach를 할 필요가 없다고 했다. 아마 더 다양하게 사용할 수 있는 annotation 같다.
- 참고사항으로 spring container 없이 수행할 수 있는 테스트로 만드는 것을 연습하는 게 좋다고 한다.
- 요즘은 JDBC를 직접 사용하지 않고, JDBC template을 사용하거나 JPA를 많이 사용하는 거 같다. JPA가 자바 진영의 ORM 표준이라고 한다.
- command + option + n : inline 으로 바꿔준다.
- PK 기반이 아닌 것들은 jpql를 작성해 줘야 함.
JPA, Hibernate, 그리고 Spring Data JPA의 차이점
개요 Spring 프레임워크는 어플리케이션을 개발할 때 필요한 수많은 강력하고 편리한 기능을 제공해준다. 하지만 많은 기술이 존재하는 만큼 Spring 프레임워크를 처음 사용하는 사람이 Spring 프레
suhwan.dev
JPA, Hibernate 개념들이 혼동되기 시작하면서 검색을 좀 했는데, 어떤 선생님의 블로그 글을 발견했다. JPA는 인터페이스고 Hibernate는 그것을 구현한 class 이군...!!
- 그리고 C에는 pointer가 있다면 java에는 AOP(Aspect-Oriented Programming)가 있다고 한다. 되게 이해하기 어렵다고 하는데 오늘은 그냥 간단하게만 이해하려고 한다. 강의에서는 성능 평가를 위해 사용했는데 핵심 비즈니스 로직과 성능평가, 로깅 같은 횡단 관심사로 구분할 수 있는데 AOP는 횡단 관심사를 분리하여 모듈화 하는 것을 더 효율적으로 하게 도와준다고 한다.
🎛️ 오늘의 TroubleShooting
- 환경변수 관련 문제가 있어 해결하고 글을 게시하였다.
👻 오늘 하루 복기
오늘은 스프링 입문을 다 끝내봤다. 배우면 배울 수록 정말 강사님 말씀대로 망망대해에 뗏목을 타고 있는 느낌이었다. 정말 뭐가 많고 어디서부터 얼마나 알아야 하는지 감이 안잡히지만 이런것을 해봤을 때 경험상으로는 힘을 좀 빼야 잘되는거 같다. 완벽하게 다 하려고 하기보다는 닥치는 것부터 먼저 흡수하고 넘길건 넘기기. 또 스프링이 진짜 튼튼한 백엔드를 만드는 데 도움이 많이 되겠다는 생각이 들었다. 테스트작성도 그렇고 AOP도 그렇고 검증 단계가 많았다. 귯!
728x90
'TIL' 카테고리의 다른 글
TIL - 스프링의 DIP (0) | 2025.01.09 |
---|---|
TIL-SOLID 원칙 (0) | 2025.01.08 |
TIL - 풀스택 챌린지 시작 (1) | 2025.01.06 |
TIL - 파이토치와 친해지기 (0) | 2025.01.05 |
TIL - Spring DI, Inversion of Control (0) | 2025.01.04 |