본문 바로가기

Lecture32

ChatGpt를 이용해 유튜브 요약하기 - 프롬프트 엔지니어링이란? 생성형 AI에게 최적의 답을 얻는 노하우 대방출! [안될과학X삼성SDS 2탄] ChatGpt로 유튜브 요약한 과정 요즘 정말 많이 하는 생각 중 하나는 ChatGpt를 어떻게 잘 사용할 수 있느냐에 대한 것이다. 유튜브에서 아래 영상을 보았는데 정말 유익했다. 평소 GPT를 사용할 때 내가 실제 사용하던 방식과 노하우가 겹치는 부분이 있어서 반가웠고 궁금했던 부분이나 깊이 있는 이론적인 내용에 유익한 팁까지 다루고 있어 좋았다. 무엇보다 무료 영상으로 보기에는 퀄리티가 정말 높다고 생각했다. https://www.youtube.com/watch?v=rMJErYfGLCU 간간히 메모를 하면서 보다가 그냥 GPT를 이용해서 요약본을 남겨두어야 겠다고 생각하게 되었다. 그래서 아래와 같이 GPT를 불렀다. 이와 같은 질문에 대해 받은 첫 번째 답변이다. 교육적 요약: 프롬프트 엔지니어링.. 2024. 1. 21.
대용량 트래픽을 대비한 Spring Webflux와 Reactive Redis를 이용한 접속자 대기열 시스템 목차 프로젝트 소개 소개 사용 기술 스택 API 프로젝트 구조 패키지 구조 데이터 흐름 주요 클래스 설명 소스 코드 1. 프로젝트 소개 소개 Spring Webflux와 Reactive Redis를 실습하기 위한 MVP 프로젝트이다. 어플리케이션은 접속자 대기열 시스템과 타깃 페이지 시스템으로 나뉜다. 코드 및 자료 출처는 패스트캠퍼스 시그니처 백엔드 패키지 course 7이다. 사용 기술 스택 Spring Webflux: 5.3.14 Reactive Redis: 2.6.1 Spring Boot: 3.0.9 Java: JDK 17 Gradle: 7.3 Thymeleaf: 3.0.14 JUnit: 5.8.2 Docker: 20.10.10 2. API Localhost:9010 /api/v1/queue PO.. 2023. 10. 22.
webflux 리액티브 프록그래밍에서 블록킹을 디버깅하는 도구 blockhound 간단 사용법 blockhound ? webflux 등의 리액티브 프로그래밍을 쓰는 이유가 non-blocking 환경에서 비동기적 처리를 하기 위함인데 blocking이 발생하면 하나의 발생으로도 전체 성능에 영향을 끼칠 수 있다. 비동기적 프로그래밍의 어려운 점은 테스트하기가 동기에 비해 어렵다는 점이다. blockhound는 운영 환경에서 사용하긴 힘들지만 개발 환경에서 blocking 을 검출할 수 있게 도와주는 도구다. 간단한 의존성 추가와 코드 몇 줄만으롣 검출이 가능하기 때문에 쉽게 사용할 수 있다. 의존성 plugins { id 'java' id 'org.springframework.boot' version '3.0.8' id 'io.spring.depe.. 2023. 10. 21.
Jmeter를 이용한 Spring MVC Vs. Webflux 성능 비교 간단한 예제 코드 MVC @SpringBootApplication @RestController @RequiredArgsConstructor public class MvcApplication implements ApplicationListener { private final RedisTemplate redisTemplate; private final UserRepository userRepository; public static void main(String[] args) { SpringApplication.run(MvcApplication.class, args); } @GetMapping("/health") public Map heatlh() { return Map.of("health", "ok"); }.. 2023. 10. 21.
Spring webflux - R2DBC, Redis R2DBC DB 동기처리의 문제 비동기 어플리케이션에서는 처리 절차 중간에 동기가 포함되면 병목 -> 성능 저하 2번 부분까지 보았을 3번 db 커넥션 부분에서 jdbc 혹은 orm을 사용하면, 1번 2번이 비동기로 처리하더라도 3번을 동기로 처리하면 3번 응답이 올 때까지 해당 스레드는 4번까지 처리를 못하고 기다리게 된다. 즉, 처리 흐름에서 하나라도 동기가 있게 되면 전체적인 성능에 문제 이러한 문제를 해결하기 위해 나온 것이 R2DBC R2DBC 데이터베이스 async 처리 reactice stream nonblocking 라이브러리지만 일종의 오픈 스택 -> 벤더 사에서 제공하는 것이 -> 일반적 SPI(Service Provider Interface) Spring Webflux 생태계와 어울림.. 2023. 10. 21.