본문 바로가기

Java | spring71

알고는 써야지! 기본 spring annotation 종류 스프링을 사용하다 보면 메서드나 클래스, 변수 위에 @ 이 붙은 것들을 보게 된다. 안쓰면 제대로 안 돌아가서 다른 사람 코드를 보고 처음에는 쓰게 되는데 막상 이 annotation이 뭔지 물어보면 대답을 명확하게 하지 못하는 경우도 간혹 있다. 쓸꺼면 알고 쓰자! 사실 면접 볼때 나의 github 소스코드를 보다가 면접관이 이 어노테이션은 뭔지 알고 있냐고 물어본적이 있어서 대충 대답한 기억이 있어서 정리해봤다. 코드를 쓰려면 제대로 알고 써야 저런 당황스러운 경험을 하지 않을 수 있다. 나만 모를수도 있지만 이런게 있구나 하면서 한번 정리하면 좋을 것 같다. 기본중의 기본 어노테이션만 정리해봤다. annotation이란? 사전적 의미로, 주석이라는 뜻이다. @를 이용하여 자바코드에 추가하여 의미를 .. 2021. 5. 17.
Model 2 방식과 스프링 MVC 모델 2 방식은 흔히 MVC 구조를 응용한 방식이라고 하는데, 핵심은 '화면과 데이터 처리를 분리해서 재사용이 가능하도록 하는 구조' 모델 2 패턴의 이해 모델(Model) : 데이터 혹은 데이터를 처리하는 영역 뷰(View) : 결과 화면을 만들어 내는데 사용하는 자원 컨트롤러(Controller) : 웹의 요청(request)을 처리하는 존재로 뷰와 모델 사이의 중간 통신 역할 모델2 에서 모든 요청은 기본적으로 컨트롤러를 호출 / 컨트롤러는 자신을 호출하는 특정한 URI 경로를 가지고 있으며, 과거에는 주로 호출 시에 마지막 확장자를 *.do 등을 이용하는 방식을 많이 사용 모델 2 방식의 장점 개발자와 웹 퍼블리셔의 영역을 분리 가능 컨트롤러의 URL을 통해서 뷰를 제어하기 때문에 뷰의 교체나 변.. 2021. 5. 14.
스프링 MVC의 주요 구성 요소 스프링 MVC의 주요 구성 요소 DispatcherServlet 클라이언트의 요청을 전달받아 컨트롤러에게 클라이언트의 요청을 전달하고 컨트롤러가 리턴한 결과 값을 View에 전달하여 알맞은 응답을 생성하도록 한다. front controller와 동일 클라이언트의 요청을 중앙에서 처리하는 스프링 MVC의 핵심 구성요소 web.xml에 한 개 이상의 DispatcherServlet을 설정 각 DispatcherServlet은 한 개의 WebApplicationContext를 갖게 된다. HandlerMapping 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지를 결정한다. 컨트롤러(Controller) 클라이언트의 요청을 처리한 뒤, 그 그결과를 DispatcherServlet에게 알려준다. 스트럿츠의.. 2021. 5. 14.
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.
반응형