bwbw-kim

Stream 사용시 주의 해야 할 점 (외부에 있는 변수 사용해도 될까?)

Stream 으로 외부에 있는 변수 사용해도될까? Stream은 내부가 lambda함수로 구성이 되어있다. 따라서 이때 외부의 stack 에 위치한 변수들은 캡처되어 람다식 내부에 추가가 된다. stream안에서 외부에 있는 변수를 수정하는것은 불가능하다! 따라서 요런 코드는 불가능하다 int a = 5; numbers.forEach(num -&g...

Beforeunload, visibilitychange 사용해서 사용자가 웹페이지를 떠날때 이벤트 잡기

사용자가 마지막까지 이 페이지에 얼마나 머물렀는지 알고 싶다면? 사용자가 어떤 페이지에서 떠날 때를 알고 싶을때 사용 할 수 있는것이 beforeunload 이벤트이다! 요게 나는 단순하게 뒤로가기나 다른 페이지를 눌렀을때만 발생하는줄 알았는데 이거 뿐만 아니라 브라우저를 종료했을때도 어김없이 요 이벤트가 호출이 된다! 코드를 살펴보자 이렇게...

Spring 으로 이미지 브라우저에 캐시 저장하도록 알려주기

이미지를 브라우저 캐시에 저장 했을때 장점 spring 에서는 resource 아래에 있는 자원(image, css, js) 의 경우에는 기본적으로 브라우저에서 캐싱을 하도록 지원을 한다. 하지만 다른 곳에 있는 이미지는! 따로 우리가 처리를 해줘야 브라우저에서 이를 알고 캐시에 넣는다! 물론 이미지 한장 가져오는것이 엄청 큰 부하는 아니지만 이미...

Spring JPA 사용하는 Service에서 Transactional 사용하기 (간단한 코드)

Transactional 사실 사내 SW Q&A 플랫폼을 개발하면서 중간에 에러가 나는 상황이 발생해서 디비에 절반의 쿼리만 적용이 되어도 문제가 없는 상황이 많아서였을까 transaction에 대한 고민을 많이 해보지 못했던거 같다. 하지만 점점 사람이 많은 시스템을 운영하거나 돈이 관련된 서비스를 운영하게 되면 이건 정말 무조건! 필요하...

Java Thread 로 오래 걸리는 Controller 작업 금방 끝내버리기

Post 요청이 너무 늦게 끝난다 SW Q&A 플랫폼에서 글을 올릴때 submit이 되고 post request 의 모든 동작이 끝나고 방금 올린 글의 url로 이동하는 동작이 있다. 그런데 그 동작내부에 조금씩 조금씩 로직이 추가되다보니 시간이 꽤 걸리게 되었다. 대략적으로 시간이 오래걸리는 작업의 플로우는 아래와 같았다. flowch...

spring 에서 한 ip로 부터 들어오는 traffic 제한해보기

사용자의 traffic을 제한 해보자 최근에 우리 플랫폼에서 이벤트를 개최했다. 이벤트 공지가 나가자 마자 사람들이 많이 몰려왔고 어느 날 저녁에는 매크로를 통해서 이벤트를 참가하는 사람도 있었다… 매크로를 막을 방법이 필요하던 와중 생각난 것이 traffic을 제한 하는 것이었다. 사이트 곳곳에 숨어있는 이미지를 찾은 것인데 사람들이 메인 페이...

© 병욱. Some rights reserved.