Keep It Simple, Stupid39 [SpringBoot] 스프링부트에서 캐싱하기 (Cache in Springboot) Cache 메인 화면에 뿌려지는 공지사항과 같이 데이터 변경이 잦지 않고 반복적으로 같은 데이터를 조회할 경우에 매번 DB에 접근해서 가져오는 것은 효율적이지 못하다. 때문에 이러한 데이터들을 캐싱 작업을 함으로써 매번 DB에 접근하지 않고 빠른 속도로 데이터를 뿌려줄 수 있다. Caching annotation @Cacheable : 캐시 저장 @Cacheput : 캐시 갱신 @CacheEvict : 캐시 삭제 기본적으로 캐싱 어노테이션은 Spring AOP를 통해 처리된다. 주의사항 pulbic method에만 사용가능 같은 객체 내의 method끼리 호출 시에는 @Cacheable이 설정되어있어도 캐싱되지 않음 스프링 부트에서 캐시 사용하기 캐시 의존성 추가 org.springframework.bo.. 2022. 2. 5. [Spring] Filter, Interceptor 필터와 인터셉터는 컨트롤러가 호출되기 전 요청과 응답을 가로채서 공통 로직을 수행한다. 순서 Filter → Interceptor → AOP → Interceptor → Filter Filter 스프링 컨텍스트 외부(DispatcherServlet 앞 단)에서 request와 response의 해당하는 작업을 가로채어 공통 로직을 수행 웹 어플리케이션에서 전역적으로 처리해야 하는 로직을 구현 HTTP 요청과 응답을 변경할 수 있는 재사용이 가능한 코드 web.xml 또는 어노테이션으로 필터를 설정/매핑할 수 있다. method init(FilterConfig filterConfig) : 필터가 생성될 때 초기화 시 사용 doFilter(ServletRequest request, SevletResponse.. 2022. 2. 5. [Spring] AOP(Aspected-Oriented Programming) AOP(Aspected-Oriented Programming) 스프링과 별개로 방법론이다. OOP는 사용자 관점에서의 주 업무 로직을 위주로 구현하는 것. 반면 AOP는 주 업무 로직을 구현함에 있어서 개발자나 운영자 및 관리자가 필요에 따라서 코드를 끼워 넣게 되는 부가적인 기능(ex. 로그 처리, 트렌젝션 등...)을 모듈화 하는 것. 즉, 사용자 관점, 개발자 관점, 운영자 관점, 등등..여러 관점들을 고려해서 로직을 분리하고 모듈화 하는 방법론이기 때문에 Aspected 관점 지향적 프로그램이 이라고 한다. Concern - Primary(Core) Concern & Cross-cutting concern primary(Core) Concern : 핵심 로직 Cross-cutting Concern.. 2022. 2. 5. Task 'bootRun' not found in root project 에러 ❓ERROR 터미널에서 ./gradlew bootrun 명령어로 스프링부트 실행 시 Task 'bootRun' not found in root project Task 'bootRun' not found in root project 다음과 같은 에러가 발생. 💡해결방안 아래의 명령어 순서대로 실행한다. gradlew clean gradlew build 하지만 gradlew build 명령어 실행 시 아래와 같은 에러가 출력되었음. 그래들 버전 5 이상으로 높여야 된다는 거 같아서 그래들 버전을 높여주었다. [gradle-wrapper.properties] 에서 버전 변경 그래들 버전이 기존엔 4.*대 였던 것을 6점대로 올려주었다. 빌드 성공! 2022. 1. 30. VsCode에서 스프링부트대시보드 (spring boot dashboard) 활성화 안되는 현상 해결하기 ❓ERROR 스프링 부트 애플리케이션을 실행할 때 사용하는 spring boot dashboard 가 활성화가 안 되는 현상. 저 안에 아무것도 안나타나지 않는다. 💡해결방안 스프링부트 대시보드가 활성화되지 않는 이유는 다양한 것 같다. 이번 같은 경우는 롬복 설치가 안되는 것을 해결한답시고 setting.json 파일을 잘못 건드려 버려서 활성화가 안되는 현상이 나타났다. "java.jdt.ls.vmargs" 설정에서 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m 위의 내용이 빠져있었다. 이대로 원복 하고 나니 스프링 부트 대시보드 활.. 2022. 1. 28. [모던자바인액션] 컬렉션과 스트림의 차이점(Stream vs Collection) 스트림과 컬렉션 자바의 기존 컬렉션과 새로운 스트림은 순차적으로 값에 접근한다. DVD와 인터넷 스트리밍을 예로 비교해보자. DVD는 이미 영화가 저장되어서 판매된다. 이는 컬렉션에 비유할 수 있다. 반면 인터넷 스트리밍은 사용자가 시청하는 부분의 몇 프레임을 미리 내려받는다. 때문에 대부분의 값을 처리하지 않은 상태에서 미리 내려받은 프레임부터 재생이 가능하다. 이를 스트림으로 비유할 수 있다. 컬렉션 = DVD 자료구조가 포함하는 모든 값을 메모리에 저장한다. 컬렉션의 모든 요소는 컬렉션에 추가하기 전에 계산되어야 한다. 생산자 중심 → 팔기도 전에 창고를 가득 채움. 만약 소수를 저장하는 컬렉션을 만들 시에, 끝도 없이 모든 소수를 포함하려 할 것이므로 무한루프를 돌게 된다. 영화의 모든 프레임들이.. 2022. 1. 28. 이전 1 2 3 4 5 6 7 다음 반응형