본문 바로가기

728x90

Java & Spring

(69)
Java 컬렉션 프레임워크인가 아닌가..? 2025년 01월 20일 직장 후배가 질문한 내용에 답변을 못했다.정말 어려운 질문이고 좋은 질문이지만 제대로 답변하지 못하여 공부하고자 만들어 본 포스팅이다.A. 선배님 자바 컬렉션 인터페이스는 개발자가 직접 호출하고 프레임워크 성격을 띄지 않고 있는거 같은데 왜 프레임워크라고 하는지 모르겠습니다. 자바 컬렉션을 직접 호출하여 사용하는 것만으로는 프레임워크의 특징은 "제어의 역전(Inversion of Control, IoC)"를 명확하게 느낄 수 없기 때문에 질문한 내용. 1. 프레임워크란?· 특정한 작업을 쉽게 할 수 있도록 설계된, 일련의 규칙과 구조를 제공하는 소프트웨어 시스템· 일반적인 구조를 제공하고, 세부적인 구현을 개발자가 확장하는 것!!구분설명구조코드 조직을 위한 체계적인 방식.표준화일..
Java Stream(스트림) I. Java Stream이란?· Java 8에서 도입된 기능으로, 컬렉션(Collection) 또는 배열과 같은 데이터 소스의 요소를 처리하고 변환하기 위한  선언적이고 함수형 스타일의 API· 스트림을 사용하면 코드가 간결해지고, 데이터 처리 작업을 병렬화하거나 효율적으로 수행할 수 있음. 1. 선언적 방식· 스트림 API는 for 또는 while 루프 대신 선언적으로 데이터를 처리한다.  (예: filter, map, collect) 2. 데이터 프름 중심· 스트림은 데이터의 흐름을 처리하기 위해 사용되며 데이터 자체를 변경하지 않는다.· 스트림은 원본 데이터를 변경하지 않는 불변성을 보장한다. 3. 중간 연산과 종결연산· 중간 연산(Intermediate Operation) : 다른 스트림을 반환..
Java 컬렉션 프레임워크란? I. Java 컬렉션 프레임워크@ Java Collection Interfaces의 정의와 특징.· Java 컬렉션 프레임워크는 다양한 데이터 구조를 관리하고 조작할 수 있는 클래스와 인터페이스의 집합이다.· Java 프로그램에서 데이터를 효율적으로 저장, 검색, 삭제 및 수정할 수 있는 방법을 제공한다.· 컬렉션 프레임워크는 크게 컬렉션 인터페이스, 구현 클래스, 유틸리티 클래스로 나눌 수 있다. @ Java 컬렉션 프레임워크의 사용목적.· 다양한 데이터 구조를 제공하여 효율적인 데이터 관리를 지원.  각 컬렉션의 특성과 사용 목적에 맞는 구현 클래스를 선택하고 활용하는 것이 성능을 최적화하는 데 중요 1. 컬렉션 인터페이스(Collection Interfaces) ·  컬렉션 인터페이스는 컬렉션의 동..
Spring에서 사용하는 Controller 종류와 정의 I. Controller의 종류와 정의- Controller란? Spring의 Controller는 MVC 패턴에서 View와 Model의 사이의 중간자 역활을 하며, 클라이언트 요청을 처리하는 비지니스 로직을 실행하거나 서비스 계층과 상호작용 한다. (추가로 정리해야할 정의 요소들)MVC 패턴(링크기재)https://doltae.tistory.com/443 Spring MVC 패턴I. Spring MVC란?· Model-View-Controller 아키텍처 패턴을 기반으로 한 Spring Framework의 웹 애플리케이션 개발 모듈이다.· 애플리케이션의 각 관심사를 명확히 분리하여 유연하고 유지보수하기 쉬운 코드doltae.tistory.com 클라이언트 요청(링크기재)https://doltae.ti..
18. @RequestMapping 21:56 2. @ModelAtrribute - 적용 대상을 Model의 속성으로 자동 추가해주는 애너테이션 - 반환 타입 또는 컨트롤러 메서드의 매개변수에 적용 가능 //public String main(@ModelAttribute("myDate") MyData date, Model model) // 아래와 동일 public String main(@ModelAttribute MyDate date, Model model) throws IOException { //model.addAttribute("myDate", date); // 생략가능 //model.addAttribute("yoil", yoil); 컨트롤러 매개변수에 @RequestParam : 기본형, String @ModelAttribute : 참조형 애노..
17. @RequestParam과 @ModelAttribute 33:43 1. @RequestParam - 요청의 파라미터를 연결할 매개변수에 붙이는 애너테이션 @RequestMapping("/requestParam2") //public String main2(@RequestParam(name="year", required=false) String year) { // 아래와 동일 public String main2(String year) { System.out.printf("[%s]year=[%s]%n", new Date(), year); return "yoil"; } (@RequestParam(name="year", required=false) String year) 생략가능. // http://localhost/ch2/requestParam2 ---->> year=null..
16. 서블릿과 JSP(4) 21:36 11. JSTL(JSP Standard Tag Library) // 접두사 taglib 정의되어 있어야 JSTL를 사용할 수 있음. EL은 지역변수 사용 불가. 그래서 저장소에 저장. Key Value "to" "10" scope="page"가 생략되어 있음. 배열저장. ${i} 1부터 10까지 출력. ${status.count}. arr[${status.index}]=${elem} 비어있지 않으면 하나씩 돌아서 넣음. varStatus = "status" count와 index를 갖고있음. msg=${param.msg} msg= c:out 태그을 사용하면 태그가 해석되지 않음. 텍스트로만 해석함. 자바스크립트 공격을 막을 수 있음. 메시지가 없습니다. 성인입니다. 성인이 아닙니다. 값이 유효하지 않습니..
15. 서블릿과 JSP(3) 39:36 9. URL 패턴 @WebServlet으로 서블릿을 URL에 맵핑할 때 사용. Servlet : lazy-init(늦은 초기화), loadOnStartup= 1 (미리 초기화.) @WebServlet(urlPatterns={"/hello", "/hello/*"}, loadOnStartup=1) //미리 초기화 (번호는 우선순위) 1. exact mapping(정확) /login/hello.do 2. path mapping(경로 매핑) /login/* 3. extension mapping(확장자) *.do 4. default mapping / Servlet Context 안엔 Map이 있는데 URL을 관리해주는 servletMappings에도 Map이 있다. DispatcherServlet 안에 내부적으로..

728x90