📝오늘 공부한 것
- 실전 프로젝트 - '행동대장' 나도 불편해요 버튼 기능 구현
- 실전 프로젝트 - '행동대장' 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 :
- 클라이언트가 웹 브라우저를 통해 URL을 입력하거나 링크를 클릭합니다.
- 클라이언트가 서버에 GET 요청을 보냅니다.
- 요청 URL에 데이터 파라미터가 포함될 수 있습니다. 예를 들어, https://example.com/search?query=keyword.
- 서버는 요청을 받아 해당 URL에 맞는 리소스나 데이터를 찾습니다.
- 서버는 해당 데이터나 리소스를 클라이언트에게 응답으로 전송합니다.
- 브라우저는 받은 응답을 렌더링하여 사용자에게 보여줍니다.
주로 데이터를 검색하거나 조회할때 사용된다. URL에 데이터가 노출되므로 보안에 민감한 정보는 노출되지 않도록 주의해야한다.
POST :
- 클라이언트는 웹 폼을 작성하고 제출합니다.
- 클라이언트가 서버에 POST 요청을 보냅니다.
- 요청 본문에 데이터가 담겨져 전송됩니다.
- 서버는 받은 데이터를 처리하기 위한 액션을 수행합니다. (예: 데이터베이스에 새로운 데이터 삽입)
- 서버는 클라이언트에게 처리 결과를 응답합니다.
- 클라이언트는 받은 응답을 처리하고 필요에 따라 다음 동작을 수행합니다.
데이터를 생성하거나 수정하는데 사용된다. 클라이언트가 서버에게 데이터를 전달할 때 요청본문에 포함되기 때문에 URL에 데이터가 노출되지 않는다. 따라서 보안적으로 더 안전한 방식이다.
데이터 흐름은 클라이언트와 서버 간의 요청과 응답의 주고받음으로 이루어지며, 이를 통해 웹 애플리케이션은 사용자의 요구에 맞는 동작을 수행하고 필요한 정보를 제공한다.
'TIL(Today I Learned)' 카테고리의 다른 글
TIL-230818(항해99 실전 프로젝트-행동대장(13)) (0) | 2023.08.18 |
---|---|
TIL-230817(항해99 실전 프로젝트-행동대장(12)) (0) | 2023.08.17 |
TIL-230815(항해99 실전 프로젝트-행동대장(11)) (0) | 2023.08.15 |
TIL-230814(항해99 실전 프로젝트-행동대장(10)) (0) | 2023.08.14 |
TIL-230812(항해99 실전 프로젝트-행동대장(9)) (0) | 2023.08.12 |