다양한 DI 방법 생성자 Setter 필드 일반 메소드 생성자 주입 방식 (요즘 가장 많이 쓰는 방식) 불변(final)이면서 필수인 의존관계에서 주로 사용 생성자 1개만 있다면 Autowired를 생략해도 주입됨(Bean, Component 방식 모두 해당) final 필드를 this로 접근 가능한 생성자 사용 수정자 Setter 주입 선택, 변경이 가능성이 있는 의존관계에서 주로 사용 Autowired의 기본 동작은 주입할 대상이 없으며 오류가 발생하고, 주입할 동작이 없어도 동작하게 하려면 @Autowired(required = false) 로 지정하면 된다. 자바빈 프로퍼티 규약의 수정자 메서드 방식을 사용하는 방법 자바빈 프로퍼티 규약이란 필드를 외부에서 접근할 때 Getter, Setter로 ..
비 연결성 HTTP는 기본이 연결을 유지하지 않는 모델 연결을 유지한다면 많은 리소스를 낭비하게 됨 서버에서 동시에 처리하는 요청이 실제로도 적은데 연결을 유지하면 비효율적임 TCP/IP 연결 3way handshake, HTML, CSS, Js, 추가 이미지 등 수 많은 자원이 함께 다운로드됨 → 시간이 많이 들게 됨 HTTP 지속 연결로 문제 해결 요청 후 다 받은 후에 연결을 종료함 HTTP/2, HTTP/3에서는 더 최적화가 됨 무상태로 설계할 수 있으면 무상태가 좋음 HTTP 메시지 HTTP 요청 메시지, 응답 메시지는 구조가 조금씩 다름 요청 메시지 HTTP 메서드 → GET, POST, PUT, DELETE... 요청 대상 → ?쿼리, 절대경로는 “/”로 시작하는 경로 (절대경로[?쿼리]) ..
Apple의 weight를 비교하는 예제에서 :: 는 해당 메소드를 활용하라는 메서드 참조이다. :: 왼쪽에 클래스를, 오른쪽에 활용할 메서드명을 적으면 된다. public class Main { public static void main(String[] args) { List inventory = Arrays.asList( new Apple(80, "green"), new Apple(155, "green"), new Apple(120, "red") ); List heavyApples = inventory.parallelStream().filter((Apple a) -> { return a.getWeight() > 150; }).collect(toList()); } } Apple 클래스에는 color라는..