본문 바로가기

Java | spring68

Spring에서 JDBC가 아닌 MyBatis를 사용하는 이유 스프링을 활용하여 개발 시 직접 connection을 만들어서 자바 코드에 데이터베이스에 접근하는 형태보다는 Mybatis를 활용하는 경우가 많다. 스프링 + MyBatis + RDBMS의 조합으로 많이 사용한다. 마이바티스를 활용하면 개발이 더 편리 하기 때문이라고 한다. 그 이유에 대해 상세히 알아보자. 코드 효율성 향상 JDBC는 try~catch 처리, Statement, ResultSet의 데이터 처리를 하기 위해 많은 코드를 써야 한다. MyBatis는 SQL Mapper 라이브러리로, 스프링과 함께 사용하는 경우 반복 처리 코드 없이 간결하게 사용이 가능하다. 스프링과 마이바티스를 연계하는 라이브러리를 이용 시 직접 SQL문 호출 없이 자동화 처리가 가능하다. 하여 코드의 양이 줄어든다. S.. 2019. 7. 13.
Spring Mybatis 간단 설명 Spring을 사용하면서 Mybatis를 이용하면DB를 연동하는 것은 기존 방식에 비해 수월하게 할 수 있다. Mybatis를 매뉴얼을 따라 만들다 보면 개념보다는 사용법만 익히게 되니 개념을 정리해 보는 것도 좋다. 국내 대부분 프로젝트는 XML만을 이용해서 SQL문을 작성하고, 별도의 DAO로 만드는 방식을 선호하기 때문에 Mybatis를 XML을 사용해 작성하는 경우가 많다. Mybatis는 무엇인가? ORM(Object Relation Mapping) : 객체와 관계형 데이터 베이스 간의 매핑을 지원하는 것 개발자가 지정한 SQL, 저장프로시저,몇가지 고급 매핑을 지원하는 프레임워크 기존 JDBC를 이용하여 프로그래밍을 하면 소스안에 SQL문을 작성했지만, Mybatis에서는 SQL을 XML 파일.. 2019. 6. 13.
모든 요청을 파악하는 front Controller Front Controller 웹 어플리케이션의 정문 앞에 서서 모든 요청을 파악하는 controller 사용자의 요청을 파악하여 요청에 따른 일처리를 위한 일처리 담당자(action, service, controller) 에게 일을 맡기고 처리된 결과를 상태유지 시킨 다음 결과를 보여주기 위한 viewpage를 결정한 다음 viewpage로 이동한다. front controller 만드는 방법 서블릿을 만든다. 서블릿 맵핑에 *.do라고 쓴다(모든 .do 파일로 접속하는 경우 해당 서블릿으로 온다) get과 post인 경우 동일하게 처리를 하기 위해서는 서블릿에 메소드를 하나 만들어야 한다. proRequest(이름은 아무거나 상관 없음) 라는 메소드를 만들어서 doGet과 doPost에서 불러준다. .. 2019. 5. 18.
JSP, MVC 패턴이 무엇인가? 보통 JSP, Spring 등을 배우다 보면 MVC 패턴을 사용하게 된다. 헌데, MVC가 무엇인지 물어보면 명확히 대답하기 어려운 경우가 있다. 간혹 면접에서도 물어보는 경우가 있으니 명확히 이해를 하고 있으면 좋다. MVC 패턴 전통적인 JSP는 jsp 문서 안에 자바문법과 html태그와, 사용자 요청에 대한 정보가 하나의 jsp문서 안에서 모두 처리 되었다. 이런 방식은 jsp 문서에 너무 많은 정보가 혼합되어 있고, 프로그램 개발자와 웹디자이너가 같은 페이지에서 작업을 하게 되다 보니 협업이나 유지보수 등이 어려웠다. 이것을 해결하기 위하여 기능을 하기 위한 자바 문법과 보여주는 HTML을 분리하는 개념을 MVC 패턴이라고 한다. M : Model 어떤 일처리를 위한 자바클래스들 V : View .. 2019. 5. 18.
JSP 서블릿 한글 세팅(한글 깨짐 해결 하기) 프로그래밍을 하다 보면 영어로 만드는 경우는 문제가 없는데, 한글로 데이터가 전송 되거나 하는 과정에서 한글이 자주 깨지는 현상이 발생한다. 이런 경우에는 아래와 같이 처리하면 된다. 1. 파일의 인코딩 속성을 "UTF-8"으로 변경 2. response.setContentType("text/html;charset=UTF-8"); 예시를 통해 세팅하는 방법을 보면 쉽게 한글 깨짐을 해결 할 수 있다. 영어로 hello 서블릿으로 출력( 한글 깨짐 ) - 만약 아래 코드 hello 라는 문자열을 한글 안녕으로 바꾸면 아래와 같이 깨져서 보여진다. package com.servlet; import java.io.IOException; import java.io.PrintWriter; import javax... 2019. 5. 18.
JSP filter 흐름제어( + 로그인 유지 ex ) filter 흐름을 제어하기 위한 것 클라이언트와 서버 사이에 필터가 존재해서 들어오는 request와 response를 필터가 먼저 받아 사전 작업/사후 작업 등 공통적으로 수행되는 부분 작업할 수 있는 기능 사용자의 특정 요청 가로채어 먼저 어떤 기능을 수행시키기 위한 기술 필터 파일 사용 법 필터를 사용할 때 특정 페이지에서만 필터를 적용해야 동작이 제대로 된다. 그렇기 때문에 분류가 필요한데, 폴더를 분류해서 지정 가능 @WebFilter("*.jsp") 이렇게 쓰면 모든 jsp파일에 적용하겠다는 것 @WebFilter("/member/*") 이렇게 쓰면, member 폴더에 있는 모든 jsp에 필터를 적용하겠다고 하는것 @WebFilter(urlPatterns= {"/member2/*","/me.. 2019. 5. 18.
JSP session, 사용자 상태유지( 로그인 유지 ) 상태유지를 확인하기 위한 session 사용자의 현재 상태를 유지시키기 위하여 JSP가 제공하는 내장 객체 쿠키 방식과 달리 정보를 모두 저장하지 않고 id만을 웹 브라우저에 저장하고 서버측의 id와 브라우저의 id를 비교해 같은 값이면 서버측의 정보를 실행 예를 들어 진짜 로그인을 하고 있는지 판단하고 싶은 경우 사용 session 사용 법 사용하는 방법은 마치 map과 유사 session 객체의 값을 담는 법 setAttribute(key, value); session 객체에 담긴 값을 읽어 오는 법 Object 변수명 = session.getAttribute(key); 반환을 오브젝트로 하기 때문에 변수에 담는 경우 해당 객체로 캐스팅이 필요하다. 로그인 기능 ( session ) - DB연동 체크.. 2019. 5. 18.
JSP 문장 구성요소( 지시자, 스크립트릿, 표현식 등) jsp 문장 구성요소 jsp에서 HTML / CSS / JavaScript 이외에도 자바 문법을 사용할 수 있다. 자바 문법을 사용하면, jsp에서 컨트롤러나 서블릿 통해 전달 받은 리스트(정보배열)을 for(반복문)을 통해 정보를 뿌릴수도 있다. 지시자 jsp를 수행하기 전에 선행 처리 되어야 할 내용을 기술 지시자 page : 자바처럼 임폴트 할 때 사용 include : 이미 있는 다른 jsp를 현재의 문서에 포함 시킬 때 사용 지시자 include로 문서를 포함해서 불러오는 경우 별도의 servlet 페이지가 생성되지 않는다. 액션태그 로 쓰면 포함된 문서가 별도의 servlet 페이지가 생성된다. 스크립트릿 온갖 자바 문장이 올 수 있고, jsp 안에 여러 번 올 수 있음 하지만, jsp에서 쓰.. 2019. 5. 18.
JSP에서 중요한 get / post 방식 요청 프로그램을 만들다 보면 데이터를 어떻게 전달하는지를 명확히 알고 있어야 프로그램 개발이 가능하다. 특히 그 중에서도 가장 기본적인 부분 중 하나가 클라이언트 요청 방식인 get 과 post 방식! JSP 뿐만 아니라 파이썬, node.js 등으로 프로그래밍을 하는 경우에도 get과 post 방식을 잘 알고 있어야 프로그램을 수월하게 만들 수 있다. 일반적인 프로그램의 경우 DB와 연동하여 사용하기 때문에 적절한 데이터를 넘겨서 원하는 정보를 찾고, 사용자의 입력 정보를 DB에 저장하는 등 데이터 전송, 요청에 대한 부분은 명확히 정리를 해 놓아야 한다. 웹 어플리케이션 동작 방식 클라이언트가 서버에 요청을 하고 응답을 받는 형태로 동작 된다 요청을 하는 객체가 request 요청을 하는 방식은 2개가 있.. 2019. 5. 18.
반응형