Spring Data JPA의 메소드 이름 기반 쿼리(Method Name Query) 생성 및 호출을 할 수 있다.이는 Repository 인터페이스를 구현하는 실제 객체가 존재하지 않고도 Spring이 런타임에 동적으로 JpaRepository를 기반으로 구현체를 생성하여 실행한다. 프록시 객체가 데이터베이스에 쿼리를 실행하고 결과를 반환한다. 기본적인 CRUD 기능만 필요한 경우 CrudRepository, 페이징과 정렬이 필요한 경우 JpaRepository 사용한다.public interface UserRepository extends JpaRepository { User findByUsername(String username);} ✔ 프록시(Proxy)프록시는 대리자(중간 대리 객체) 역할을 ..
REST는 Representational State Transfer의 약자로 컴퓨터 간의 데이터를 주고받는 방법 중 하나로 특히 웹 애플리케이션에서 많이 사용된다. 쉽게 말하면 인터넷을 통해 서로 대화하는 규칙을 정한 약속이다. @ResponseBody와 @RestController는 Spring Framework에서 REST API를 개발할 때 사용되는 어노테이션이다.
요청 URL이 다음과 같은 경우 스프링 MVC의 데이터 바인딩 기능으로 쉽게 매핑할 수 있다. www.waggle.com/script/detail?code=123&name=what /script/detail 경로는 @PathVariable로 매핑되고, ? 뒤 쿼리 파라미터는 객체에 매핑된다.스프링은 컨트롤러 메소드의 매개변수 전달되는 객체(ParamVo)를 자동으로 생성하고, HTTP 요청에서 전달된 쿼리 파라미터(code, name)을 객체의 필드에 바인딩한다. 이 과정은 @ModelAttribute와 유사하다.이때 요청의 파라미터 이름이 ParamVo 클래스의 필드 이름과 정확히 일치해야한다.@GetMapping("/script/{pathCode}")public void scriptLoad(@Path..
✔ XMLHttpRequest (XHR)서버와 상호작용할 때 사용하는 것으로 현페이지의 새로고침 없이도 URL에서 데이털르 가져올 수 있다. ✔ ajax (Asynchronous javascript and xml)동적으로 서버에서 데이터를 주고받는 기술이다. ✔ JSON (Javascript object notation)오브젝트를 보고 만든 데이터포맷으로 프로그램 언어와 플랫폼 상관없이 서버와 가볍게 전송할 수 있다. 1. XMLHttpRequest 객체는 XMLHttpRequest생성자 함수를 호출하여 생성한다. XMLHttpRequest 객체는 브라우저에서 제공하는 Web API로 브라우저 환경에서만 정상적으로 실행된다. const xhr = new XMLHttpRequest(); 2. op..
반복문을 처리하기 위해 users라는 list를 view단으로 던져줍니다.private void addUsers(Model model) { List list = new ArrayList(); list.add(new User("userA", 10)); list.add(new User("userB", 20)); list.add(new User("userC", 30)); model.addAttribute("users", list);} 타임리프 반복을 통해 users 라는 컬렉션에서 객체 하나하나를 왼쪽 변수 user에 담아 반복실행한다.참고로 컬렉션 객체는 list 외 Iterable, Enumeration을 구현한 모둔 객체를 다 사용할 수 있다. usernam..
스프링 컨테이너는 스프링에서 자바 객체를 관리하는 공간이다. 이때 자바 객체를 스프링에선 빈(Bean)이라고 부르는데, 스프링 컨테이너에서 이 빈의 생성부터 소멸까지 관리한다. 1. 컴포넌트 스캔@Conponent 어노테이션을 통해 등록하는 방법 외 스프링 프레임워크에서 제공하는 @Controller, @Service 와 같은 어노테이션도 가능하다. 왜냐하면 해당 어노테이션들은 인터페이스로 @Component를 받기 때문이다. 2. 스프링 빈 직접 등록@Configuration와 @Bean 어노테이션을 통해 가능하다.