본문 바로가기

개발관련22

토스에서는 GATEWAY를 어떻게 활용할까? 우리는 보안쪽을 라이브러리화를 하려다 보니 인증/인가에 대한 생각이 많아졌다.그중에 Netfilx의 Passport라는 개념을 우리프로젝트에 적용 할 생각인데, 마침 toss도 passport를 활용한다기에 공부를 해보았다. Route - Predicate, Filter라우트는 이렇게 두개로 나뉜다. Predicate  요청을 구분 Path, Method,Host 요청을 매칭 Filter  매칭된 요청에 대한 전처리나 서비스의 응댑에 대한 후처리를 구현 하나의 Route안에 여러개의 필터 선언가능, Gateway는 순서에따라 필터를 처리한다. 공통로직을 Gateway로 몰아두면 하나의 커다란 모놀리틱 서비스가 됩니다. Web에서 필요한 로직과 App에서 필요한 로직이 다르지만 게이트웨이는 이 두가지.. 2024. 9. 30.
Netfilx는 PassPort ? 넷플릭스에서 사용한 Netflix Passport는 사용자 인증을 위한 독특한 접근 방식 중 하나로, 특히 넷플릭스의 글로벌 서비스 확장에 맞춰 확장성과 보안을 중점으로 고려한 시스템입니다. 이 시스템은 주로 다양한 인증 방식(OAuth2, SSO 등)과 관련 서비스를 통합하는 데 사용되며,  마이크로서비스 아키텍처에서 쉽게 적용할 수 있는 분산 인증 시스템을 구축하는 데 초점을 맞추고 있습니다.   Netflix Passport는 넷플릭스에서 전 세계 다양한 사용자의 인증과 인가를 관리하기 위해 만들어졌으며, 사용자 정보를 중앙화된 인증 시스템에 저장하는 대신, 분산된 여러 마이크로서비스에서 인증을 처리할 수 있도록 도와줍니다.   Netflix는 유저 인증 시에 Passport 라는 id 토큰을 트랜.. 2024. 9. 27.
<캡슐화> JPA 엔티티 생성시 Setter를 지양하는이유 JPA 엔티티 생성시  setter 메서드를 지양해야 하는 이유는 객체 지향 프로그래밍의 원칙 중 하나인 캡슐화와 깊은 관련이 있습니다. JPA 엔티티는 데이터베이스 테이블과 매핑되는 객체로, 데이터의 상태와 비즈니스 로직을 담습니다. 엔티티에서 setter를 무분별하게 사용하는 것은 다음과 같은 문제를 초래할 수 있습니다.캡슐화 원칙 위반 setter 메서드를 통해 엔티티의 상태를 쉽게 변경할 수 있게 하면, 객체의 내부 상태가 외부에서 쉽게 조작될 수 있습니다. 이렇게 되면 엔티티의 데이터 무결성을 유지하기가 어렵고, 예기치 않은 상태 변경이 발생할 수 있습니다. 엔티티의 데이터를 수정할 때는 반드시 해당 수정이 비즈니스 로직에 부합하는지 확인해야 하는데, setter는 이러한 검증 과정을 우회합니다.. 2024. 9. 24.
MSA 기반 물류관리 및 배송시스템 프로젝트를 마치며... 물류 관리 및 배송 시스템을 위한 MSA 기반 플랫폼 개발나는 Security 파트와 User파트를 맡았다.  프로젝트를 마치며 튜터님께 피드백이 온것들을 정리해보겠습니다. 인프라설계서  MSA 서비스 중 Object Service 는 서비스 명을 보고도 해당 서비스가 어떤 역할을 할지를 유추할 수 있는 이름으로 변경하시면 좋습니다. 대면피드백때도 말씀드린 내용인데요! Object Service 의 root 에그리거트 이름을 따라가면 좋습니다 :)  더보기Object라는 서비스 명이 직관적이지가 않다는 피드백을 받았습니다. Object안에 Hub관리 도메인들이 있었기에, Hub Service로 이름을 수정하는 방향을 생각했다.   *Gateway 에서 Auth 서비스를 호출할 때에 localhost 로 .. 2024. 9. 24.