분류 전체보기89 [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. [Oracle] 오라클 데이터베이스 오라클 데이터베이스(Oracle Database 또는 Oracle RDBMS)는 미국 오라클(Oracle)사의 관계형 데이터베이스 관리 시스템의 이름이다. 현재 유닉스 환경에서 가장 널리 사용되는 RDBMS이다. 검색이나 업데이트용 언어로는 국제표준화기구의 표준 구조화 조회 언어와 PL/SQL을 지원한다. 오라클은 MySQL이라는 경쟁 언어를 가지고 있으면서도 오라클RDBMS를 가지고 있다. 오라클에 비해 MySQL이 더 편한 부분이 많지만 , 일반기업에서 오라클을 많이 사용하고 있는 편이다. 오라클 언어 규칙은 MySQL과 크게 다르지는 않지만 약간의 차이점을 있다. 자료형 숫자 NUMBER(자리수) : 정수 NUMBER(자리수, 소수점자리수) : 실수 문자열 CHAR(크기) VARCHAR2(크기) 시.. 2022. 3. 11. [JSP]Front-Controller 패턴 실전 흐름 파악(로그인 기능) Front-Controller 패턴 사용 a.jsp -> web.xml -> servlet(UserFrontController) -> if,switch -> controller -> c.jsp(forward, redirect) 위의 루트만 생각하고 있으면 크게 어렵지 않다. 1. a.jsp 단계에서 loginview.jsp를 만들어 낸다 아이디 비밀번호 회원가입 2. 로그인 버튼을 누르게 되면 UserLoginOk.us로 이동하도록 링크를 걸어주고, 클릭시 web.xml파일에 들어가 .us가 나타내는 front-controller를 검색한다. board_mvc2 index.html index.htm index.jsp default.html default.htm default.jsp UserFrontCon.. 2022. 2. 15. [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]MVC2 모델 MVC 2 [jsp방식] a.jsp -> b.jsp -> c. jsp | DB 각 페이지마다 필요시 자바 코드가 작성되며, DB와 연결하는 코드도 JSP 파일 안에서 모두 작성된다. 분리되어 있지 않기 때문에 소규모 프로젝트에서는 어울리는 방식이지만 가독성이 떨어지고 분업과 유지 보수가 좋지 않으므로 규모가 커지면 불편해진다. [MODEL1 방식] a.jsp -> b.jsp - c.jsp | DAO , DTO | DB b.jsp에서 DAO의 메소드를 호출함으로써 자바코드가 섞이게 된다. 하지만 선언은 분리되어 JAVA파일에 구현되어 있으므로 JSP 내의 JAVA 코드의 양이 굉장히 줄어들게 된다. 하지만 페이지가 확장될수록 유지보수가 상대적으로 좋지 않다. [MODEL2 방식] a.jsp -> web.x.. 2022. 2. 8. 이전 1 2 3 4 ··· 10 다음