이 내용은 아래의 정보에 해당하는 논문을 요약한 것입니다. 논문 제목: Query Optimization Techniques - Tips For Writing Efficient And Faster SQL Queries 저자 : Jean HABIMANA 출판된 저널/컨퍼런스명: INTERNATIONAL JOURNAL OF SCIENTIFIC & TECHNOLOGY RESEARCH 볼륨/페이지: VOLUME 4, ISSUE 10, 5 출판년도: 2015 1. Query Optimize Skill(Query 최적화 및 튜닝 기술) [ Tip #1: Use Column Names Instead of * in a SELECT Statement ] 테이블에서 몇 개의 컬럼만을 조회하는 경우라면, SELECT *을 ..
웹은 현재 작업중인 페이지에서 다른 페이지로 이동하기 위해 2가지 페이지 전환 기능을 제공합니다. 오늘은 2가지의 페이지 전환 방법의 차이와 사용법에 대해 알아보도록 하겠습니다. 1. Forward 방식 [ Forward 방식 ] Forward는 Web Container 차원에서 페이지의 이동만 존재합니다. 실제로 웹 브라우저는 다른 페이지로 이동했음을 알 수 없습니다. 그렇기 때문에 웹 브라우저에는 최초에 호출한 URL이 표시되고, 이동한 페이지의 URL 정보는 확인할 수 없습니다. 또한 현재 실행중인 페이지와 forward에 의해 호출될 페이지는 Request 객체와 Response 객체를 공유합니다. 위와 같이 Foward는 다음으로 이동 할 URL로 요청정보를 그대로 전달합니다. 그렇기 때문에 사..
오늘은 단일 쿼리로는 해결할 수 없는 로직을 처리할 때 필요한 개념인 트랜잭션에 대해 알아보고, Spring에서 어떻게 활용하는지 확인해보도록 하겠습니다. 1. Transaction(트랜잭션)이란? [ Transaction의 탄생 배경 ] 보다 복잡한 프로그램을 개발하다 보면 쿼리 한 줄로 해결할 수 없는 로직을 처리해야하는 경우가 많습니다. 여러 개의 쿼리가 처리되는 상황에서 문제가 생겨버린다면 시스템에 큰 결함을 남기게 됩니다. 예를 들어 쇼핑물 서비스를 구현한다고 하면 아래와 같은 로직은 한 줄로 처리하는 것이 불가능합니다. 먼저 쇼핑몰에서 상품을 구매할 때 회원의 잔여 금액이 충분한지 확인하고 잔여 금액이 상품 가격보다 높을 때 구매 로직으로 넘어가야 합니다. 그리고 상품의 재고가 있는지 확인 후..
Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있습니다. 전통적인 Spring MVC의 컨트롤러인 @Controller와 Restuful 웹서비스의 컨트롤러인 @RestController의 주요한 차이점은 HTTP Response Body가 생성되는 방식입니다. 이번에는 2가지 어노테이션의 차이와 사용법에 대해 알아보도록 하겠습니다. 1. @Controller 이해하기[ Controller로 View 반환하기 ]전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용합니다. 아래와 같은 과정을 통해 Spring MVC Container는 Client의 요청으로부터 View를 반환합니다. Clien..
일반적으로 단말기에서 필요로 하는 데이터들은 Server에서 관리합니다. 네트워크를 통해 서버로부터 데이터를 가져오기 위한 통신을 구현하기 위해서는 크게 Http 프로그래밍과 Socket 프로그래밍 2가지가 있는데, 오늘은 이 2가지 네트워크 프로그래밍 방식의 차이에 대해 알아보도록 하겠습니다. 1. 소켓(Socket) 프로그래밍 [ 소켓(Socket) 프로그래밍 이란? ] Server와 Client가 특정 Port를 통해 실시간으로 양방향 통신을 하는 방식 Socket 연결은 TCP/IP 프로토콜을 기반으로 맺어진 네트워크 연결 방식입니다. 그리고 이러한 Socket 연결 방식으로 프로그래밍 하는 것을 소켓(Socket) 프로그래밍이라고 하는데, Socket 프로그래밍은 Server와 Client가 특..