백엔드 개발하며 작성한/기억할 내용

    Cookie  (feat. JWT Token, SSO)

    Cookie (feat. JWT Token, SSO)

    단일 서비스의 사용자 인증 기능을 위해 동작하던 "사용자 인증 애플리케이션"에서다수 서비스의 사용자 인증 기능을 제공하는 서버로 동작해야함과 동시에해당 서버를 통해 인증된 사용자는 사내 다른 서비스에 접속시에도 로그인 상태를 공유해야했기 때문에 SSO 기능까지 가능하도록 구현해야했습니다. 어떤 방식으로 구현할 지 고민한 내용 중 JWT 토큰을 저장할 위치와 관련하여 "쿠키" 에 대해 알아본 내용들을 정리합니다. SSO 기능을 제공하려면 크게 두가지 요구사항이 있었습니다.1) 로그인 후, 새 탭에서 접속했을 때에도 로그인이 되어야 한다.2) 서브 도메인이 같으면 인증 토큰이 공유되어야 한다. (단, 다른 서브 도메인에 접속 시에는 쿠키가 전달되지 않는다.) 기존 "사용자 인증 애플리케이션"은 사용자 인증 ..

    예외(Exception) 처리

    적절한 예외 핸들링은 애플리케이션에 필수적이지만 생각보다 중요성을 간과할 수 있는 부분이라 생각합니다.이 글에서는 예외를 다룰 때마다 고민했던 포인트들과 예외를 처리하고 생성하는 Best Practice에 대해 정리합니다.1) 예외 처리 (Handling Exceptions) 할 때메서드가 에러로 인해 완료되지 않았을 때 상태를 복구한다.메서드에서 예외가 발생했을 때, 호출자는 부작용이 없다고 가정할 수 있어야 합니다. 계좌 이체 코드 (한 계좌에서 출금하고 다른 계좌에 입금하는 코드)를 예로 들면,출금 로직은 정상적으로 성공했는데 입금 로직에서 예외가 발생하면, 출금이 그대로 완료되지 않도록 해야 합니다. 이를 위해 처리할 수 있는 방안은, 입금 거래 과정 중 한 곳이라도 예외가 발생하면 그전에 정상적..

    Web Server와 Web Application Server(WAS)

    Web Server와 Web Application Server(WAS)

    여기서 말하는 "Server"는 소프트웨어적인 관점에서 이야기합니다.  서론Web Server와 Web Application Server는 헷갈리기 쉬운 개념인 것 같습니다. 이번 글에서는 각각의 역할과 왜 웹 서비스 운영 시 함께 사용하는지에 대해 이야기하겠습니다. 알아가기 위한 과정 중 작성하는 것이므로 잘못된 부분은 일러주시면 감사하겠습니다. 목차Web Server와 WAS 간단한 설명과 차이점Web Server의 역할Web Application Server의 역할Apache와 NginX (WS)정리 Web Server와 WAS(Web Application Server)우선, Web Server는 무엇일까요? Web을 위한 Server입니다.Server는 소프트웨어적 개념에서 봤을 때 리소스를 제공..