AI 서빙을 하면서 겪은 내용들~
·
개발/AI
일전에 작성했던 AI 서빙을 구현하면서 겪었던 부분을 실제 코드 기반에서 그리고 유의하면 좋은 부분들에 대해 공유하려고 합니다. 항상 말씀드리지만 정답을 얘기하는것이 아닌 '이렇게도 활용할 수 있겠구나'라는 인사이트로 이어지길 바랍니다.이글을 먼저 읽고 오시면 좀 더 이해해 도움이 되실껍니다. 개발자(BackEnd)에게 AI란..백엔드 개발자로서 제가 AI를 활용한 경험 중 대표적인 두 가지는 AI 서빙과 AI 기반 코딩입니다.이번 글에서는 첫 번째 주제인 AI 서빙에 대한 경험과 생각을 공유하려 합니다.매번 글에서 말씀드crazy-code.tistory.com 1.ChatGPT API 이용첫 AI 서빙을 위해 시도 했던건 이미 잘 알려진 ChatGPT API 를 이용한 처리 였습니다. 생각보다 잘 ..
ApplicationEventPublisher의 @Async 사용 시 주의점
·
개발/SpringBoot
매번 글의 서두에 글을 쓰지만 이 글이 Spring Boot ApplicationEventPublisher 에 모든 정보를 담고 있지는 않습니다. 제가 실제 개발 경험을 바탕으로 주의해야할 점에 대해서 작성하였으니 이러한 문제점이 발생할 수 도 있구나 하는정도의정보를 공유하는 글로 읽어주시면 좋을것 같습니다.앞의 글에서 소개한 바와 같이 Spring Boot에서 ApplicationEventPublisher를 @Async와 함께 사용하는 것은 비즈니스 로직을 깔끔하게 분리하고 애플리케이션 성능을 최적화하는데 좋은 방법입니다. 하지만 비동기 이벤트 처리의 특성상 간과하기 쉬운 몇 가지 주의사항이 존재하며, 잘못 사용하면 예상치 못한 문제에 직면할 수 있습니다. 지난 글에 이어서 이번 글에서는 실제 프로젝트..
SpringBoot의 ApplicationEventPublisher 를 활용한 비즈니스 분리
·
개발/SpringBoot
항상 서두에 글을 쓰지만 이 글은 Spring Boot ApplicationEventPublisher 에 대한 공식적인 정의를 다루기보다는, 제가 실제 개발 경험을 바탕으로 ApplicationEventPublisher을 어떻게 활용하고 있는지 '이런 방식으로도 사용할 수 있구나!' 하고 생각의 확장을 공유하는 글로 가볍게 읽어주시면 좋을 것 같습니다.비지니스 로직 분리란?AOP와 유사하게 비즈니스 로직을 분리할 수 있는 Spring의 기능 중 하나로 ApplicationEventPublisher가 자주 활용됩니다.실제 사례를 통해 비지니스 로직 분리에 대한 Refactoring을 확인해 보겠습니다.회원가입 처리 로직과 memberId를 기반으로 메일을 보내는 모듈이 존재하고 있는 상태에서 만약 회원 ..
개발자(BackEnd)에게 AI란..(AI With Coding) 2탄
·
개발/AI
이전 글에 이어 이번에는 AI를 활용하여 실제 개발(코딩)을 진행할 때 느꼈던 점과 개인적인 생각을 공유하려 합니다. 매번 말씀드리지만, 이 글은 단순한 정답 제시보다는 “이런 시각과 방향도 있구나” 정도로 참고해주시면 감사하겠습니다.1. "코드 제너레이터"로써의 AI최근 들어 AI의 도움을 가장 많이 체감하는 순간은 바로 익숙하지 않은 언어나 프레임워크를 다뤄야 할 때입니다. 저는 Java가 주력 스킬셋인 백엔드 개발자인데 최근 회사에서 라즈베리파이 기반의 디지털 사이니지 프로젝트를 맡게 되면서 Python으로 서버를 구현해야 했습니다. 제한된 하드웨어 자원을 고려해 Python을 채택했고, 다음과 같은 기능이 필요했습니다. - 라즈베리파이 내 이미지 폴더 목록을 웹에 표시 - 웹에서 이미지를 선..
개발자(BackEnd)에게 AI란..
·
개발/AI
백엔드 개발자로서 제가 AI를 활용한 경험 중 대표적인 두 가지는 AI 서빙과 AI 기반 코딩입니다.이번 글에서는 첫 번째 주제인 AI 서빙에 대한 경험과 생각을 공유하려 합니다.매번 글에서 말씀드리지만, '이런 시각과 이런 방향도 있구나' 정도로 참고해 주시면 좋을 것 같습니다.백엔드 시스템과 데이터 서빙의 기본백엔드 시스템은 일반적으로 특정 프로토콜(HTTP, gRPC 등)을 통해 들어오는 요청을 처리하고, 데이터를 가공하여 응답하는 역할을 수행합니다. 이를 위해 가장 많이 사용되는 도구는 관계형 데이터베이스(RDBMS)입니다.RDBMS는 정형화된 데이터를 테이블 형태로 저장하고, SQL을 통해 데이터를 효율적으로조회, 생성, 수정, 삭제(CRUD)하는 데 최적화되어 있습니다.전통적으로 백엔드 개발의..
SpringBoot AOP 의 아이러니
·
개발/SpringBoot
항상 서두에 글을 쓰지만 이글은 Spring AOP 를 정의하는 글이 아닌그 동안의 경험을 바탕으로 Spring AOP를 이해하기 위해 실제 구동원리를 바탕으로 이렇게도 생각하는구나 또는 이렇게 이해를 하는구나라고 생각을 확장하는 의미로 봐주시면 좋을 것 같습니다.1. AOP의 본질: 횡단 관심사의 분리와 프록시 패턴- Aspect Oriented Programming 으로 사전적 정의를 찾아보면 "횡단 관심사(cross-cutting concern)의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임" 관점형 프로그래밍이라고 설명을 하며 대표적으로 설명되는 그림이 프로그램 로직의 가로 flow 에 세로로 뭔가를 수행하는 이미지를 많이 참고하는데 관점형으로 실제 비지니스..
Springboot Custom Annotation
·
개발/SpringBoot
항상 서두에 글을 쓰지만 이 글은 Spring Boot Custom Annotation에 대한 공식적인 정의를 다루기보다는,제가 실제 개발 경험을 바탕으로 Custom Annotation을 어떻게 활용하고 있는지 그 활용법과 생각의 확장을 공유하는 글입니다.'이런 방식으로도 사용할 수 있구나!' 하고 가볍게 읽어주시면 좋을 것 같습니다.1. Custom Annotation이란? 그리고 왜 사용할까요?Spring에서 공식적으로 제공하는 Annotation 이외에 개발자가 특정 목적을 위해 직접 정의하여 사용하는 Annotation을 말하여 아래와 같이 작성해서 사용할 수 있습니다.@Description("Service Method 관리 Custom Annotation")@Retention(Retention..
이게 정말 맞는 기술 스택인가?
·
개발자
이 글이 기술 스택 선정의 정답을 제시하는 것은 아니지만 그 동안의 경험을 바탕으로 기술 스택을 선택할 때이런부분도 고민하는구나 하고 생각을 확장하는 의미로 봐주시면 좋을 것 같습니다.개발자로서 새로운 프로젝트를 시작하거나 기존 시스템을 개선할 때, 어떤 기술 스택을 선택해야 할지 고민에 빠지게 되는데 이는 수많은 기술 스택 앞에서 '정말 이 선택이 최선일까?' 라는 의문 때문일텐데저는 아래의 내용처럼 기술 스택 선택 기준을 통해 해당의문을 조금이라도 해소하는데 그 내용을 공유하려고 합니다.1. 기술 스택: 왜 나오게 된거야?최근 기술 스택 논의에서 자주 등장하는 RabbitMQ와 Kafka를 예시로 들어보겠습니다.분산 환경에서 이벤트 버스 역할을 위해 기술 스택을 선정해야 하는 상황에서,Rabbit..