전체 글

SSE를 선택한 이유(결론!) 알림은 단방향 통신만을 필요로 하는데 굳이 TCP연결을 유지하며 양방향 통신하는 Websocket을 사용해야 할 이유가 없기 때문에 SSE를 택했습니다. 실시간 데이터 전송 기술 Polling HTTP연결의 특성인 stateless와 connectionless탓에 클라이언트는 서버의 실시간 변동 사항을 알 방법이 없습니다. 이를 극복하기 위한 Polling방식은 일정 주기를 가지고 HTTP요청을 날려서 서버가 클라이언트로 보낼 메시지가 있는지 확인하는 방식입니다. Long polling 위 polling방법은 일정 주기마다 요청을 보내야하기 때문에 HTTP 오버헤드가 증가하는 문제가 발생합니다. 또한, 완전한 실시간을 지원하지 않는다는 문제도 존재합니다. 이를 보안하기 위한..
개요 java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null" Spring Security를 사용한다면 PasswordEncoder를 사용해 비밀번호를 암호화하여 저장해야합니다. 문제는 서비스 운영 시 모든 API를 막아놨을 때 어플리케이션 단을 거치지 않고 저장을 하면 따로 암호화 할 방법이 없다는 점입니다. 암호화 알고리즘 선택에 따라 다르겠지만 아래와 같이 사용했다면 기본 암호화 기법은 Bcrypt입니다. @Bean public PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEnco..
개요 - 프로젝트를 진행하며 각 게시물 별로 조회수를 관리하기로 결정했습니다. - 문제점은 같은 사용자에 의해 조회수가 중복으로 증가하는 상황이었습니다. - 여러 검증 방식을 고민하다가 정확한 측정에 중점을 두고 IP를 이용하기로 결정했습니다. 검증 방식 세션 검증 장점 서버에서 관리하고 값을 직접 세션 저장소에 저장하면서 검증을 할 수 있으므로 다루기 편하고 보안성이 높습니다. 사용자의 세션 정보를 바탕으로 중복 조회를 정확하게 파악할 수 있습니다. 단점 서버에 데이터를 저장하므로 서버의 리소스를 사용하기 때문에 세션 양이 많아진다면 서버에 부하가 커집니다. -> 비용, 성능과 직결될 수 있는 문제가 발생할 수 있습니다. 세션은 휘발성이라 만료되거나 사용자가 다른 컴퓨터로 사용하면 중복 체크하기가 까다..
Seung__Yong
기록