본문 바로가기

웹 개발67

[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] 스프링 다이나믹 쿼리 Dynamic Query Dynamic Query Spring의 장점인 쿼리에서 조건문을 통해서 다른 조건이 대입해서 중복되는 쿼리들을 최소화 시킬 수 있다 문법은 JSTL과 비슷하다 # Dynamic Query 종류 if choose java의 else if 격 trim foreach 잘 사용되지 않지만 가끔 사용할 곳이 있다 # IF MyBatis에서 가장 많이 사용되는 요소, 파라미터로 받아온 값을 조건절로 걸러서 조건절 등을 추가할 때 사용한다 파라미터 타입 안에 다른 타입(클래스)가 포함되어 캡슐화를 이룰 경우 .(dot) 연산자로 변수 접근이 가능하다 # Choose else if 가 없기 때문에 choose로 사용된다 로 로 크게 감싸고 으로 조건을 걸고 로 기타를 거른다 # Trim (where, set) 여러 구.. 2016. 6. 13.