본문 바로가기

분류 전체보기115

[Spring] 간단한 쇼핑몰 예제 도메인 설계 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품의 재고 관리 상품 종류로는 도서, 음반, 영화 (카테고리) 상품 주문시 배송 정보 입력 도메인 모델과 테이블 설계 회원, 주문, 상품의 관계 : 회원은 여러 상품 주문 가능 (주문 ↔️ 상품 다대다 관계) 하지만 다대다 관계는 관계형 데이터베이스와 엔티티에서 거의 사용하지 않는다. 위 그림처럼 주문 상품이라는 엔티티를 추가해서 일대다, 다대일 관계로 풀어낸다. 상품 분류 : 도서, 음반, 영화는 상품이라는 공통 속성을 사용하므로 상속 구조로 표현한다. 회원(Member): 이름과 임베디드 타입인 주소(Address), 그리고 주문(orders) 리스트.. 2023. 7. 23.
[HTTP] 캐시와 쿠키는 서로 같은걸까? 전혀 아닙니다. 캐시 (Cache) 캐시는 데이터나 정보를 일시적으로 저장해두는 임시 저장소입니다. 주로 웹 브라우저와 웹 서버 사이에서 사용됩니다. 웹 페이지를 방문할 때, 웹 브라우저는 웹 서버로부터 웹 페이지의 데이터를 요청하고, 서버는 해당 데이터를 응답합니다. 이때, 웹 브라우저는 받은 데이터를 캐시에 저장해두면, 같은 페이지를 다시 방문할 때에는 서버로부터 데이터를 다시 요청하지 않고, 캐시에서 데이터를 바로 불러와서 빠르게 페이지를 로드할 수 있습니다. 이렇게 함으로써 네트워크 부하를 줄이고, 빠른 웹 페이지 로딩을 가능하게 합니다. 쿠키 (Cookie) 쿠키는 클라이언트(주로 웹 브라우저)에 저장되는 작은 데이터 조각입니다. 서버는 클라이언트에게 쿠키를 생성하도록 지시할 수 있고, 클라이언.. 2023. 7. 21.
[HTTP] 캐시 검증 헤더 캐시 데이터와 서버 데이터가 같은지 검증하는 데이터 Last-Modified , ETag 조건부 요청 헤더 검증 헤더로 조건에 따른 분기 If-Modified-Since: Last-Modified 사용 If-None-Match: ETag 사용 조건이 만족하면 200 OK 조건이 만족하지 않으면 304 Not Modified Last-Modified 캐시 유효 시간이 초과해도, 서버의 데이터가 갱신되지 않으면 304 Not Modified + 헤더 메타 정보만 응답(바디X) 클라이언트는 서버가 보낸 응답 헤더 정보로 캐시의 메타 정보를 갱신 클라이언트는 캐시에 저장되어 있는 데이터 재활용 결과적으로 네트워크 다운로드가 발생하지만 용량이 적은 헤더 정보만 다운로드 단점 날짜 기반의 로직 사용 데이.. 2023. 7. 21.
[HTTP] 쿠키 Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답) Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달 사용처 사용자 로그인 세션 관리 광보 정보 트래킹 쿠키 정보는 항상 서버에 전송됨 네트워크 트래픽 추가 유발 최소한의 정보만 사용(세션 Id, 인증토큰) 서버에 전송하지 않고, 웹 브라우저 내부에 데이터를 저장하고 싶으면 웹 스토리지 참고 -> 대부분 이를 사용하는 중.. 주의! 보안에 민감한 데이터는 저장하면 안됨(주민번호, 신용카드 번호 등등) 2023. 7. 21.