스프링

· 백엔드
- RestTemplate이란? Spring에서 지원하는 객체로 간편하게 Rest방식으로 API를 호출할 수 있는 Spring 내장 클래스다.Spring 3.0부터 지원되었고, json과 xml 응답 모두 받을 수 있다. Rest API 서비스를 요청 후 응답받을 수 있도록 설계되어 있으며, HTTP 프로토콜의 메서드(GET, POST, DELETE, PUT)들에 적합한 여러 메서드를을 제공한다. 그래서 JAVA에서 사용되는 다른 템플릿처럼 단순 메서드 호출만으로 작업을 쉽게 처리할 수 있다! - RestTemplate의 특징 1. Spring 3.0부터 지원하는 Spring의 HTTP 통신 템플릿 2. HTTP 요청 후 JSON, XML, String과 같은 응답을 받을 수 있는 템플릿 3. Block..
· 백엔드
- 목표 Map과 MultiValueMap을 비교해보고 MultiValueMap에 대해 알아보자! - map이란? 1. HashMap의 특징 map의 기본 형식으로, key : value의 한쌍으로 데이터를 저장한다. 여기서 가장 큰 특징은 키가 중복되지 않는다는 것! map에 있는 value값을 조회할 때, 키를 기준으로 가져오기 때문이다. key를 배열의 인덱스처럼 사용해 데이터(value)값을 가져오기 때문에 시간 복잡도가 O(1)이 된다. 2. TreeMap의 특징 HashMap과 동일한 기능에 추가 기능이 있는 map이다. TreeMap은 데이터가 추가될 때마다 key의 값에 따라 자동으로 정렬된다. 3.LinkedHashMap의 특징 HashMap과 동일한 기능에 추가 기능이 있는 map이다...
· 백엔드
[스프링 데이터 JPA 쿼리 메서드] 목표 순수 JPA리포지토리와 쿼리 메서드 비교하기(이름과 나이를 기준으로 회원 조회하는 쿼리 비교하기) 순수 JPA 리포지토리 1. 순수 JPA 리포지토리 작성하기 public List findByUsernameAndAgeGreaterThan(String username, int age) { return em.createQuery("select m from Member m where m.username = :username and m.age > :age") .setParameter("username", username) .setParameter("age", age) .getResultList(); } 이 코드는 리포지토리를 생성한 후 쿼리문을 문자열 형태로 만든다. ..
· 백엔드
[Entity에 setter대신 생성자 활용하기] 목표 setter대신 생성자 활용해보기 setter을 사용하지 말아야 하는 이유 1. 사용자의 의도를 파악하기 어렵다. Member member = new Member(); member.setUsername("name1"); member.setAge(25); member.setTeam(teamA); 위의 코드를 보면 새로운 member객체를 생성하는 것인지, 값을 변경하는 것인지 의도를 파악하기 어렵다. 이 코드는 새로운 member객체를 생성하는 것지만, 객체의 요소가 많아질수록 더욱 복잡해질 것이다. Member member = new Member("name1", 25, teamA); 위의 코드 또한 member객체를 생성하는 것으로, 생성자를 이용해..