728x90
트래픽 제한을 고려하게 된 이유트래픽 제한에 대한 고민은 gpt-3.5-turbo 모델을 Fine-Tuning하여 사용하는 졸업작품 코리를 개발하면서 시작되었다.코리는 초기 유저들을 모으기 위해 한동안은 유료인 GPT API 사용 비용을 운영측에서 부담하는 구조로 운영하게 되었고, 아직은 BM(Business Model)이 딱히 존재하지 않았기 때문에 당장은 손해로 지어질 수 밖에 없는 구조였다.결론적으로 사용자들의 GPT 모델 사용 비용을 운영 측에서 부담하게 되었으니, 유저들의 요청 횟수에 제한을 두어야한다는 생각이 들게 되었다. Java/SpringBoot 환경에서 트래픽 제한 구현하기 토큰 형태의 트래픽 제한 라이브러리 Bucket4j회원들의 트래픽을 제한할 수 있는 방법을 찾던 와중에 Buc..
리버스 프록시를 도입하게된 계기 💭졸업작품인 코리(Co:RE)의 서버를 개발하면서 실제로 배포를 위한 환경을 만들려고 하다보니,보안적인 요소를 생각하지 않을 수 없었다. 1차적으로 생각이 난 부분은 당시 학습하고 있었던 프록시 서버였다.프록시 서버에 대해 모르는 사람은 해당 포스팅을 참고해주세요! 리버스 프록시 서버를 적용하면 보안상 이점과 여러 장점들을 얻을 수 있는데,그 중 내가 생각한 장점은 아래와 같았다. ⚙️ 보안개발자 도구에 WAS의 주소가 그대로 노출되어 다양한 공격의 가능성이 발생한다.여기에 리버스 프록시를 적용하게 되면 서버를 직접 노출시키지 않고 클라이언트와의 통신을 중계하므로 서버의 실제 위치를 숨기고 보안을 강화할 수 있다.프록시 서버로 인해 본래 서버의 IP 주소를 노출시키지 ..
프록시 서버란? 🤔 `Proxy`라는 단어는 대리(행위)나 대리권, 대리 투표, 대리인 등을 뜻하며 말 그대로 서버 요청에 대한 대리자 역할을 수행하는 것을프록시 서버 라고 한다.프록시 서버(Proxy Server) 는 클라이언트와 서버 사이에서 동작하는 중간 서버를 의미한다.클라이언트가 서버에 직접 요청을 보내는 대신 `프록시 서버`는 클라이언트 요청을 받아 서버로 전달하고, 서버에서 받은 응답을 클라이언트에게 다시 전달하는 중계자 역할을 한다.프록시 서버의 종류 ⚙️ 프록시 서버는 아래와 같이는 2가지 형태가 있다. 💡 포워드 프록시(Forward Proxy) `클라이언트`와 `인터넷` 사이에 있는 프록시 서버를 뜻한다.`포워드 프록시`는 클라이언트의 익명성을 보장한다.클라이언트의 요청을 가로채..
자바 스프링 기술로 개발을 해봤다면 @PostConstruct 과 Static block, Instance block 을 사용해본 경험이 있을 것이다.이는 객체 초기화를 위한 콜백(callback) 함수를 선언하기 위한 기술이다. 콜백(Callback) 함수란?콜백 함수는 다음과 같은 의미를 가진다.다른 함수 인자로서 사용되는 함수어떠한 이벤트에 의해 호출되는 함수이 글에서의 설명은 2번째 의미인 '어떠한 이벤트에 의해 호출되는 함수' 에 가깝다. 본인또한 이 3가지를 종종 다루긴 했지만,@PostConstruct 와 Static block 중 어떤 것을 사용할 지 고민하던 중이 두 가지의 초기화 시점 차이에 대해 정확히 인지하지 못한 채로 사용하고 있었다는 것을 깨닫게 되었다. 때문에 이를 공부하며..
우리는 스프링을 사용할 때, 생성자 주입을 통해 의존성을 주입하곤 한다. 그런데 의존성을 주입하는 경우, 2개의 의존성 중 하나를 주입해야하는 경우가 있을 것이다. public interface DiscountPolicy {}@Componentpublic class FixDiscountPolicy implements DiscountPolicy {}@Componentpublic class RateDiscountPolicy implements DiscountPolicy {} @Autowiredprivate DiscountPolicy discountPolicy 만약 위와 같이 FixDiscountPolicy와 RateDiscountPolicy가 스프링 빈으로 존재할 때,다음과 같이 @Autowired를 수..
이전 글을 통해 @Configuration 애노테이션을 통한 스프링 빈 등록에 대해 알아보았다. [Spring] @Configuration과 싱글톤 (with. CGLIB)@Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } @Bean ppgmjun.tistory.com 하지만 꼭 빈을 등록할 때, @Configurat..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.