Loading [MathJax]/jax/output/CommonHTML/jax.js
본문 바로가기

전체 글156

Class method vs field function (2020-06-17에 작성된 글입니다) Javascript와 같은 함수를 일급 객체(first class citizen)로 취급하는 언어는 함수를 값처럼 사용할 수 있기 때문에 온갖 곳에 사용할 수 있다. 그러면 class의 field에 함수를 사용하는건 어떨까?? 아래 Typescript 코드를 보자 class Person { constructor( private name: string ) {} // method hello(): void { console.log(HellMynameis${this.name}!); } } new Person('Chris').hello(); // Hello. My name is Chris! class Person { constructor( private na.. 2021. 5. 29.
AdminBro로 Nest.js admin 쉽게 만들기 (2020-09-13에 작성된 글입니다) https://github.com/SoftwareBrothers/adminjs GitHub - SoftwareBrothers/adminjs: AdminJS is an admin panel for apps written in node.js AdminJS is an admin panel for apps written in node.js - GitHub - SoftwareBrothers/adminjs: AdminJS is an admin panel for apps written in node.js github.com 를 사용하세요. 개발을 할 때 따로 Admin 까지 개발해야한다는 것은 할 일이 많은 개발자들에게 부담이 되곤 하는데, Django framework 같은.. 2021. 5. 29.
MSA 기반 환경에서의 인증과 인가 - 3. 토큰 탈취 대처 Session이 아닌 JWT 기반의 토큰을 사용하여 보안을 처리하는 경우 토큰 탈취에 대한 이슈에 민감하며 이에 대해 충분한 대처가 필요하다. (단지 토큰 사용 시 뿐만아니라 모든 보안 이슈는 민감하게 다뤄져야한다) 이번 포스팅에서는 서버 입장에서 토큰 탈취 시 어떤 식으로 보안 이슈를 최소화할 수 있을 지에 대해 고민하고 적용한 것에 대해 정리해본다. Access Token 탈취 Access Token을 통해 직접적으로 요청에 대한 인가 처리를 수행하기 때문에 이 토큰이 탈취되면 꽤나 치명적이다. 또한 서버에서는 왠만하면 인증(로그인)이 완료되면 Access Token을 발급은 해주지만, 발급된 Access Token의 유효성을 관리하기 위해 DB에 저장하지 않을 것이다. (사용자 보안에 대해 하나하나.. 2021. 5. 29.
MSA 기반 환경에서의 인증과 인가 - 2. 인증 및 인가 프로세스 앞서 MSA 환경에서의 어떤 식으로 인증과 인가 시스템을 구현할 것인가에 대해 대략적인 개요를 살펴보았다. 이번 포스팅에서는 구체적으로 어떤식으로 인증과 인가 프로세스를 밟아 나가는지에 대해 살펴보자. 인증 (Authentication) 흔히 로그인이라고 부르는 인증(Authentication)은 특정 계정에 대해 소유를 확인하는 과정이다. 흔히 ID, Password 를 사용하거나 OAuth 등을 사용하여 인증 과정을 거친다. 1. Client 에서 ID, Password 와 같은 인증 수단의 데이터를 담아 인증(로그인) 요청을 보내면 API Gateway에서 해당 요청을 인증 서버에 라우팅 할 것이다. 2. 이때 인증 서버에서 인증이 성공했을 때 Access Token과 Refresh Token을 응.. 2021. 5. 29.
MSA 기반 환경에서의 인증과 인가 - 1. 개요 서비스가 성장하고 서비스에서 다루는 도메인이 복잡해 짐에 따라 도메인 별로 서비스를 분해하여 각 도메인 간의 커플링을 느슨하게하고 도메인의 응집도를 높이며 이를 통해 빠르고 안정적인 개발이라는 장점을 취하기 위해 MSA를 행하는 곳이 많아졌다. 그리고 내가 속한 조직 역시 기존 monolithic 환경에서 MSA로 이전하는 작업을 진행 중이고 그 중에서 나는 사용자와 인증/인가 관련 서비스를 작업하였다. 이 포스팅은 MSA 환경에서 인증/인가를 구현하면서 어떤 식으로 시스템을 구축하였고 어떤 고민을 하였는지에 대해 정리하는 글이다. 웹 서비스에서 크게 Session 또는 JWT(JSON Web Tokens)기반의 Access Token을 통해 Security를 구현한다. MSA 환경에서 인증과 인가에 대.. 2021. 5. 20.
Github Actions로 PR 시 테스트를 돌려보자 PR을 올릴 때 Github Actions로 테스트를 돌려서 해당 PR에 대해 깨지는 테스트가 없는지 확인하는 세팅을 해보자. 코드는 여기에 예제 PR은 여기에서 확인할 수 있다. Github Actions에 Gradle Test 추가 .github/workflows/{파일명}.yml 으로 Github Actions 파일을 추가한다. name: PR Test on: pull_request: branches: [ master ] # master branch에 PR을 보낼 때 실행 jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up JDK 11 uses: actions/setup-java@v1 with: ja.. 2021. 4. 21.