전체 글
-
Naver Maps openAPI (1) -JSON미니 2023. 6. 23. 01:50
1. json이란? >JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식 >Javascript에서 객체를 만들 때 사용하는 표현식을 의미한다. >JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용한다. >JSON은 데이터 포맷일 뿐이며 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법일 뿐이다. 2. json문법 1. JSON 데이터는 이름과 값의 쌍으로 이루어집니다. 2. JSON 데이터는 쉼표(,)로 나열됩니다. 3. 객체(object)는 중괄호({})로 둘러쌓아 표현합니다. 4. 배열(array)은 대..
-
Servlet-JSP MVC04 (2) - handlerMapping and viewResolverWeb/Servlet-JSP 2023. 6. 16. 11:40
- (1)번에서 만들었던 frontcontroller를 더 수정해보자. - frontcontroller의 역할을 다시한번 상기하자면, > 요청받기, 공통부분처리, pojo 메서드호출, view연결이다. - 이러한 역할들 중에 pojo를 호출하는 분기문을 handlerMapping을 적용하여 더 깔끔하게 정리해보도록하자. - 또한 viewresolver를 적용해보자. 1. HandlerMapping -사용자 요청과 이를 처리할 pojo를 맵핑시켜주는 역할을 담당한다. -이전에 분기문으로 사용자 요청을 확인하고, 이에 따라 적절한 pojo를 연결하는 작업을 frontcontroller내에서 했는데 이를 따로 떼어두는 것이다. public class HandlerMapping{ private HashMap m..
-
Servlet-JSP MVC04(1) - FrontController and POJOWeb/Servlet-JSP 2023. 6. 16. 10:10
1. FrontController - 지금까지는 클라이언트 요청을 처리하기 위해 여러 컨트롤러(서블릿)이 존재했다. - 컨트롤러가 많은 것은 유지보수를 어렵게 만든다. - 만약 컨트롤러가 클라이언트의 요청을 받을때 공통으로 처리해야하는 부분이 있다면, 모든 컨트롤러에 공통코드를 추가해야할 것이다. 이는 유지보수를 어렵게 만든다. - 따라서, 이러한 점을 보완하기 위해 클라이언트로부터 모든 요청을 먼저 받고, 공통부분을 처리한 뒤에 요청을 넘기는 역할을 하는 것이 FrontController이다. @WebServlet("*.do") public class FrontController extends HttpServlet { protected void service(HttpServletRequest reque..
-
Servlet-JSP MVC05 - JDBC to MybatisWeb/Servlet-JSP 2023. 6. 14. 17:58
이제 기존 JDBC를 Mybatis로 교체해보자. 1. SqlSessionFactory(Connection Pool) 객체 얻기 Mybatis의 중요한 특징 중 하나는 Connection Pool을 이용하여 DB 연결과 해제 시간을 줄여준다는 것이다. 다음과 같은 방법으로 Connection Pool을 얻을 수 있다. public class MemberDAO { private static SqlSessionFactory sqlSessionFactory; //Connection Pool을 가리킬 참조변수 //초기화 블럭 static { try { String resource = "kr/bit/mybatis/config.xml"; // 미리만들어둔 config.xml파일 (경로/로구분) InputStream..
-
Servlet-JSP MVC05 - mybatis 설치 및 기본설정Web/Servlet-JSP 2023. 6. 14. 17:06
1. 기존 JDBC의 문제 - Connection 객체 얻는 과정에서 코드 내 중요정보 노출 위험 (url정보, user, password 등) - sql문과 java코드가 섞여있어서 개발을 어렵게 만들고, 유지보수가 어렵다 (ex sql에 테이블명이 바뀌는 경우 일일이 수정해줘야한다.) - 속도가 늦다 JDBC에서 Connection을 얻고 해제하는 부분이 시간이 많이 걸린다. -> 이러한 JDBC 기존의 문제를 보완할 수 있는 api가 mybatis api이다. 2. Mybatis API (SQL Mapping Framework) mybatis는 자바소스코드와 sql을 맵핑시키는 api이다. - 자바 소스와 sql을 분리시키고, 이를 연결해서 사용할 수 있게 만드는 API이다. - Connection..
-
Servlet - JSP MVC03 - JSTL and ELWeb/Servlet-JSP 2023. 6. 13. 22:48
1. JSTL이란? JSTL은 - JSP Standard Tag Library jsp에 프로그래밍적인 요소를 태그적인 요소로 바꿀 수 있도록 하는 도구이다. 기존의 등의 jsp에 코드적인 요소를 html태그적인 요소로 바꾸어 좀 더 유지보수하고, 사용하기 편하게 만드는 라이브러리이다. 먼저 jstl을 사용하기 위해서는 외부에서 라이브러리를 받아와야한다. 2. JSTL사용법 JSTL을 사용하기 위해서는 jsp페이지 상단에 아래와 같은 지시자를 포함시켜줘야한다. "c"는 jstl 태그를 사용할 때 접두사로 사용하는 것이다. (다양한 태그들을 식별하기 위함이다.) jstl의 태그는 크게 4가지로 분류되는데 1. 코어태그: for,if,변수 선언 등 기본적인 자바코드 지원 2. FMT: 포맷팅, 날짜, 통화 시..
-
Servlet-JSP MVC03 (1) - forward and RedirectWeb/Servlet-JSP 2023. 6. 13. 21:35
클라이언트 요청을 적절히 처리하고 응답하기 위해 현재 페이지를 전환해야할 때가 있다. 특히 MVC패턴에서는 요청받는 페이지와 응답하는 페이지가 다를 수 있기 때문에 페이지 전환이 자주 일어난다. 이러한 웹에서 페이지 전환 기법은 크게 forward기법과 redirect 기법이 있다. 1. forward기법이란? > 포워드는 Web Container 차원에서 페이지의 이동을 의미한다. > 웹 브라우저에서는 최초 호출한 URL이 표시되고, 이동한 페이지 URL 정보는 확인할 수 없다. > 포워딩 호출 페이지와 호출된 페이지는 같은 Reqeust와 Response를 공유한다. > 단어 그대로 건내주는 것으로 Redirect와는 다르게, 최초 요청과 요청정보가 유지되어 URL에 변화가 없다. > 단순조회나 검색..
-
객체지향 - 캡슐화언어/JAVA 2023. 6. 12. 21:14
캡슐화: 서로 연관있는 속성과 기능들을 하나의 캡슐(capsule)로 만들어 데이터를 외부로부터 보호하는 것 캡슐화의 기능 데이터 보호 - 외부로부터 클래스에 정의된 속성과 기능들을 보호 데이터 은닉 - 내부의 동작을 감추고 외부에는 필요한 부분만 노출 1. 캡슐화는 왜 하는걸까? 구조체,함수들을 이용한 구조적인 프로그래밍을하면, 기존의 절차지향적인 프로그래밍보다 좀 더 구조화된 프로그램을 만들 수 있었다. 하지만, 구조적 프로그래밍은 함수의 개체수가 많아지게 되고 이때 함수를 어떤 기준으로 수납할 것인가?하는 문제가 발생하게 된다. 함수는 크게 1. 기능 2. 데이터 두개의 기준으로 나눌 수 있을 것이다. 이때 데이터에 따라 함수를 분리하면 구조화된 데이터를 사용하는 함수 모듈의 독립성을 침해하는 문제..