이 포스팅은 웹 애플리케이션 서버(WAS)가 데이터베이스(DB)에게 정보 요청하는 과정을 다룹니다.
웹 클라이언트, 웹 서버, 웹 애플리케이션 서버 그리고 데이터베이스
이 포스팅은 웹 애플리케이션을 크게 4가지로 구분하여 설명합니다. 웹 클라이언트 클라이언트, 즉 고객이라는 의미입니다. 하지만 실제 하는 사람이 인터넷 속으로 들어가서 서버와 통신 할
mokojiblog.tistory.com
웹 애플리케이션 서버는 무슨 데이터를 요청할까?
지난 포스팅의 WAS 역할을 간단히 요약하면, 사용자마다 적절한 정보를 제공합니다. 이는 동적 페이지라고도 합니다. 정적 페이지의 예시인 웹 서버와 다르게, 동적 페이지는 DB에 저장된 데이터를 활용하지요. 서버가 사용자를 구분하는 대표적인 방식으로 계정정보가 있겠지요. 또, 계정에 따라 필요한 정보는 다양합니다. 예를 들어, 커뮤니티에서 지난 게시글 보기, 유튜브에서 좋아요 누른 영상 보기, 쇼핑몰에서 상품 정보, 구매 내역 열람 등
웹 애플리케이션 서버는 어떻게 요청할까?
서버는 이 요청을 SQL 쿼리 사용합니다. 이미 SQL문법을 정리한 영상이나 글이 많으니까 위의 4가지 예시를 쿼리로 써보겠습니다.
지난 게시글 보기 쿼리
query = "SELECT title, content FROM board WHERE accountID ='mokoji' ORDER BY board_date DESC";
좋아요 누른 영상 보기 쿼리
query = "SELECT title FROM liked-list WHERE accountID = 'mokoji'";
상품 정보 쿼리
query = "SELECT product_name, product_detail FROM product_list ORDER BY price";
구매 내역 열람 쿼리
query = "SELECT * FROM order WHERE accountID = 'mokoji' ORDER BY order_date DESC"
개인적으로 예시를 모아두고 공통점을 찾아보는 방식을 좋아해서 나열해 봤습니다. Select와 from이라는 단어가 공통적으로 쓰였고 where과 order by도 많이 쓰였네요. 지난 게시글 보기 예시를 5등분으로 구분하여 순서대로 살펴봅시다. 1. 제목과 내용을 가져와라(select), 2. board라는 테이블에서(from), 3. mokoji라는 유저의 글에 한하여(where), 4. 날짜 순으로 보여라(order by) 5. 내림차 순으로 정렬해라(DESC). 알기 쉽지요?
그리고 title, content, accountID, board_date는 데이터베이스에서 미리 지정해 준 칼럼 이름입니다. 특이하다면, 구매 내역 열람 쿼리에서 *라는 특수문자를 사용하고 있는데 이는 all을 뜻 합니다. 이때, 테이블 내의 모든 칼럼을 가져옵니다.