
채팅 솔루션을 개발하며 ChatGPT처럼 한글자씩 나오는 비밀이 무엇일까 찾아보았고 그 내막에는 SSE 기술을 사용한다는 사실을 알게되었다. 따라서 SSE에 대해 공부하고 가능하다면 실제 구현까지 진행해 보도록 할 예정이다. SSE(Server-Sent Events) 방식이란? SSE는 서버에서 클라이언트에게 메세지를 비동기적으로 전송할 때 사용하는 기술이다. 서버에서 클라이언트에게 전송해야하는 상황은 알림이나 채팅창이라든지 실시간으로 서버의 변경을 클라이언트에게 전달해야할 때 유용하다. 서버의 정책을 클라이언트에게 전달해야할때 사용해도 될 것 같다. 폴링(Polling)과 같이 클라이언트가 지속적으로 확인하는 방식이 있지만 좀더 실시간으로 반영하고 빈번하게 발생될 수 있는 케이스라면 SSE를 고려해볼 ..

싱글톤 (Singleton) 패턴이란? 생성자를 통해 클래스가 여러번 호출이 되어도 하나의 인스턴스를 계속 재활용 하는 방식이다. 싱글톤 사용 이유와 언제 사용하는가? 프로그램 전반에서 하나의 인스턴스로만 사용하는 경우에 사용한다. 예를 들어 DB 커낵션 풀이나 로그 설정 등이 있을 수 있다. 싱글톤 패턴 싱글톤은 여러가지 방법으로 접근할 수 있다. 모든 접근 방법은 다음과 같은 공통 사항을 따른다 - 다른 클래스에서 생성자를 직접 호출하지 못하도록 private constructor를 사용한다. - private static 의 변수를 사용하여 생성된 인스턴스를 전역에서 사용하도록 한다. - public static을 사용해서 제어된 방식으로 인스턴스를 얻을 수 있도록 한다. 1. Eager initi..
특정 URL은 정해진 IP만 접근이 가능하도록 제약을 걸기 위해 AOP를 활용해 보았다. 환경 Srping Boot 2.5.5 anotation @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface IpFilter { } 어노테이션으로 메소드에 IP 제약을 걸기 위해 IpFilter 파일을 만들었다. @Target(ElementType.METHOD) : @Target은 어노테이션을 적용할 타입을 지정하는 것이다. 여기서 ElementType.METHOD는 클래스의 메소드에만 해당 어노테이션을 붙일 수 있다고 정의 하는 것이다. @Retention(RetentionPolicy.RUNTIME) : 프로그램이 실행 중..
예외 처리를 위한 방법 중 @ControllerAdvice를 사용 하여 존재 하지 않은 URL을 요청시 NoHandlerFoundException에 처리 하는 방법이 어려워 글로 남겨 본다. 우선 컨트롤러에 없는 URL로 요청을 했기 때문에 컨트롤러에서 사용되는 Exception 처리가 되지 않는다. dispatcher servlet 으로 전달된 요청은 ResourceHttpRequestHandler로 매핑이 되고 /error를 호출하는 것 같다. 커스텀 error 컨트롤러를 만들어서 처리를해주면 되지만 다른 에러와 동일하게 처리하고자 @ControllerAdvice에서 하는 방법을 찾아보았다. 환경 Srping Boot 2.5.5 application.yml 설정 thymeleaf: prefix: cl..
- Total
- Today
- Yesterday
- Python
- 그리디
- linux
- Ai
- 코딩테스트
- lightsail
- 파이썬
- java
- 정보보안
- 자료구조
- llm
- 딥러닝
- 프로그래머스
- 우선순위큐
- 정보보안기사
- 카카오페이면접후기
- 카카오페이
- FastAPI
- 리눅스
- synflooding
- 백준
- t검정
- t-test
- 보안기사
- 보안
- 다이나믹프로그래밍
- LangChain
- 분산시스템
- 시간초과
- springboot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |