본문 바로가기

TIL(Today I Learned)

TIL-230816(ORM, GET/POST)

📝오늘 공부한 것

  • 실전 프로젝트 - '행동대장' 나도 불편해요 버튼 기능 구현
  • 실전 프로젝트 - '행동대장' response 공통화
  • CS지식 - ORM을 사용하면서 쿼리가 복잡해지는 경우에 해결방법, GET, POST의 개념과 데이터 흐름

 

알게 된 점

✔ ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요?

 

ORM(Object-Relational Mapping) :

객체와 DB를 매핑해주는 도구

JPA 자체는 정적인 상황에서 사용하는 걸 권장하기 때문에 복잡한 쿼리와 동적인 쿼리에 대한 문제가 발생하게 된다. 그럴땐, JPQL과 Querydsl을 사용할 것을 권장하고 있다.

Object : 객체 지향 언어(Java, Python)

Relational : 관계형 데이터베이스(MySQL, H2)

 

JPQL : JPA의 일부로 Query를 Table이 아닌 entity 기준으로 작성하는 객체지향 쿼리언어

Querydsl : 정적 타입을 이용해서 SQL, JPQL을 코드로 작성할 수 있도록 도와주는 오픈소스 빌더 API

 

 

  GET, POST의 개념과 함께 데이터 흐름에 대해서 설명해주세요.

GET과 POST는 웹 애플리케이션에서 사용되는 HTTP메서드로, 클라이언트와 서버간 데이터를 주고받는 방식을 나타낸다.

 

GET :

  1. 클라이언트가 웹 브라우저를 통해 URL을 입력하거나 링크를 클릭합니다.
  2. 클라이언트가 서버에 GET 요청을 보냅니다.
  3. 요청 URL에 데이터 파라미터가 포함될 수 있습니다. 예를 들어, https://example.com/search?query=keyword.
  4. 서버는 요청을 받아 해당 URL에 맞는 리소스나 데이터를 찾습니다.
  5. 서버는 해당 데이터나 리소스를 클라이언트에게 응답으로 전송합니다.
  6. 브라우저는 받은 응답을 렌더링하여 사용자에게 보여줍니다.

주로 데이터를 검색하거나 조회할때 사용된다. URL에 데이터가 노출되므로 보안에 민감한 정보는 노출되지 않도록 주의해야한다.

 

POST :

  1. 클라이언트는 웹 폼을 작성하고 제출합니다.
  2. 클라이언트가 서버에 POST 요청을 보냅니다.
  3. 요청 본문에 데이터가 담겨져 전송됩니다.
  4. 서버는 받은 데이터를 처리하기 위한 액션을 수행합니다. (예: 데이터베이스에 새로운 데이터 삽입)
  5. 서버는 클라이언트에게 처리 결과를 응답합니다.
  6. 클라이언트는 받은 응답을 처리하고 필요에 따라 다음 동작을 수행합니다.

데이터를 생성하거나 수정하는데 사용된다. 클라이언트가 서버에게 데이터를 전달할 때 요청본문에 포함되기 때문에 URL에 데이터가 노출되지 않는다. 따라서 보안적으로 더 안전한 방식이다.

 

데이터 흐름은 클라이언트와 서버 간의 요청과 응답의 주고받음으로 이루어지며, 이를 통해 웹 애플리케이션은 사용자의 요구에 맞는 동작을 수행하고 필요한 정보를 제공한다.