본문 바로가기

분류 전체보기228

# RestTemplate 이해하기 ( + RestTemplate을 사용한 이유...) RestTemplate을 왜 사용해야하는가?HTTP 통신을 위한 Client 사용 이유?- 웹브라우저를 이용한다면, 검색 공간에서 해당 URL 혹은 검색을 통해 정보를 얻을 수 있다.- Application 서버의 경우, 적절한 Client를 이용하여 URL을 통하여 검색 결과를 얻을 수 있다.(Application 서버 뿐만아니라, command line에서도 확인 가능)   웹 브라우저 없이 호출하기1. CURLcommand line상에서 URL을 이용하여 HTTP 통신을 할 수 있게 도와주는 tool(API  서버의 경우, 프론트(화면)없이 응답값을 제공하는 경우가 있으므로 Curl로 확인이 가능하다)CURL 알아야할 옵션-X : Http Method 방식 ( GET / POST/ PUT / DEL.. 2025. 2. 11.
#1. OFFSET 기반 페이징 처리 이해하기 페이징(Paging) 이란?페이징은 데이터가 많을 때, 한 번에 모든 정보를 가져와서 사용자에게 보여주는 대신 일정 개수를 여러 페이지로 나누어 조회하고 화면에 표시하는 기법장점성능 향상 : DB나 서버로부터 모든 데이터를 한 번에 불러오는 부담을 줄임빠른 응답 : 필요한 데이터만 가져오기 때문에 응답시간 단축UI/UX 개선 : 화면에 한꺼번에 많은 정보를 보여주지 않기에 가독성 향상 페이징(Paging) 처리 시 고려해야할 점전체 데이터 개수 (totalCnt)전체 페이지 수 계산에 사용검색 조건에 따라 전체 데이터 개수가 달라질 수 있음현재 페이지 (currentPage)사용자가 보고자하는 페이지 번호한 페이지당 데이터 개수 (perPageCnt)한 페이지에 보여줄 데이터 양* 시작 위치 : (현재 .. 2025. 2. 11.
#2. JPA 페이징 처리 이해하기 (+ OFFSET, Cursor 기반) JPA 페이징 처리JPA의 페이징 처리 또한, OFFSET 기반 쿼리를 기본으로 한다.다만, ORM 기법으로 인한 쿼리 생성 구조로 인해서 애플리케이션 층에서 객체를 이용하여 페이징을 관리하게 된다.  JPA 페이징 객체[ Pageable ]- 페이징을 위한 정보 (페이지 번호, 페이지 크기, 정렬 정보..)을 담고 있는 인터페이스- 구현체로는 PageRequest가 사용ex) PageRequest.of( int page, int size, Sort sort)[ Page ]- 페이징된 데이터 + 페이징 정보를 담고 있는 객체( 데이터 + 전체페이지수 + 전체 데이터 수 + 현재 페이지 번호 + 다음 페이지 여부 등 ...)- DB 쿼리 시, COUNT 쿼리를 진행하여 전체건수를 조회하므로 전체 페이지 계.. 2025. 2. 11.
#소셜로그인 (OAuth2.0) 사용 후기 (+디자인패턴 : 전략&팩토리) 소셜로그인 FLOW  소셜로그인 방식외부 서버 : 구글, 네이버, 카카오 등.. (소셜로그인을 제공하는 회사)내 서버 : 개발중인 애플리케이션 서버외부 인증서버 요청 (내 서버)외부 인증서버 로그인 (외부 서버)로그인 후 발급되는 code 값 획득 ( 내 서버 )code값을 통한 외부 서버 accessToken 발급 ( 내 서버 )accessToken을 이용해서 외부서버 계정정보 획득 ( 내 서버 )자체 서버 저장 ( 내 서버 ) parameter 값1. code 값 : 사용자가 로그인 할 경우, 해당 사용자에 대한 정보 인증을 위해 code 값 제공 (외부 서버 -> 로그인 요청 서버)해당 code값을 이용해서 외부서버와의 통신을 위해서 access Token 발급 (내 서버 -> 외부 서버)code값.. 2025. 2. 11.
#1 로그 이해하기 로그란?- 로그(Log)는 시스템 내부에서 발생한 이벤트, 정보, 오류 등을 기록해두는 데이터 - 개발자나 운영자가 프로그램의 상태를 파악하고, 에러 원인 분석이나 운영 상황 모니터링을 위해 매우 중요한 도구로 사용 로그 레벨(Level) [ 알고있어야할 정보! ]로그에는 중요도에 따라 여러 단계가 있으며, 일반적으로 아래와 같은 순서로 동작(위로 갈수록 중요도가 높음)[Level]1. FATAL : 시스템이 즉시 종료될 정도로 치명적인 에러 발생 시 사용2. ERROR : 일반적인 에러 발생 시 사용되며, 예외 처리나 문제 추적에 필요3. WARN : 시스템 오류는 아니지만, 주의가 필요한 상황일 때 사용4. INFO : 시스템의 상태나 정상적인 운영 흐름을 설명할 때 사용5. DEBUG : 개발 중 .. 2025. 2. 11.
[사전 준비] Redis Server 설치하기 Redis를 설치하는 이유..In-memory로서 빠르게 조회하고 데이터 관리를 용이하게 하기 위해서 Redis를 설치하고자 한다..Redis는 세션관리 혹은 결제 데이터 처리 및 잠깐의 데이터가 흘러가는(?) 그런 곳에 사용하여 RDBMS에서 관리하는 것보다 더 빠른 처리를 도와주는 역할이다..여기서 쓴이의 경우 결제 전 데이터가 더미데이터가 되는 것을 방지하고자 사용하려고 한다..  Redis설치https://redis.io/downloads/ Downloads - RedisFaster starts now Download what you need to start building.redis.io참고로, Redis는 윈도우는 지원을 하지 않는다.. WSL을 이용하여 리눅스 환경에서 설치하는 방법이 있다... 2025. 1. 7.