본문 바로가기

Spring-Java59

스트림(Stream)_중간 처리 기능 네 줄 요약 - 매개값으로 넘길 땐 람다식을 통해 작성한다. - filter()를 통해 조건에 맞는 요소를 구별할 수 있다. - map()과 flatMap()을 통해 요소의 타입이나 개수를 바꿀 수 있다. - 객체 요소의 정렬을 위해선 해당 클래스에 Comparable을 구현하거나 Comparator의 리턴값을 매개값으로 넘겨준다. 반복자 반복자에는 외부 반복자와 내부 반복자가 있습니다. 외부 반복자의 경우 컬렉션의 요소를 반복적으로 바깥으로 가져와서 처리하며, 내부 반복자의 경우 처리 방법(람다식)을 컬렉션 내부로 주입시켜 요소를 반복 처리합니다. 외부 반복자 for 문과 Iterator는 컬렉션의 요소를 바깥쪽으로 반복해서 가져오는 외부 반복자입니다. Set 컬렉션의 iterator() 메소드를 통해.. 2024. 4. 4.
익명 객체와 람다식(lambda) 람다식 사용법 세 줄 요약 - 함수형 인터페이스를 생성하고, - 해당 인터페이스의 참조 변수를 통해 추상 메소드를 호출하는 데이터 처리부(메소드)를 만들고, - 해당 인터페이스의 추상 메소드에 선언된 매개변수(데이터)의 처리 방법을 기술한다. 익명 객체 이름이 없는 객체를 뜻하며 함수형 프로그래밍에 사용됩니다. 종류에는 1) 익명 자식 객체와 2) 익명 구현 객체가 있습니다. 함수형 프로그래밍 함수를 정의하고 이 함수를 데이터 처리부로 보내 데이터를 처리하는 기법입니다. 데이터 처리부는 처리 방법은 없고 단지 데이터만 존재하기 때문에 외부에서 제공된 함수에 의존적입니다. → 함수(A) 결과 = A → 함수(B) 결과 = B → 데이터 처리의 다형성 익명 자식 객체 클래스를 상속해서 익명 객체를 만드는 경.. 2024. 4. 3.
Day124_파이널 프로젝트(feat. 국비교육 수강후기) 2024.02.14 프로젝트 기간: 2023.12.18 ~ 2024.02.08 Git 링크: https://github.com/hd301/PetdicalBowwow/tree/master Notion 링크: https://petdical-bowwow.notion.site/aa048f3d3b244d779d4360b073b9014b 프로젝트 소스코드는 Git에서, 기획안 등 프로젝트 소개는 Notion에서 확인할 수 있습니다. 파이널 프로젝트 후기... 다양한 오픈 API를 활용해 서비스를 구현하면서 API(JPA 포함)관련 많은 공부가 됐습니다. 다만 상업용 비즈니스 앱이 아니기 때문에 허용 권한이 제한적인 것이 다소 아쉬웠습니다. 추가로 Notion을 사용해 스케줄을 관리하고 발표자료를 만들어 보았는데, .. 2024. 2. 20.
@RequiredArgsConstructor 세 줄 요약 롬복에서 지원하는 생성자 DI를 위한 어노테이션 스프링 4.3부터 해당 어노테이션으로 더욱 간단하게 DI 가능 final 혹은 @NonNull이 붙은 필드에 대해서만 적용됨 의존성 주입 (DI) * DI(Defendency Injection)? : 객체를 생성해줌으로써 의존관계가 성립되는 것을 의미. XML 파일을 통해 직접 설정하거나, @Autowired 어노테이션을 사용해 주입. 1) 생성자(Constructor) 주입 @Controller public class DummyController { private DummyService dsvc; @Autowired// 생성자 주입 public DummyController(DummyService dsvc) { this.dsvc = dsvc; .. 2023. 12. 21.
@RequestBody, @ResponseBody (feat.@ModelAttribute) 세 줄 요약 - @RequestBody, @ResponseBody 해당 어노테이션들은 비동기 통신에 사용됨 - 클라이언트 → 서버 : @RequestBody, 서버 → 클라이언트 : @ResponseBody - @RequestBody와 @ModelAttribute는 서로 비슷해 보일 수 있지만 분명한 차이점 존재 동기 / 비동기 통신 동기(Synchronous) 통신 - 단일 스레드로 한 번에 하나의 작업이나 프로그램만 실행 - 차단(blocking) 방식 : 요청에 대한 서버의 응답이 있을 때까지 기다림 - 코딩하기 쉬움 - 느리지만 체계적 비동기(Asynchronous) 통신 - 다중 스레드로 여러 작업이나 프로그램이 병렬로 실행 - 비 차단(non-blocking) 방식 : 서버에 여러 요청을 보낼.. 2023. 12. 18.
@RequestParam (feat.@ResponseBody) 세 줄 요약 View로부터 넘겨준 쿼리문의 값을 파라미터 이름으로 바인딩 속성에는 1) value, 2) required, 3) default 가 있음 value의 경우 View에서 넘겨준 파라미터 이름과 매개변수의 이름이 같다면 생략가능 @ResponseBody sourcecode @ResponseBody 해당 어노테이션을 사용하면 ViewResolver 대신 HttpMessageConverter가 동작 - @Controller 어노테이션이 적용 되었더라도, View 조회를 무시하고 HTTP message body에 직접 return값을 반환 * HttpMessageConverter Java와 HTTP 웹 어플리케이션 간에 객체변환을 통한 파라미터 전달을 도와주는 어노테이션 여러 가지 타입의 데이터 처.. 2023. 12. 15.