웹개발

    [Spring] Spring에서의 REST 컨트롤러 사용 및 JSON 객체를 이용한 REST 방식의 Ajax 이용

    - Ajax(JavaScript) https://tadaktadak-it.tistory.com/93 [JSP] Ajax(Asynchronous Javascript and XML), GET/POST 방식 * GET 방식과 POST 방식 - GET이 기본이고 필요할 때 POST 사용 - 전송할 데이터 양이 적고 노출되어도 무방하다면 GET 방식을 기본으로 사용하고, 전송할 데이터의 양이 크거나 노출이 되면 안 될 데이 tadaktadak-it.tistory.com - REST, JSON, Ajax(jQuery) https://tadaktadak-it.tistory.com/114 [Spring] REST(Representational State Transfer), JSON(JavaScript Object No..

    [Spring] REST(Representational State Transfer), JSON(JavaScript Object Notation), Ajax(jQuery)

    1. REST란? "하나의 URI는 하나의 고유한 리소스를 대표하도록 설계된다." REST(Representational State Transfer) 란 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미하며 자원의 표현과 상태(정보) 전달을 하는 것 URI를 통해 자원을 명시하고, HTTP Method(GET, POST, DELETE, PUT...)를 통해 자원에 대한 행위(CRUD Operation)를 적용하고 자원을 JSON, XML, TEXT ... 들 여러 형태의 표현으로 나타내어 데이터를 주고 받는다. CRUD Operation Create : 생성(POST) Read : 조회(GET) Update : 수정(PUT, PATCH) Delete : 삭제(DE..

    [Spring] MyBatis의 동적 태그, <![CDATA[ ]]>

    - MyBatis를 이용해서 같은 형태의 분류만 다른 쿼리를 사용해야 할 때 id만 다르게 쿼리를 여러 개 작성해야 할 때가 있다. - 이러할 때에는 동적 태그를 이용해서 하나의 쿼리문으로 여러 경우의 다른 쿼리를 전송할 수 있다. - MyBatis의 동적 태그에는 if, choose(when, otherwise), where, trim, foreach가 있다. 1. if //내용 2. choose, when, otherwise //내용 //... //내용 3. where - 내부의 내용이 없으면 where절을 없애준다. select * from spring_board boardnum=#{boardnum} select * from spring_board boardnum=#{boardnum} 4. trim..

    [Spring] Controller의 매개변수 사용, redirect, Controller Test 환경

    1. Controller의 매개변수 사용 Controller에서 필요한 정보를 쿠키로 저장하거나 세션으로 저장하기 위해서는 HttpServletRequest나 HttpServletResponse를 사용했다. 스프링에서도 역시나 쿠키나 세션처럼 HttpServletRequest나 HttpServletResponse을 사용할 때가 있다. 이럴 때는 Model을 매개변수에 선언해서 사용하는 것처럼 매개변수로 선언해준 다음에 사용하면 된다. JSP 때처럼 선언한 것을 그대로 가져와서 필요한 대로 사용하면 된다. 2. Redirect 데이터의 변환이 있을 때는 request의 데이터를 초기화하고 페이지를 이동하는 Redirect의 방법을 써야 한다. 스프링도 역시 이 방법을 이용해서 페이지를 이동해야 한다. 기존..

    [Spring] 명명 규칙, Service, domain

    1. Naming Convention(명명 규칙) - 패키지명 : com.ssjae - 요소별 명명 : config : 프로젝트와 관련된 설정 클래스들의 보관 패키지 controller : 스프링 MVC의 Controller들의 보관 패키지 service : 스프링 Service 인터페이스와 구현 클래스 패키지 domain : VO, DTO 클래스들의 패키지 persistence : MyBatis Mapper 인터페이스 패키지(데이터계층 패키지) exception : 웹 관련 예외처리 패키지 aop : 스프링의 AOP 관련 패키지 security : 스프링 Security 관련 패키지 util : 각종 유틸리티 클래스 관련 패키지(개발하기를 위해 도움이 되는 클래스들) 2. Service Controll..

    [Spring] Exception 처리, 스프링 MVC 프로젝트의 기본 구성(3-tier)

    1. Exception 처리 백단에서의 예외 처리 AOP(관점 지향 프로그래밍) 각 요청마다 예외 처리를 해주는 것이 아니라 하나로 묶어서 다른 곳으로 보내줘서 예외 처리를 해준다. 2. @ControllerAdvice 예외 사항을 전부 매번 마다 핸들링해야 한다면 중복적이고 많은 양의 코드를 작성해야 하지만, 공통적인 예외사항에 대해서는 별도로 @ControllerAdvice를 이용해서 분리한다. AOP를 이용하는 방식 백단, 즉 Controller에서 문제가 생기거나 예외가 발생하면 예외 처리를 이 클래스에서 한다는 것을 어노테이션을 통해 명시를 해준다.(@ControllerAdvice) 그렇게 하기 위해서는 root-context.xml 에다가 미리 예외가 발생하면 이 클래스로 오라고 길을 미리 알..

    [Spring] 스프링 MVC Controller의 특징, Postman

    1. 스프링 MVC Controller 특징 HttpServletRequest, HttpServletResponse를 거의 사용할 필요 없이 기능 구현 다양한 타입의 파라미터 처리, 다양한 타입의 리턴 타입 사용 가능 GET 방식, POST 방식 등 전송 방식에 대한 처리를 어노테이션으로 처리 가능 상속/인터페이스 방식 대신 어노테이션으로 간단하게 설정 가능 2. Postman(포스트맨) GET 방식은 주소창에 적어서 언제든지 사용 가능하지만 POST 방식은 죽어다 깨어놔도 Form을 이용해서 사용 가능하다. 그래서 사용하는 툴이 Postman이다. https://www.postman.com/downloads Download Postman | Get Started for Free Try Postman f..

    [Spring] 스프링 구동 순서/과정, MVC 구조, Front-Controller 패턴

    1. 스프링 MVC 기본 구조 스프링 프레임워크는 하나의 기능을 위해서만 만들어진 프레임워크가 아닌 '코어'라고 할 수 있는 여러 서브 프로젝트들을 결합해서 다양한 상황에 대처할 수 있도록 개발하였다. 그중 하나가 MVC 구조이다. 스프링 MVC [Spring MVC] - WEB 관련 영역 [Spring Core] - 일반 JAVA 영역(POJO) [Spring-MyBatis] [DB] 2. 스프링의 구동 순서, 과정 - 프로젝트 구동은 web.xml 에서 시작한다. web.xml 상단에는 가장 먼저 구동되는 Context Listener가 등록되어 있다. ContextLoaderListener는 해당 웹 어플리케이션을 구동하게 되면 같이 작동이 시작되므로 해당 프로젝트를 실행하면 가장 먼저 로그를 출력..

    [Spring] 스프링 프레임워크에서 MyBatis 사용

    1. MyBatis 연결 https://tadaktadak-it.tistory.com/98 [JSP] MyBatis 1. MyBatis - 모델(객체)과 DB(테이블)의 매개체 역할의 프레임워크 - ORM(Object Relational Mapping) - Java 소스코드 안에 SQL문을 작성하면 코드가 길어지고 섞여 있어서 유지보수 및 분업이 어려움 - MyBatis.. tadaktadak-it.tistory.com root-context.xml에 hikari객체로 만든 DataSource를 추가해주고 DataSource로 SqlSessionFactory를 추가해줘야 한다. // root-context.xml에 추가 // hikari 객체 // DataSource 객체 // SqlSessionFact..

    [Spring] 스프링 프레임워크에서 DB 연결

    1. JDBC로 직접 연결 package com.koreait.persistence; import java.sql.Connection; import java.sql.DriverManager; import org.junit.Test; import lombok.extern.log4j.Log4j; @Log4j public class JDBCTests { // static 블럭 : 클래스 로딩시 딱 한번만 수행되는 영역, 프로젝트 빌드시 가장 먼저 수행되는 영역이다. static { try { Class.forName("com.mysql.cj.jdbc.Driver"); } catch (ClassNotFoundException e) { System.out.println(e); } } @Test public voi..