분류 전체보기 562

[SpringMVC]요청 Mapping 활용법

매핑시 { } 로 묶어서 URI주소를 여러개 사용가능하다.🌞 경로 변수  @PathVariable @****Mapping("/{param명}")    제한자 ReturnType 메서드명(@PathVariable ("param명") Type 변수명) {code화면에서 넘어오는 param명을 이용해 주소로 사용할 수 있다.사용예시/mapping/{userId}  →  /mapping/nueylog 로 사용된 것을 알 수 있다.🌞 지역변수명을 param명과 동일하게 맞추면 아래와 같이 더 간소화해서 사용가능하다.🌞 다중 사용법특정 헤더로 추가 매핑@GetMapping(value = "/mapping-header", headers = "mode=debug") code사용예시 : 헤더에 특정값을 추가 후 U..

[JAVA]간단한 Logging 사용법

※ 실무에서는 System.out.print*를 거의 사용하지 않는다. 로깅 라이브러리를 사용해서 로그를 출력한다.  SLF4J https://www.slf4j.org/인터페이스.구현체로 Logback, Log4J, Log4J2 등을 제공한다.Logback https://logback.qos.ch/스프링 부트에서 기본으로 제공.따라서 대부분 로그백을 사용하는 추세이다. 로그 선언 private final Logger log = LoggerFactory.getLogger(getClass());이 부분은 클래스에서 제일 윗단에 존재하며 항상 동일하게 작성한다.codeLoggerFactroy.getLogger(여기) 안에 해당 클래스가 들어와야 한다.Logger를 import할 때 org.slf4j 로 호출해..

[SpringMVC]스프링MVC 구조 with사용예시

@Controller 스프링 빈으로 등록해준다. 이때 컨트롤러의 역할을 가능하게 해준다.컨트롤러로서  @RequestMapping("URI주소") 를 사용할 수 있게 해주는 것이다.결과매핑명으로 찾아오는 거기 때문에 메서드명만 다르면 이렇게 한군데로 몰아넣을 수도 있다.→ 연관된 기능만 묶어서..매핑명이 많이 중복됐는데 클래스 위에  @RequestMapping("URI주소") 위에 클래스 레벨에 앞단 경로 미리 지정해 간소화할 수 있다.스프링의  Model  model.addAttribute("지정이름", 데이터); → 값을 반환할 때 RequestHttpResponse에 담지 않아도 스프링이 제공하는 Model에 담으면 데이터를 지정한 이름으로 반환할 수 있다. return "화면명"; →  스프링은..

[SpringMVC]스프링MVC 환경구조

DispatcherServlet  스프링의 핵심.프론트 컨트롤러 역할.2025.02.28 - [☕ JAVA/☕ Library & Pattern] - [JAVA]HttpServlet 프론트 컨트롤러 도입해보기 Http Servlet을 상속받아 만들어졌다.모든 경로 (urlPatterns="/")에 대해서 매핑한다.※ 참고 : 더 자세한 경로가 우선순위가 높다.doDispatch() 가 핵심 코드이다.어댑터 패턴을 가지고 있다.2025.03.01 - [☕ JAVA/☕ Library & Pattern] - [JAVA]어댑터 패턴을 도입해 유연한 컨트롤러를 만들어보자 핸들러를 통해 어댑터를 조회하고, 어노테이션을 이용해 다양한 매핑을 재공한다.💡 스프링 MVC의 큰 강점DispatcherServlet 코드의 ..

[JAVA]어댑터에 구조가 다른 컨트롤러 추가하기

이전 글에서 만든 어댑터에 구조가 다른 컨트롤러를 연결해보겠습니다.2025.03.01 - [☕ JAVA/☕ Library & Pattern] - [JAVA]어댑터 패턴을 도입해 유연한 컨트롤러를 만들어보자 파일은 ControllerV4HandlerAdapter 하나 추가되었다.→ 이제 어댑터는 v3컨트롤러와 v4컨트롤러를 다루게 된다.프론트 컨트롤러에 딱 두가지만 추가됐다.initHandlerAdapter() 에서 ControllerV4HandlerAdapter를 핸들러어댑터 리스트에 추가하고initHandlerMappingMap()에 어떤 URI가 오면 반환할 컨트롤러를 추가해준다.ControllerV4HandlerAdapter이전 코드와 거의 동일하다. handle() 에서 반환 타입만 맞게끔 M..

[JAVA]어댑터 패턴을 도입해 유연한 컨트롤러를 만들어보자

이전 코드를 개선하기 위해 어댑터 패턴을 사용할 것이다.여러 컨트롤러를 자유롭게 사용할 수 있는 유연한 컨트롤러를 만들어보자.※ 이전 글 2025.03.01 - [☕ JAVA/☕ Library & Pattern] - [JAVA]MVC의 Model 만들어보기  핸들러 어댑터중간 어댑터 역할.덕분에 여러 컨트롤러 호출 가능.핸들러컨트롤러가 할 수 있는 영역을 넓힌 것. (컨트롤이라 생각하면된다)  폴더와 경로딱 이 세개만 만들면 됨.프론트 컨트롤러프론트 컨트롤러가 생성자로 바로 함수 두개를 실행해 map두개에 값을 답아줍니다.handler(컨트롤러)를 adapter로 보내고, 어댑터의 handle()을 이용해 ModelVeiw를 반환 받습니다.나머지는 이전 코드와 거의 동일합니다.어댑터의 조상. 컨트롤러들을..

[JAVA]MVC의 Controller에 사용할 model을 직접 만들어보기

이전 코드의 프론트 컨트롤러를 개선해, 운영하기 좋은 컨트롤러를 만들어보자.이전 글 2025.03.01 - [☕ JAVA/☕ Library & Pattern] - [JAVA]MVC의 Model 만들어보기바뀐 부분만 체크해서 살펴보겠습니다.  폴더 및 경로컨트롤러의 파라미터에 model이 추가되었다.각 컨트롤러프론트 컨트롤러model을 프론트 컨트롤러에 담아서 보내면 각 기능을 실행하고 값이 담겨진다.→ 혹시나하고 추가 설명하자면..반환되지 않아도 참조형 객체는 주소만 전달되면, 값이 담기는데 문제가 없다. 2023.01.08 - [☕ JAVA/☕ 개발환경] - [JAVA]단순히 정리한 JVM구조와 Memory(+static) ※ 참조 : https://www.inflearn.com/roadmaps/373

[JAVA]MVC의 Model 만들어보기

이전 글의 코드에 Model을 추가해보려한다.2025.03.01 - [☕ JAVA/☕ Library & Pattern] - [JAVA]MVC의 View 만들어보기Request에 값을 담아 반환했는데 별도의 Model객체를 만들어 볼 것이다.  파일 및 경로model 역할viewName과 model역할을 할 Map을 만들었다.controller가 이제는 ModelView를 반환하도록 한다.각 기능의 컨트롤러들ModelView를 반환하는데 mv.getModel().put(key, value);각 기능을 실행하고 반환해야 하는 데이터를 담아 보낸다.프론트 컨트롤러 (코드가 길어져서 바뀐 부분만 가져옴)ControllerV3 controller = controllerMap.get(requestURI);URI에 ..

반응형