Spring

Spring

[Spring] AJAX

AJAX (Async Javascript and XML) - 비동기 자바스크립트와 XML (요즘엔 JSON을 많이 사용) - 해당 웹 페이지를 새로고침하지 않고 요청을 보내 응답 받은 내용을 현재 페이지에 반영할 수 있는 문법 - 주로 @RestController에 요청을 보내 데이터만 가져와서 활용하는 방식으로 사용한다. - 서버로부터 데이터를 응답받을 때마다 이벤트가 발생하고 해당 이벤트를 처리하여 사용한다. XMLHttpRequest - 자바스크립트의 비동기 통신 요청 객체 - 요청을 보내도 페이지가 새로고침 되지 않는다. - 인스턴스를 생성한 후 해당 인스턴스에 여러 설정을 한 뒤 요청을 보낸다. xhttp.open(method, url) - 첫 번째 파라미터에는 요청 방식을 설정한다. (GET,..

Spring

[Spring] 에러 처리 컨트롤러

web.xml에 다음과 같이 에러페이지를 등록할 수 있다. 404 /error/notfound - 해당 에러 코드 발생 시 포워드 처리가 아니라 리다이렉트 처리이므로 컨트롤러에서 별도 처리가 필요하다. 에러 처리 컨트롤러 @RequestMapping("/error") @Controller public class ErrorController { @GetMapping("/notfound") void notFound() { } }

Spring

[Spring] JSON

JSON - JavaScript Object Notation - 언제든지 자바스크립트 오브젝트로 변환할 수 있는 문자열 형식 - 다양한 다른 언어들의 객체로 변환하기에도 편리하기 때문에 객체들의 공용어로 활용되고 있다. - 언어에 종속되어 있지 않은 공통 규격 자바에서 JSON 활용하기 com.googlecode.json-simple json-simple 1.1.1 JSONParser - JSON 형식 문자열을 JSONObject로 변환하는 기능을 가진 클래스 - 문자열로 전달하거나 Reader를 전달하여 사용할 수 있다. JSONObject - 자바의 Map처럼 사용할 수 있는 객체 - 해당 객체에 값들을 추가한 후에 .toJSONString()을 호출하여 JSON 형식의 문자열을 얻을 수 있다. - ..

Spring

[Spring] REST API

REST - HTTP URI로 해당 자원을 식별하고 HTTP method로 해당 자원에 대한 CRUD를 구분하여 자원만 리턴하는 방식 - HTML 뷰 페이지가 아닌 자원만 응답하기 때문에 웹 브라우저가 아닌 프로그램에서도 서버를 활용할 수 있다는 장점이 있다. - Create, Insert (POST method) POST:/employee - 새 사원을 추가한다. - Read, Select (GET method) GET:/employee/105 - 105번 사원을 조회한다. - Update (PUT method) PUT:/employee/183 - 183번 사원을 수정한다. - Delete (DELETE method) DELETE:/employee/170 - 170번 사원을 삭제한다. Spring RE..

Spring

[Spring] Log4jdbc

Log4jdbc - jdbc에서 발생하는 작업들을 로그로 찍어주는 라이브러리 - 디버깅이 매우 수월해진다. 적용 순서 1. pom.xml에 등록 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 2. jdbcUrl, driverClassName 설정 (root-context.xml) 3. resources에 파일 추가 파일명: log4jdbc.log4j2.properties 파일내용: log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator 4. log4j.xml에 logger 추가 jdbc.sqlonly : 실행하는 SQL문을 출력한다. jdbc.sqltiming : 실행하는 ..

Spring

[Spring] 프로젝트 계층 분리

프로젝트 계층 - 프로젝트를 구성하는 소스 코드들을 계층별로 분리한 것 - 화면 계층 (Presentation Layer) - 비즈니스 계층 (Business Layer) - 영속 계층 (Persistence Layer) 화면 계층 - 화면에 보이는 코드를 작성하는 계층 비즈니스 계층 - 고객의 요구사항과 관련된 내용을 구현하는 계층 - 하나의 요청이 여러개의 비즈니스 로직을 요구하거나 하나의 비즈니스 로직이 여러 요청에서 사용되는 경우가 있기 떄문에 계층의 분리가 필요하다. 영속 계층 - 저장되어있는 데이터를 꺼내오는 작업을 구현하는 계층 - 하나의 비즈니스 로직이 데이터에 여러번 접근해야하는 경우도 있고 하나의 데이터가 여러 비즈니스 로직에 사용되는 경우가 있기 때문에 계층의 분리가 필요하다. 스프링..

Spring

[Spring] Mybatis

Mybatis - 쿼리문만 적으면 알아서 DB에서 데이터를 꺼내오는 프레임워크 - 거의 모든 jdbc 관련 코드를 자동으로 생성해준다. - 개발자는 사용할 쿼리문과 종류만 선택하면 된다. 필요한 의존성(dependency)들 - mybatis - mybatis-spring - spring-jdbc 적용 순서 1. DBCP로 DataSource 객체를 생성한다. 2. 생성한 DataSource 객체를 전달해 SqlSessionFactoryBean 객체를 생성한다. (컨텍스트상에 sqlSessionFactory가 있으면 mybatis가 알아서 필요할 때 가져다 사용한다.) 3. mybatis-spring:scan 기능을 통해 패키지의 위치를 지정한다. pom.xml에 mybatis 적용법 root-conte..

Spring

[Spring] Connection Pool

DBCP (Database Connection Pool) - DB로 작업을 수행할 때마다 새로운 DB 연결을 생성하는 것이 자원의 낭비가 되기 때문에 연결들을 미리 생성해두는 객체 - 커넥션풀을 사용하면 DB와의 연결을 맺고 끊는 과정이 생략되기 때문에 (대신 빌리고 반환하며 사용) 서버 성능이 크게 향상된다. - DB와의 접속이 갑자기 활발해지면 연결을 더 늘리거나 한적해지면 연결을 다시 최소한으로 유지하는 등의 기능을 제공한다. 유명한 자바 DBCP 라이브러리들 - Apache Commons DBCP - Hikari CP - ... pom.xml에 Hikari 적용하는 법 Hikari root-context.xml 설정법 (객체 생성) Hikari DB Connection 설정법 (객체 생성) pac..

로아다
'Spring' 카테고리의 글 목록