목록MVC (10)
삶 가운데 남긴 기록 AACII.TISTORY.COM
Model과 ModelAndView의 차이점특징ModelModelAndView역할뷰에 전달할 데이터(속성)만 담는 역할 (인터페이스)데이터(Model)와 뷰 이름(View)을 모두 담는 컨테이너 (클래스)뷰 지정컨트롤러 메서드의 반환 값(String)으로 뷰 이름을 지정객체 내부의 setViewName() 메서드로 뷰 이름을 지정주요 사용처최근 Spring 개발 트렌드에서 주로 사용 (String 리턴 타입과 함께)Spring 초기에 자주 사용되었으나, 최근에는 사용 빈도가 감소반환 타입컨트롤러 메서드의 파라미터로 받으며, 메서드는 보통 뷰 이름(String)을 반환컨트롤러 메서드의 반환 타입이 됨 ModelModel 객체는 컨트롤러 메서드의 파라미터로 주입받아 사용하며, 데이터를 추가합니다. 메서드는..
MyBatis 와 Spring Data JPA 비교 특징MyBatisSpring Data JPA패러다임SQL 매퍼 (SQL-Centric)ORM (Object-Relational Mapping) (Object-Centric)SQL 관리개발자가 XML이나 어노테이션에 직접 SQL 작성기본적인 CRUD SQL은 프레임워크가 자동 생성개발 속도Mapper와 XML을 모두 작성해야 함Repository 인터페이스 상속만으로 CRUD 완성 (빠름)복잡한 쿼리SQL을 직접 제어하므로 복잡한 조인, 동적 쿼리 작성, 속도 튜닝 등이 용이JPQL이나 QueryDSL을 사용해야 하며, 때로 복잡함영속성 관리SQL 실행 후 결과 매핑만 담당엔티티의 생명주기(조회, 변경 감지, 삭제)를 관리 (영속성 컨텍스트) 안전하게 혼..
@RequestMapping@RequestMapping은 Spring MVC의 어노테이션이며, 특정 URL 요청을 어떤 컨트롤러의 메서드가 처리할지 연결(mapping)해주는 역할을 합니다.예를 들어 @RequestMapping(value="sendMessage")으로 되어있다면 이 메서드가 /sendMessage라는 경로(path)로 들어오는 요청을 처리하겠다는 것을 의미합니다. 예를 들어, 웹 애플리케이션이 http://localhost:8080에서 실행 중이라면, 사용자가 http://localhost:8080/sendMessage로 접속할 때 이 어노테이션이 붙은 메서드가 실행됩니다. 사용 위치:컨트롤러 클래스(class) 레벨이나 메서드(method) 레벨에 붙일 수 있습니다.클래스 레벨에 ..
여기서는 limit 기능이 존재하는 DBMS를 대상으로 페이징 처리를 다룹니다.Spring MVC 패턴으로 lombok과 mybatis를 이용한다고 가정합니다. LIMITSELECT * FROM 테이블이름 ORDER BY tno DESC LIMIT 0, 10; -- 0개 건너 뛰고 10개 표시: 즉 1 page 보기SELECT * FROM 테이블이름 ORDER BY tno DESC LIMIT 10, 10; -- 10개 건너 뛰고 10개 표시:즉 2 page 보기SELECT * FROM 테이블이름 ORDER BY tno DESC LIMIT 20, 10; -- 20개 건너 뛰고 10개 표시:즉 3 page 보기 위 예제를 보면 아시겠지만 limit 건너뛰어야할게시물수, 가져와야할게시물수.이렇게 해당 페이지를..
html 파일에 한글 설정 server.xml 한글 설정GET방식에서는 질의 문자열들을 URI에 포함되기 때문에 URI인코딩 처리 작업을 해야 합니다.server.xml 파일에 URIEncoding="UTF-8" 프로퍼티를 설정합니다. web.xml 한글 설정 encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* POST 전송 방식은 요청 body에 담아 전달됩니다.CharacterEncodingFilter는 http..
Spring MVC 프로젝트 구조 설명src/main/java/ : 자바 소스 경로src/main/resources/ : 실행시 자동 참고되는 경로(주로 설정파일, log4j.xml 등등)src/test/java/ : 테스트 자바 코드 경로src/test/resources/ : 테스트 관련 설정 파일 경로src/webapp/WEB-INF/spring/appServlet/ : sevlet-context.xml 외 spring 설정 파일src/webapp/WEB-INF/spring/ : root-context.xml 외 spring 설정 파일src/webapp/WEB-INF/views/ : MVC 패턴 중 view 페이지(jsp) 들이 위치 한 경로src/webapp/WEB-INF/ : tomcat의 ..
JDK 설치 오라클 사이트에서 JDK를 다운받아서 설치합니다. 여기서는 JDK11을 기준으로 합니다. 설치한 후에는 환경 변수에서 JAVA_HOME 을 등록하고 JDK가 설치된 경로를 지정해줍니다. 환경변수의 PATH에는 %JAVA_HOME%bin 으로 저장합니다. 설정이 완료된 뒤에는 명령프롬프트(cmd)에서 javac 명령어를 입력해서 컴파일러가 정상 실행되는지 확인합니다. 이클립스(STS, 전자정부프레임워크) 설정 Lombok 라이브러리의 안정성 때문에 이클립스를 JRE환경이 아닌 JDK환경에서 구동되도록 설정을 변경합니다. eclipse.ini(혹은 sts.ini) 파일의 상단에 아래와 같은 내용을 추가합니다. (윈도우 경로 기준) -vm JDK설치경로\bin\javaw.exe 이클립스 한글 인코..
CRUD 웹 어플리케이션은 서버의 자원을 Create, Read, Update, Delete 하도록 서비스를 구성하는데 이를 줄여서 CRUD라고 합니다. 예를들어 회원 가입(Create), 회원정보조회(Read), 회원정보수정(Update), 회원정보삭제(Delete) 를 한 세트로 묶어서 회원정보에 대한 서버 자원(DB)에 대한 서비스를 구현합니다. 이전 jsp프로젝트 처럼 새 Dynamic Web Project를 생성하여 예제를 구현해보도록 합시다. tomcat의 context path는 / 으로 지정합니다. 프로젝트 생성시 web.xml 생성 옵션을 체크합니다. 프로젝트 src 경로에 controller, dao, service, vo 패키지를 생성합니다. 그리고 .do 요청을 처리하기 위해 프론트..
MVC패턴은 어플리케이션을 Model, View, Controller 으로 작업을 분리해서 모듈간 결합도를 최소화하여 각종 변화하는 상황에 대응하면서도 부작용을 줄이고, 유지보수성도 높일 수 있는 어플리케이션 개발 디자인 패턴을 말합니다.작업을 모듈별로 나누어 작업하고 이를 결합해 주기 때문에 협업에도 유용하며, 협업시 개발자 자신이 맡은 역할에만 집중할 수 있도록 도와줍니다. View는 클라이언트와 서버간 인터페이스 역할을 하며, 클라이언트 요청을 받고 서버로부터의 결과를 표시해주는 기능을 합니다.Model은 비지니스 로직 서비스와 데이터베이스 처리를 담당합니다.Controller는 View와 Model을 연결해주는 역할을 합니다. 우선 SQL Developer 같은 DB 툴을 이용하여 오라클DB에 접..
JDK 설치 오라클 사이트에서 JDK를 다운받아서 설치합니다. 설치한 후에는 환경 변수에서 JAVA_HOME 을 등록하고 JDK가 설치된 경로를 지정해줍니다. 환경변수의 PATH에는 %JAVA_HOME%bin 으로 저장합니다. 설정이 완료된 뒤에는 명령프롬프트(cmd)에서 javac 명령어를 입력해서 컴파일러가 정상 실행되는지 확인합니다. 이클립스(STS, 전자정부프레임워크) 설정 Lombok 라이브러리의 안정성 때문에 이클립스를 JRE환경이 아닌 JDK환경에서 구동되도록 설정을 변경합니다. eclipse.ini(혹은 sts.ini) 파일의 상단에 아래와 같은 내용을 추가합니다. -vm JDK설치경로\bin\javaw.exe 이클립스 한글 인코딩(UTF-8) 확인 메뉴> Window > Preferenc..