본문 바로가기

스프링 프레임 워크13

[Spring] 스프링 JPA ORM Spring Data JPA JPA(Java Persistence API) 관계형 데이터베이스에 접근하기 위한 표준 ORM 기술을 제공 EJB에서 제공 되었던 엔티티 빈(Entity Bean)을 대체하는 기술 장점 객체지향적으로 데이터 관리 비즈니스 로직에 집중할 수 있으며 객체지향 개발이 가능 테이블 생성 변경 관리가 쉽다 로직을 쿼리에 지중하기 보다 객체 자체에 집중할 수 있다 빠른 개발이 가능 단점 어렵다 잘 이해하고 사용하지 않으면 데이터 손실 발생 성능상 문제가 있을 수 있다 Spring Data 오픈 소스 프로젝트이며 Spring 관련 어플리케이션에 새로운 데이터 접근 기술을 쉽게 사용하도록 도와주는 역할 단순한 통합 처리 CRUD + 쿼리 동일한 인터페이스 페이징 처리 메소드 이름으로 쿼리 .. 2016. 6. 15.
[Spring] 스프링 웹 소켓이란? 웹 소켓으로 간단한 채팅 만들기 Web Socket WEB Socket HTTP 통신의 단점을 개선하기 위함 일방향 통신 웹 소켓은 반 영구적 양방향 통신 연결이 끊어지지 않고 지속됨 온라인 게임이 소켓 프로그래밍의 일종 HTML5의 주요 API HTTP Protocol을 기반으로 하는 웹 브라우저와 웹 서버 간의 양방향 통신을 지원하기 위한 표준 Client와 Server가 실시간으로 메시지를 자유롭게 주고 받을 수 있음 # HTTP 4 기술 (Socket 전) Apache Comet Polling 계속 문의하는 것 Client가 Server에 요청을 하면 응답을 하고 받자마자 요청한다 위의 과정을 계속 반복한다 브라우저 종료시 까지 서버에 부담이 많이 가게 된다 Long Polling 폴링의 단점을 개선한 것 요청을 하면 Server는 새로운게 있을 .. 2016. 6. 15.
[Spring] 스프링 JDBC와 OJDBC의 차이 OJDBC와 Spring JDBC의 차이 OJDBC Connection, Prepared, Statement, Result Set 등 Open / Close 작성 필요함 Close 하지 않을 경우 메모리 누수 문제 OJDBC의 Statement를 사용함으로써 SQL Injection 위험이 따름 쿼리가 지저분해지며 추상화가 어려움 추상화가 어려우므로 수정 / 확장에 큰 어려움 발생 Connection-Pool 지원하지 않아 쿼리 수행 속도가 떨어짐 Connection을 필요할 때 마다 일일이 생성 하나의 Connection을 사용한다면 동시성 문제 발생 병목 현상이 지속적 발생 업무 단위의 Transaction이 지원되지 않음 단일 쿼리의 Transaction은 지원 ex) 출금 혹은 송금 등의 Tran.. 2016. 6. 14.
[Spring] 스프링 ORM 마이바티스 MyBatis ORM : MyBatis ORM (Object Relation Mapping) Object와 DB를 연동하기 위함 MyBatis를 위해서 VO를 테이블 구조와 같이 만듬 Mapping이란 CRUD를 뜻함 # 기존의 JDBC와의 차이점 VO에 필드명을 적으면 그거에 맞는 데이터가 Mapping이 된다 ResultSet을 통한 getInt 등을 할 필요가 없다 # ORM의 종류 MyBatis iBatis JPA Hibernate MyBatis와 iBatis 사용 빈도가 높음 # MyBatis 연동 Spring 4에서는 MyBatis/iBatis 연동 기능 포함되지 않음 대신 MyBatis가 Spring 연동 지원 iBatis는 지원하지 않는다 우선 pom.xml에서 추가를 한다 Build와 Dependenc.. 2016. 6. 12.