전체 글(238)
-
[사전 준비] 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.01.07 -
[리펙토링] 결제요청 전 "더미 데이터" Redis로 관리하기
현재 결제데이터 흐름도.. 위와 같이, 현재 HOST서버에서는 결제 객체를 만들면서 DB에 결제를 저장시킨다.결제가 성공적인 과정을 통해 이루어진다면, 별로 문제가 되지 않을 수 있지만 결제를 하던 도중 취소하거나 결제중 문제가 생겨 제대로된 처리가 되지 않았을 경우에 dummy data가 발생하게 되는 문제가 있었다.. 왜(?) 굳이 결제전에 데이터를 저장했는가(?) 를 생각해본다면, 결제란 것이 민감한 문제여서 추후 문제가 생길때를 방지하여 데이터를 남겨야한다는 생각을 가지고 있었다.. 그래서 DB에 결제가 진행이 안되더라도 저장하고 있는 것이 바람직하다 생각이 들었었다..객체를 만들고 저장하지 않은채로, 사용되지 않는다면 GC에 의해 알아서 정리가 될것인데 지금의 나로서도 결제 정보에 대한 저장은 ..
2025.01.06 -
[리펙토링] Session을 통한 로그인 처리
로그인 리펙토링..현재는 HttpSession을 사용하여, 세션이 있는지 없는지에 대한 값만 확인 후 로그인 처리를 진행하고 있으며,URL Mapping 에서 로그인 아이디를 통한 맵핑과정에서 사용자를 변경하면 있는 오류를 Interceptor에서 처리하고 있다. 여기서 문제는 사용자변경건에 대해서는 Interceptor로 방지하였지만 근본적인 해결책이 되지 않았다.. 그렇다면 내가 왜 그렇게 로직을 구성하였는가에 대해서 생각해보면,회원정보의 조회를 URL에서 간단하게 사용하려고 하다보니 URL에 로그인 아이디를 기입하여 사용하였다 이런 방식은 지금의 문제를 근본적으로 해결하기에 어려움이 있다 판단하여 리펙토링을 진행하고자한다1. URL 방식의 회원정보를 조회방법을 수정하고자 한다(현재 생각은, Filt..
2025.01.04 -
[리펙토링] 개발 요구사항 (게시판 프로젝트)
프로젝트를 시작하며...개인 프로젝트로서 현재까지 배운내용을 통해서 사용해보고자 게시판 작업을 진행하려고 한다..이론적으로 많은 내용들을 배웠지만, 사용해본적이 없고 왜 사용해야하는지 모른다면 그건 그냥 글을 읽고 머리속에 주입한 것 밖에 안된다고 생각을 한다...그래서 이번 기회에 배운내용들에 대해서 사용해보고 왜 사용해야하는지에 대해 탐구해보고자 한다 요구사항을 적는 이유..매번 개발에 대한 주제(?)만 듣고서는 머릿속으로 대충 그리고 시작하는 습관이 생겨버렸다..이게 단기 프로젝트이고 프로토타입으로 잠깐 쓰고 안쓸거라면 빠른개발이 더 이점이 있겠지만, 결국엔 계속해서 리펙토링하고, 중간중간 샛길(?)로 새지 않기 위해서 방향성을 잡고 가야 흔들리지 않고 개발을 완성할 수 있다는걸 느끼면서도 그렇게 ..
2025.01.03 -
[자료구조] 우선순위 큐 (+JAVA)
우선순위 큐일반적인 큐는 FIFO(First In First Out) 구조로 먼저 삽입된 값이 먼저 나오게 되는 구조이다.하지만, 우선순위 큐의 경우 FIFO구조가 아닌 우선순위가 높은 순으로 먼저 나오게 되는 구조를 일컫는다.일반적으로 숫자의 경우 오름차순 및 내림차순을 이용하여 우선순위가 높은 순으로 구현을 하게 되고,객체의 경우 비교할 값을 설정하여 우선순위를 지정하게 된다. 우선순위 큐 선언방법import java.util.PriortyQueue;PriortyQueue pq = new PriorityQueue();객체Wrapper 클래스를 이용하여 기본형들을 사용또는, Custom 객체를 이용하여 사용기본 타입Wrapper 클래스byteByteshortShortintIntegerlongLongfl..
2024.12.02 -
[그리디 알고리즘] 백준 1715번
문제정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다.매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르는 순서에 따라서 비교 횟수가 매우 달라진다. 예를 들어 10장, 20장, 40장의 묶음이 있다면 10장과 20장을 합친 뒤, 합친 30장 묶음과 40장을 합친다면 (10 + 20) + (30 + 40) = 100번의 비교가 필요하다. 그러나 10장과 40장을 합친 뒤, 합친 50장 묶음과 20장을 합친다면 (10 + 40) + (50 + 20) =..
2024.12.02