레퍼런스 : https://velog.io/@max9106/Spring-Boot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1개발 환경IDEA: IntelliJJava:11Spring Boot 2.7.2 B
문제 링크집과 치킨집의 위치정보를 모두 리스트에 넣는다.치킨집 개수에서 중복 없이 m개를 추출하는 모든 조합의 수를 구한다.모든 치킨집 조합에 대해 각 집과의 최소 거리를 구해 갱신하고, 이를 모두 더한 후 각 조합 별 최소 거리를 한 리스트에 담는다.최종 리스트에서
레퍼런스 : https://velog.io/@max9106/Spring-Boot-JPA-MySQL-%ED%8E%98%EC%9D%B4%EC%A7%95list.html에서 pageList에서 pageNum을 하나씩 꺼내와 페이징 처리를 하고 있다.page 링크를
레퍼런스 : https://velog.io/@max9106/Spring-Boot-JPA-MySQL-%EA%B2%80%EC%83%89%EA%B8%B0%EB%8A%A5list.html에서 검색 form을 누르면 "/board/search"로 get 요청이 들어가며
detail 템플릿에서 수정 버튼을 누르면 /post/edit/{게시글(boardDto)id} 값으로 url 요청이 날아간다.역시 컨트롤러에서 url매핑을 해준다. 이때 detail 매핑을 했던 것과 같은 로직으로 작동하므로 getPost를 그대로 사용하고, updat
이제 Mysql에 저장된 데이터를 불러와 조회해보도록 하겠다.list.html에서 Thymeleaf 기능을 사용할 때, boardList 라는 것으로 객체 정보를 출력했으므로 컨트롤러에 boardlist를 넘겨줘야 한다.model을 통해 view에 데이터를 전달해 줄
- Handler 구현 핸들러는 어떠한 url 요청에 대응해 실행할 기능을 매핑하는 것이다. controller 이름의 패키지 생성후 BoardController라는 이름의 클래스를 만들어준다. 이 클래스를 통해 핸들러를 구현할 것이다. 클래스 맨 위에 @Contro
레퍼런스 : https://velog.io/@max9106/Spring-Boot-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%EC%83%9D%EC%84%B1개발 환경IDEA: IntelliJJava:11Spring Boot 2.7.2프로
1) 요구사항 상품을 관리할 수 있는 서비스 상품 도메인 모델 1.상품 ID 2.상품명 3.가격 4.수량 상품 관리 기능 1.상품 목록 2.상품 상세 3.상품 등록 4.상품 수정  정적 리소스, 뷰 템플릿스프링에서 응답 데이터를 만드는 방법은 3가지다.웹 브라우저에 정적인 HTML, css, js를 제공할 때는, 정적 리소스를 사용한다.웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다.HTTP API를 제공하는 경우에는 HT
1) 기본,헤더 조회헤더정보를 담는 클래스를 생성해준다. url 요청을 보내고 로그를 확인해보면 헤더 정보가 콘솔에 넘어옴을 확인할 수 있다.MultiValueMap : MAP과 유사한데, 하나의 키에 여러 값을 받을 수 있다. HTTP header, HTTP 쿼리 파
요청 매핑은 요청이 왔을 때 어떤 컨트롤러를 호출해야 하는지를 알려주는 것이다.MappingController 클래스를 생성해 준다.@RequestMapping("/hello-basic"): /hello-basic URL 호출이 오면 이 메서드가 실행되도록 매핑한다.
스프링 부트에 Jar 를 사용하면 /resources/static/ 위치에 index.html 파일을 두면 Welcome 페이지로 처리해준다. (스프링 부트가 지원하는 정적 컨텐츠 위치에 /index.html 이 있으면 된다.실무에서는 print문이 아닌 로깅 라이브러
스프링은 개발자가 편리하게 개발할 수 있도록 수 많은 편의 기능을 제공한다.v3 컨트롤러를 만들 예정인데, v2 컨트롤러를 그대로 가져와 하나하나 고쳐 보겠다.먼저 회원 정보 부분은, 다음처럼 모델 앤 뷰가 아닌 그냥 스트링으로 반환만 해도 스프링이 뷰 이름으로 알고
이제 컨트롤러를 하나로 유연하게 통합하겠다.모든 컨트롤러를 하나로 통합한 SpringMemberControllerV2를 만들고 각 컨트롤러의 메소드를 모두 가져와 다른 이름으로만 구분해준다.서버에서 제대로 동작한다.그러나 세 컨트롤러의 Url 중 "/springmvc/
@RequestMapping 어노테이션을 사용하는 컨트롤러를 통해 유연하고 실용적으로 핸들러 매핑과 핸들러 어댑터를 사용할 수 있다.새로운 회원 입력 컨트롤러를 생성한다. 컨트롤러 어노테이션과 @RequestMapping 어노테이션을 넣어준다.@Controller 가
1) MVC 전체 구조이전까지 직접 만들었던 스프링 mvc 구조다.이제 실제 스프링 MVC의 모습이다. 동작 구조가 완전히 같다. 그러나 명칭에만 차이가 있다.프론트 컨트롤러는 디스패쳐 서블릿으로 칭한다. 이게 젤 중요하다.디스패쳐 서블릿도 서블릿이므로, httpSer
이제 v5 컨트롤러에 v4까지 처리할 수 있도록 해보겠다.v4 매핑 정보를 추가하고, v4 핸들러 어댑터를 추가해준다. 그러나 아직 v4 핸들러 어댑터가 없으므로 만들어 줘야 한다.따라서 MyHandlerAdapter를 implements 한 v4 핸들러 어댑터를 구현
어댑터 패턴을 사용해 프론트 컨트롤러가 다양한 방식의 컨트롤러를 처리할 수 있도록 해보겠다.핸들러 매핑 정보를 찾으면 해당 컨트롤러를 처리할 수 있는 어댑터를 찾아, 프론트 컨트롤러가 핸들러 어댑터를 통해 컨트롤러를 호출한다.이제 컨트롤러를 핸들러라고 부르겠다.프론트
아키텍쳐가 단순하고 실용적인 v4 컨트롤러를 구현해보도록 하겠다.기본적인 구조는 v3와 같으나 컨트롤러가 ModelView를 반환하지 않고 viewName만 문자로 반환한다.이전에는 paraMap 만 넘겼는데, 이제는 직접 모델이 파라미터로 넘어온다. 프론트 컨트롤러가