
Spring Data JPA를 사용하는 경우, JPQL을 사용하여 쿼리를 직접 정의하여 복잡한 쿼리를 구현했습니다.
좀 더 자세히 설명드리면, 최근에 진행한 부탁해라는 프로젝트에서, 주문의 상태에 따라 배송중, 배송 완료 등의 상태 변경을 하는 기능을 구현했던 적이 있습니다.
해당 기능을 구현하면서, 결제 완료된 주문을 배송 중으로 변경하기 위해 JPQL을 사용하여 현재 주문 완료 상태이고, 주문 완료 상태가 된 지 하루가 지난 시점의 데이터를 한번에 조회하여 상태를 변경하도록 구현할 때, 조회 부분에서 JPQL을 사용하여 쿼리메서드로 구현하기 복잡했던 쿼리를 구현했습니다.
두 개념 모두 HTTP 메서드의 종류 중 하나입니다.
GET의 경우, 데이터 조회를 주 목적으로 사용하기 때문에, URL 또는 전달할 값이 있을 경우, 쿼리스트링을 사용하여 param 값으로 전달하여 필요 리소스를 조회합니다.
POST의 경우, 데이터 삽입/삭제/수정을 주 목적으로 사용하기 때문에, 상대적으로 요청데이터가 많습니다. 따라서, Request Body에 담아서 값을 전달한 뒤, 요청 데이터의 처리 결과를 서버로부터 응답받습니다.
OSI 7 계층은 네트워크에서 통신이 발생하는 과정을 7 단계로 나눈 것을 말합니다.
1단계~7단계까지 나열하면, 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용 계층입니다.
이렇게 나눈 목적은 통신이 일어나는 과정을 단계별로 한눈에 파악할 수 있으며, 유지 보수에도 용이하기 때문입니다.
실제 프로젝트에서 통신하는 과정을 예로 들어서 설명 드리면 다음과 같습니다.
7계층은 응용 계층으로 프로그램을 말합니다.
6계층은 표현 계층으로 암호화/복호화가 수행되는 계층을 말합니다.
5계층은 세션 계층으로 연결 관련 설정이 수행되는 계층입니다.
4계층은 전송 계층으로 양 종단 간에 신뢰성 있는 데이터를 전송하는 계층을 말합니다.
3계층은 네트워크 계층은 데이터를 빠르게 전송하는 계층을 말합니다.
2계층은 데이터 링크 계층으로 인접한 노드 간의 신뢰성 있는 데이터를 전송하는 계층을 말합니다.
1계층은 물리 계층으로 데이터를 bit로 변환하는 계층을 말합니다.