개발새발/Spring

필자는 비즈니스 서비스 운영 시, 유지보수에서 제일 중요한건 "정형화" 라고 생각한다. 가끔 오래된 프로젝트나 앱들을 살펴보면, 난잡한 API Endpoint들과 뒤죽박죽인 response가 보인다. 어떤 요청의 response는 ok: true,또 다른 요청은 success: true,status: "OK" 등등이 섞여있는 경우가 있었다. 응답의 정형화는 시스템의 맨 바닥 기반이다. 응답이 정형화되지 않은 서비스는 그 크기가 늘어날수록 유지보수에 어려움을 겪게 될 것이다. 필자의 경우, 응답의 정형화를 아래와 같이 구성했다. - code (required)- message (required)- data (optional) HTTP status가 있는데, 어째서 code를 별도로 전송하게 되었는가? 물론..
Spring에서 인증/인가를 처리하기 위해서는 일반적으로 Session과 JWT중 하나를 선택해 사용한다. 둘중 어떤 방식을 선택하려면 Stateful / Stateless에 대해서 짚고 넘어갈 필요가 있다. Stateful 방식은 서버에서 클라이언트의 상태를 저장하고 관리한다.Stateless는 서버에서 클라이언트의 상태를 관리하지 않는다. Session의 경우는 Stateful이다.기본적으로 Session id를 client에 서빙하고, 해당 Session id에 대한 정보는 서버에 저장되며,서버에서 관리된다. JWT는 Stateless다.JWT의 토큰 안에 인가에 필요한 정보가 담겨있으며, 따라서 서버에서 인가에 필요한 정보를 저장하지 않아도 된다.  Session과 JWT 중 무엇을 쓰느냐는 자유..
이 글은 나와 같은 Spring 초심자들을 위해 작성되었다.본 글에서 서술할 내용들을 알고있다면 글을 읽지 않아도 좋다.  Spring의 문서에서는 Bean에 대해 아래와 같이 서술하고있다. In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC container. Spring의 Bean은 IoC에 의해 관리되며, 인스턴스화되는 객체라고 한다. IoC는 Spring..
필자는 며칠 전에 Spring과 aws 생태계에 입문했다. spring과 aws 모두 생태계가 방대해서 현재 내 인프라에 맞는 좋은 Best practice에 대해 많은 글을 찾아보고,삽질한 내역을 적어본다.  AWS에서 RDS 데이터베이스를 생성할 때, 비밀번호의 주기 관리를 secrets manager에 위임할 수 있다. 필자는 보안을 아주 민감하게 여기고, 어떤 서비스를 구축하던 보안을 최우선순위로 여긴다. 그런 면에 있어서 AWS에서 제공하는 secrets manager는 아주 매력적이게 다가왔다.1. RDS & Secrets manager 연동 이 부분은 AWS가 아주 간편하게 지원해주고 있다.RDS 자격증명 관리를 Secrets manager에 위임하면 끝이다. 설정 후 Secrets mana..
0xff
'개발새발/Spring' 카테고리의 글 목록