본문 바로가기
반응형

분류 전체보기337

[스프링 MVC] @Controller, @RequestMapping 지난 게시글에서 OldController를 통해 기존의 Controller 동작 방식을 살펴봤었다. 이제 본격적으로 스프링 MVC의 편리한 기능들을 사용할 것이다. 컨트롤러를 작성하는데 키 포인트는 @Controller와 @RequestMapping 이 두 어노테이션이다. 이 두 가지에 대해 간단히 설명하고 코드를 작성하겠다. @Controller 내부에 @Component 어노테이션이 존재해 컴포넌트 스캔의 대상 스프링이 자동으로 스프링 빈으로 등록 스프링 MVC에서 어노테이션 기반 컨트롤러로 인식하게 함 @RequestMapping 요청 정보를 매핑 해당 url이 호출되면 해당 메소드가 호출 어노테이션 기반 동작이기 때문에 메소드 이름은 자유 + 핸들러 매핑과 핸들러 어댑터 중 가장 우선순위가 높은 .. 2021. 5. 27.
[스프링 MVC] 뷰 리졸버 지난 번에 만들었던 OldController를 수정해서 뷰 리졸버의 작동을 살펴보자. ( 프로젝트 전체: https://github.com/yeon-06/inflearnSpring/tree/master/mvc1 ) OldController @Component("/springmvc/old-controller") public class OldController implements Controller{ @Override public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception { System.out.println("OldController.handleRequest"); return new .. 2021. 5. 26.
[Kakao] 신규 아이디 추천 2021 KAKAO BLINDTEST 난이도 1 신규 아이디 추천 문제 요약 > 사용자가 입력된 아이디를 기준에 맞는 아이디로 변경 기준 315) return str.substring(0,15); return str; } // 2자 이하면 마지막 문자 추가 public String isLessThan2 (String str) { int len = str.length(); if(len>2) return str; String last = str.substring(len-1,len); if (len==2) return str+last; else return str+last+last; } } 난이도는 막 어렵지 않은데 정규식 공부한걸 메모하기 위해 글을 따로 작성한다. ^[A]: A로 시작하는 글자 [^A]: .. 2021. 5. 26.
[Java] static과 synchronized 흔히 static 키워드는 multi-thread 환경에서 문제가 생기고, multi-thread 접근을 방지하기 위한 방법으로는 synchronized의 사용이 있다. static만 쓰거나, synchronized만 쓰거나, 둘 다 쓰거나... 이런 경우가 헷갈려서 따로 정리해본다. static 메모리에 한 번 할당되며 프로그램 종료 시 해제 GC과 관여하지 않는 영역의 메모리에 저장됨 객체 지향적이지 않아서 Java에서는 사용 지양을 권장 interface 구현에 사용할 수 없어 재사용성이 떨어짐 multi-thread 환경에서도 공유됨 설정 파일 정보, 자주 사용하고 절대 변하지 않는 변수(이건 final static을 쓰면 좋다) 등에 사용 메모리에 대한 보충 설명 ▼ 더보기 JVM의 메모리 영역.. 2021. 5. 26.
[스프링 MVC] 핸들러 매핑, 핸들러 어댑터 핸들러 매핑과 핸들러 어댑터가 어떤 것들이 어떻게 사용되는지 확인해보자. Controller 인터페이스와 HttpRequestHandler 핸들러(컨트롤러)를 통해 예시를 들겠다. Controller 인터페이스 과거 Spring에서 사용했던 인터페이스 @Controller 어노테이션과는 전혀 다름 public interface Controller { ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception; } 지난 게시글에서 살펴봤던 스프링 MVC 구조를 다시 살펴보자. (글 순서: https://github.com/yeon-06/inflearnSpring/tree/master/.. 2021. 5. 24.
[스프링 MVC] 스프링 MVC 구조, DispatcherServlet 목차 1. 기존 프로젝트의 구조 2. 스프링 MVC 구조 3. DispatcherServlet 1. 기존 프로젝트 구조 여태껏 만든 프로젝트의 구조를 한번 정리해보자. ( 프로젝트는 https://github.com/yeon-06/inflearnSpring/tree/master/mvc1 참조) 핸들러 조회: Handler 매핑을 통해 요청 url에 매핑된 핸들러(컨트롤러) 조회 핸들러 어댑터 조회: 핸들러를 처리할 수 있는 핸들러 어댑터 조회 핸들러 어댑터 실행: handler(handler) 핸들러 실행: 핸들러 어댑터가 실제 핸들러 실행 ModelView 반환: 핸들러 어댑터가 핸들러의 반환 정보를 ModelView 형태로 변환해서 반환 viewResolver 호출 MyView 반환: viewReso.. 2021. 5. 24.
[Spring] Path with "WEB-INF" or "META-INF" 에러 Path with "WEB-INF" or "META-INF" 에러 에러 코드 전문 ▼ 더보기 2021-05-20 16:35:32.017 WARN 8656 --- [nio-8080-exec-2] o.s.w.s.r.ResourceHttpRequestHandler : Path with "WEB-INF" or "META-INF": [WEB-INF/views/new-form.jsp] 2021-05-20 16:35:32.045 DEBUG 8656 --- [nio-8080-exec-2] o.a.coyote.http11.Http11InputBuffer : Before fill(): parsingHeader: [true], parsingRequestLine: [true], parsingRequestLinePhase: [.. 2021. 5. 21.
[Java] Collections와 Map 코딩 테스트를 풀때 효율성 문제에서 제일 헷갈리는게 Collections 같다. '자바 성능 튜닝 이야기' 책에 의하면 각 클래스의 효율성 자체는 크게 나지는 않지만... 어느 상황에 어떤 컬렉션을 쓰는 것이 적절한지 헷갈리니까 정리해두겠다. 이 글은 컬렉션 프레임워크를 대충 쓰고는 있었지만 서로의 차이점을 확실히 알고 싶은 사람에게 추천한다. 사용법이 아닌 개념과 이해를 위한 설명을 위주로 작성한다. 컬렉션 프레임워크(Collection Framework)란? 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화해 클래스로 구현한 것 Collection Framework의 계층 Collection fra.. 2021. 5. 21.
[MVC] 어댑터 추가 110v 코드에는 220v 코드를 꽂을 수 없다. 어댑터를 사용하면 220v 코드도 110v에서 사용할 수 있도록 해준다. 이처럼 코드에서도 호환을 도와주는 어댑터를 추가할 수 있다. 자세한 설명은 '어댑터 패턴'에 대해 공부해보길 바란다. V3 Controller 활용하기 먼저는 v3에서 만든 컨트롤러를 사용할 수 있도록 하겠다. v3 코드: https://yeonyeon.tistory.com/105 [MVC] Model 분리 현재 코드의 문제점 컨트롤러는 매번 사용하지도 않는 HttpServletRequest, HttpServletResponse를 받는다. "/WEB-INF/views/new-form.jsp" 같은 경로에서 "/WEB-INF/views" 같이 경로가 반복된다. 현재 서블릿에.. yeo.. 2021. 5. 19.
반응형