자바21 [Spring] Spring MVC 구조(2) Eception 처리 @ExceptionHandler와 @ControllerAdvice를 이용한 처리 @ControllerAdvice 예외 사항을 전부 핸들링 해야 한다면 중복적이고 많은 양의 코드를 작성해야 한다 따라서 공통적인 예외사항에 대해서는 별도로 @ControllerAdvice를 이용해서 분리한다. 따로 예외들만 분리해서 관리할 수 있게 되고 이것이 AOP를 이용하는 방식이다. @ResponseEntity를 이용해서 예외 메세지를 구성할 수 있다. 스프링 MVC 프로젝트의 기본 구성 스프링 MVC에서 어떤 단계를 거쳐서 실행되는지를 이해해야 문제 발생시 빠른 대처와 대안을 찾을 수 있다. 슬프링 웹 프로젝트는 3-Tier(티어) 방식으로 구성한다. Presentation Tier - Busin.. 2022. 3. 30. [Spring] Spring MVC 구조 (1) 스프링 MVC 기본 구조 스프링 프레임워크는 하나의 기능을 위해서만 만들어진 프레임워크가 아닌 '코어'라고 할 수 있는 어려 서브 프로젝트를 결합해서 다양한 상황에 대처할 수 있도록 개발되었다. 그 중 하나가 스프링 MVC이다. 스프링 MVC Spring MVC - WEB 관령 영역 Spring Core - 일반 Java 영역(POJO) Spring MyBatis Mybatis DB 프로젝트의 구동은 web.xml에서 시작한다. web.xml의 상단에는 가장먼저 구동되는 context Listener가 등록되어 있다. 1. ContextLoaderListener는 해당 웹 어플리케이션을 구동하게 되면 같이 작동이 시작되므로 해당 프로젝트를 실행하면 가장 먼저 로그를 출력하면서 실행된다. 2. root-c.. 2022. 3. 24. [Spirng] Spring-MyBatis Spring - MyBatis SQL이 복잡하거나 길어지는 경우에는 어노테이션보다 XML을 이용하는 것이 좋다 MyBatis-Spring의 경우 Mapper 인터페이스와 XML을 연동하여 동시에 이용할 수 있다. 인터페이스 객체,메소드() 를 사용하는 순간 해당하는 인터페이스의 경로를 namespace로 가지고 있는 xml mapper를 찾아가서 메소드명과 동일한 id의 쿼리문을 수행하여 결과를 돌려준다 MyBatis는 내부적으로 JDBC의 Preparedstatement 를 이용하여 SQL을 처리한다 따라서 SQL에 전달되는 파라미터는 JDBC에서와 같이 ?로 치환되어서 처리한다 복잡한 SQL의 경우 ?로 나오는 값이 제대로 전달 되었는지 확인하기가 쉽지 않다 실핸한 SQL의 내용을 정확히 확인하기 어.. 2022. 3. 22. [Spring] 의존성 주입(Dependency Injection) DI(의존성 주입) - Dependency Injection 의존성(Dependency)이란 하나의 객체가 다른 객체 없이 제대로 된 역할을 할 수 없다는 것을 의미한다. 예를들어 A 객체가 B객체 없이 동작이 불가능한 상황을 'A가 B에 의존적이다'라고 표현한다. 주입(Injection)은 말 그대로 외부에서 밀어 넣는 것을 의미한다. 예를 들어 어떤 객체가 필요한 객체를 외부에서 넣어주는 것을 의미한다. 주입을 받는 입장에서는 어떤 객체인지 신경 쓸 필요가 없고 어떤 객체에 의존하든 자신의 역할은 변하지 않게 된다. 의존 a ----> b a객체에서 b객체를 직접생성 의존성 주입 a ----> ?? Eclipce Marketplace -> STS검색 -> 설치 -> 전부 동의, 다음 ... -> re.. 2022. 3. 21. [Spring]스프링 프레임워크란 ? 스프링 프레임워크(Spring Framework) 스프링 프레임워크를 이용해서 '의존성 주입'에 대한 이해와 테스트 스프링에서 xml을 이용하는 객체 관리 방법 스프링의 테스트 환경 구축 프레임 워크(Framework) 뼈대나 근간을 이루는 코드들의 묶음 개발자는 각 개개인의 능력차이가 큰 직종이고, 개발자 구성에 따라 프로젝트 결과 역시 큰차이를 낳는다. 이런 상황을 극복하기 위한 코드의 결과물이 바로 프레임워크이다. 프로그램의 기본 흐름이나 구조를 정하고 모든 팀우너들이 이 구조에 자신의 코드를 추가하는 방식으로 개발하게 된다. 프레임워크의 장점 개발에 필요한 구조를 이미 코드로 만들어 놓았기 떄문에 실력이 부족한 개발자라 하더라도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다... 2022. 3. 18. [JSP]Front-Controller 패턴 Front-Controller 패턴 a.jsp -> web.xml -> servlet(UserFrontController) -> if,switch -> controller -> c.jsp(forward, redirect) 개발자가 정의한 확장자(.us, .do, .bo, ...)를 페이지 이동 주소에 작성하게 되면 파일이 아니기 때문에 web.xml에 가서 매핑되어 있는 서블릿으로 찾는다. 각 URL(UserJoin.us, UserLogin.us,...)을 전부 web.xml에 하나씩 매핑 해 놓게 되면 코드가 길어지기 떄문에 \*.us 형태로 하나의 서블릿에 매핑을 해놓는다. (어떤것이든 .us가 붙은 요청은 하나의 경로로 보내주도록 한다.) 이러한 경로를 통해 가게되는 서블릿 파일을 프론트 콘트롤러 .. 2022. 2. 9. [JSP] 스크립트 태그 / 디렉티브 태그 /액션 태그 스크립트 태그 HTML 내부에 자바 코드를 넣어 프로그래밍이 가능하도록 만들 수 있다 1. 선언문 (Declaration) 자바의 변수나 메소드를 정의하는데 사용되는 태그 2. 스크립틀릿 (Scriptlet) 자바 변수 선언 및 자바 로직 코드를 작성하는데 사용되는 코드 3. 표현문 (Expression) 변수, 계산식, 메소드 호출의 리턴값 등을 표현해주는 태그 HTML 문서에 안에 작성한 값이 그대로 표현된다. 타입은 문자열이다 scriptTag1 sayHello("JSP")의 결과 : 2022. 1. 25. [JSP]Java Server Pages 시작 웹 컨테이너 동적인 데이터 연산, 요청이 들어왔을 떄 서버가 연산을 요청하는 곳 연산이 끝나면 정제된 데이터(html, json, xml, ...)로 서버에 돌려준다 JSP (Java Server Page) HTML을 중심으로 자바와 같이 연동하여 사용하는 웹 언어이다 HTML 코드 안에 JAVA 코드를 작성할 수 있도록 도와주는 언어이다. 첫번째 작업물 입니다(JSP 파일) 서블릿(Servlet) JAVA 코드 안에서 HTML문서를 작성할 수 있는 JAVA 프로그램이다 JSP 파일은 해석시 서블릿으로 자동으로 변환되고, 변환된 서블릿 파일이 실행하면서 내부 코드로 인해 HTML 파일이 만들어 지게 된다 사용자가 URL 요청 -> web.xml에 매핑해놓은 서블릿 찾기 -> 해당하는 서블릿의 클래스로 요.. 2022. 1. 17. [JAVA]배열 배열 같은 자료형의 여러 변수를 나열해 놓은 것 배열의 선언 자료형[] 배열명 = {값1, 겂2, ...}; 자료형[] 배열명 = new 자료형[칸수]; 배열의 사용 이유 1. 여러 같은 의미의 값들을 하나의 이름과 인덱스로 관리하기 위해서 2. 다른 의미의 값들에 의미부여를 해서 하나로 관리하기 위해서 String[] arMsg = {"자바", "꽃", "hello"} // 0 1 2 배열의 인덱스 번호 실제 값들이 저장되어 있는 공간이 할당되면 이름은 존재하지 않고 주소만 존재한다 따라서 시작 주소를 배열명 변수가 기억하고 있고, 주소연산(추가이동)을 통해 다음 주소로 이동한다 시작 주소에서 연산된 정수 (이동한 횟수)가 인덱스 번호가 되고 첫번쨰 방은 배열명 변수가 가지고 있는 시작 주소에서 0번 .. 2022. 1. 11. 이전 1 2 3 다음