분류 전체보기 59

지연 로딩과 조회 성능 최적화

간단한 주문 조회 V1: 엔티티를 직접 노출 OrderSimpleApiController package jpabook.jpashop.api; import jpabook.jpashop.domain.Address; import jpabook.jpashop.domain.Order; import jpabook.jpashop.domain.OrderStatus; import jpabook.jpashop.repository.*; import lombok.Data; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotatio..

backend/springboot 2024.04.19

연결 리스트

연결 리스트 원소들을 저장할 때 그 다음 원소가 있는 위치를 포함시키는 방식으로 저장하는 자료구조, 원소들은 이곳 저곳에 흩어져 있음 성질 k번째 원소를 확인/변경하기 위해 O(k) 필요 임의의 위치에 원소를 추가/제거는 O(1) 원소들이 메모리 상에 연속해있지 않아 Cache hit rate가 낮지만 할당 다소 쉬움 연결 리스트의 종류 단일 - 각 원소가 자신의 다음 원소의 주소 이중 - 각 원소가 자신의 이전 원소와 다음 원소의 주소 list 원형 - 끝과 처음 연결 배열 vs 연결리스트 list #include using namespace std; int main(void) { list L = {1,2}; // 1 2 list::iterator t = L.begin(); // t는 1을 가리키는 중..

algorithm/정리 2024.04.17

배열

정의와 성질 배열 - 메모리 상에 원소를 연속하게 배치한 자료구조 성질 O(1)에 k번째 원소를 확인/변경 가능 추가적으로 소모되는 메모리의 양(=overhead)가 거의 없음 Cache hit rate가 높음 메모리 상에 연속한 구간을 잡아야해서 할당에 제약 임의의 위치에 원소 추가, 제거 - O(N) 사용팁 fill(arr, arr+arr.size(), 0); //0으로 채워줌 STL vector 배열과 거의 동일한 기능, 배열과 달리 크기를 자유자재로 늘이거나 줄일 수 있음 #include using namespace std; int main(void) { vector v1(3, 5); // {5,5,5}; cout

algorithm/정리 2024.04.17

Session을 사용한 로그인 구현

세션(Session) 일정 시간동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술 쿠키는 사용자의 정보를 사용자 컴퓨터 메모리에 저장하지만 세션은 서버측에 저장 세션을 사용한 로그인 구현 개념 로그인 성공 시 세션을 하나 생성 이 세션의 Key 값은 UUID(중복되지 않는 랜덤값, 예측 불가)로 설정 Value 값에 사용자 정보 넣음 생성한 세션을 서버측 세션 저장소에 보관 세션의 Key값(UUID)을 쿠키를 통해 사용자에게 전달 사용자는 로그인 성공 이후 다른 요청을 할 때마다 이 쿠키를 서버에 같이 보내줌 서버 측에서 사용자에게 쿠키를 통해 UUID 값을 받는다면 전달받은 UUID를 Key 값으로 갖는 세션을 서버측 세션 저장소에서 검색 세션 저장소에..

backend/springboot 2024.04.16

99클럽 코테 스터디 16일차 TIL - 프로그래머스 신고 결과 받기

#include using namespace std; vector solution(vector id_list, vector report, int k) { vector answer; map reportList; map reportUser; set temp; for(string id : id_list){ reportList.insert(pair(id, temp)); reportUser.insert(pair(id, 0)); } for(string s: report){ stringstream ss(s); string x, y; ss >> x >>y; set name = reportList.at(x); name.insert(y); reportList.erase(x); reportList.insert(pair(x,..

Cookie를 사용한 로그인 구현

쿠키(Cookie) 사용자가 웹사이트 접속시 사용자의 개인 장치에 다운로드되고 브라우저에 저장되는 작은 텍스트 파일 웹사이트는 이 쿠키를 사용해 사용자의 장치 인식하고 일부 데이터 저장하기도 함 쿠키를 사용한 로그인 개념 쿠키를 사용하여 로그인 구현 기능 가능 로그인 성공 시 서버가 쿠키에 사용자 정보 넣어줌 클라이언트 측에서는 다음 요청을 할 때마다 이 쿠키를 서버에 같이 보내줌 서버에서는 이 쿠키를 확인해 로그인했는지와 유저 정보, 권한 등 확인 가능 쿠키 생성 방법 new Cookie() 메서드 통해 쿠키 생성 쿠키 생성 시 Key, Value 값 넣어줄 수 있음 Cookie cookie = new Cookie("userId", String.valueOf(user.getId())); 방금 만든 쿠키..

backend/springboot 2024.04.16