본문 바로가기

Spring9

스프링 RestTemplate - Connection pool 설정 방법 1. RestTemplate? spring 3.0 부터 지원 org.springframework.http.client 복잡한 HttpClient 사용을 한번 추상화한 객체 HttpClient는 HTTP를 사용하여 통신하는 범용 라이브러리이고, RestTemplate은 HttpClient 를 추상화해서 제공 RESTful 원칙을 지키며 단순 메소드 호출만으로 쉽게 HTTP 요청을 주고 받을 수 있도록 도와주는 HTTP 통신 템플릿 RestTemplate 은 기본적으로 connection pool 을 사용하지 않는다. RestTemplate은 호출할 때마다, 로컬에서 임시 TCP 소켓을 개방하여 사용한다. 이렇게 사용된 TCP 소켓은 TIME_WAIT 상태가 되는데, 요청량이 많아지면 TIME_WAIT 상태.. 2021. 10. 22.
Spring Data JPA - Native SQL Query 작성하기 SNS 클론코딩 중 사용자들간의 구독 관계를 설정하기 위해 Subscribe 엔티티를 구현했습니다. 그러나 구독하는 아이디와 구독받는 아이디를 갖고 일일이 Subscribe 객체를 만들어 레퍼지토리에 저장하는 것보단 JPA Native SQL Query를 사용해 쿼리문으로 바로 디비에 저장하는 방법이 간편할 것입니다. Native SQL Query ? JPA는 Native SQL을 통해 SQL을 직접 사용할 수 있는 기능을 제공합니다. - SQL을 개발자가 직접 정의할 수 있습니다. - Native SQL 사용 시 엔티티를 조회하고, JPA가 지원하는 영속성 컨텍스트의 기능을 그대로 사용 가능합니다. 우선 Subscribe 테이블의 구조입니다. 그리고 JpaRepository를 상속한 SubscribeR.. 2021. 8. 20.
Ajax 사용해 put 요청 / Validation Check / 영속화, 영속성 컨텍스트 Ajax를 사용한 put 요청 Ajax란? Ajax란 Asynchronous JavaScript and XML의 약자입니다. Ajax는 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법의 하나입니다. Ajax는 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있습니다. 즉 Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있습니다. 이때 서버와는 다음과 같은 다양한 형태의 데이터를 주고받을 수 있습니다. - JSON - XML - HTML - 텍스트 파일 등 html form 태그는 put 요청을 할 수 없습니다. 그래서 현재 회원 정보를 수정하기 위한 form태그에 제출 버튼 클릭 시 Javascript 함수를 실행.. 2021. 8. 19.
spring-security-taglibs 을 사용해 로그인 인증 확인, 세션 정보 활용하기 [스프링 시큐리티] 어플리케이션을 구현하다보면 jsp에서 분기처리를 해서 권한에 따라서 다른 상황이 발생합니다. 이런 상황일때 스프링 시큐리티를 사용하여 권한관리를 하고 있다면 간단하게 구현을 할 수 있습니다. ex) - 관리자 권한이 있다면 관리자 페이지 링크를 보여주는 로직 - 로그인에 성공해서 특정 권한을 획득한 사용자에게는 로그인 버튼 대신 로그아웃 버튼을 보여주는 로직 권한 정보는 세션에 저장돼 있기 때문에 가져다가 사용해도 무방하지만, Security 태그를 사용하면 좀 더 가시성 좋게 코드를 구성할 수 있습니다. 1. pom.xml에 dependency 추가 org.springframework.security spring-security-taglibs 2. JSP 파일에 태그 라이브러리 추가 현재 프로젝트에서는.. 2021. 8. 18.