프로그래밍/프로젝트

    CAP 이론을 바탕으로 NoSQL 을 적용 할 만한 포인트 고려

    서비스가 대용량 트래픽을 처리해야 할 때, 관계형 데이터베이스 시스템은 수평적으로 확장하기가 어려울 수 있습니다. 이는 높은 읽기 및 쓰기 부하를 처리해야 하는 서비스에서 성능 저하를 초래할 수 있습니다. 이러한 문제를 해결하기 위해, NoSQL 데이터베이스가 생겨났습니다. NoSQL 데이터베이스는 관계형 데이터베이스와 달리 구조화되지 않은 데이터를 저장하는 데 특화되어 있습니다. 이러한 데이터베이스는 수평적으로 확장하기가 쉬우며, 높은 처리량과 응답 시간을 보장할 수 있습니다. 이러한 이유로, 대용량 트래픽을 처리해야 하는 서비스에서 NoSQL을 사용할 수 있습니다. 그러나 NoSQL을 사용할 때에도 몇 가지 고려해야 할 사항이 있습니다. 이를 위해 CAP 이론을 살펴보면, 일관성(Consistency..

    GoodsForYou 패키지 구조에 대한 고민(포트와 어댑터)

    현재 패키지 구조 현재 진행 중인 GoodsForYou 중고 거래 애플리케이션에서는 패키지 구조의 큰 틀을, 기능 단위의 패키지 구조 하위에 패키지구조를 구성하는 방식으로 진행하였습니다. 이러한 구조를 유지함으로써 해당 기능 패키지 별로 응집도를 높일 수 있었습니다. 또한 한 기능 패키지에서 레이어드 아키텍처를 적용함에 따라, Presentation은 Presentation 끼리, Application은 Application 끼리 묶는 방식으로, 레이어드 아키텍처를 도입해, 각각의 레이어 별로 관심사를 분리하고, 패키지 간의 의존성의 방향을 단방향으로 제한하였습니다. 각 계층별 설명 Presentation : 사용자와 상호작용을 하고, 브라우저 통신 로직을 처리하는 레이어입니다. Application :..

    인증 방식으로 세션 VS 토큰 어떤걸 선택해야 할까?

    개요 진행 중인 프로젝트에서 사용자 로그인 과정 중 사용자 인증 방식으로 어떤 방법이 있는지, 각각의 인증 방법의 장단점은 무엇인지에 대해 알아보고, 프로젝트에는 어떤 걸 적용하는 게 좋을지에 대해 얘기해 보겠습니다. 인증이란? 인증 방식을 설명하기에 앞서 간단하게 인증이란 무엇인지에 대해 설명하겠습니다. 인증은 프로젝트를 예로 들어 굿즈 포유 시스템이 제공하는 서비스에 접근하기 위해 사용자의 정보를 확인하는 과정입니다. 세션 인증 방식 세션 기반의 인증 방식은 오랫동안 웹 애플리케이션의 기본 인증 방식이었습니다. 세션 인증 방식을 사용하고, 세션을 데이터베이스에 저장하는 방식을 사용하면 사용자가 로그인을 요청하면 사용자의 로그인 세션이 서버에 의해 생성됩니다. 그리고 이 로그인 세션 정보가 데이터베이스..

    다중 서버 환경에서 사용자 로그인 구현시 세션 관리 방법으로 어떤걸 선택해야할까?

    이번 포스팅에서는 현재 프로젝트를 시작하면서 선택한 서버 확장 방식인 Scale Out 방식에서, 로드 밸런서를 통해 부하 분산 처리를 함에 따라 생기는 문제점 중 하나인 세션 관리에 대해 어떻게 해결할 것인지, 그리고 그와 관련된 내용들에 대해 포스팅을 통해 알아보려 합니다. 세션 관리 세션 관리(Session Management)를 왜 해야 할까요? 현재 저는 진행 중인 Goods-For-You 프로젝트에서 회원 로그인 기능을 구현하려 합니다. 회원 로그인 기능은 다음과 같은 과정으로 진행될 것으로 생각이 됩니다.(Goods-For-You 프로젝트는 대용량 트래픽을 받는 상황에서, 서버의 성능과 고가용성을 생각하면서 진행되고 있는 프로젝트입니다.) 사용자가 회원가입 시 입력한 아이디, 비밀번호를 입력..