반응형 Develop236 OAuth vs OpenID 예제로 자주 등장하는 `줍줍`은 현재 진행되고 있는 프로젝트 명으로 슬랙 메시지를 백업해주는 서비스입니다. 이 글을 읽기 전에 인증과 인가의 차이를 알고 있다면 훨씬 이해하기 편합니다. 인증; authentication: 사용자의 신원을 확인 인가; authorization: (신원이 확인된 사용자에게) 자원에 접근할 수 있는 권한 부여 🧾 OAuth 🧾 인가 / authorization 서버 자원 소유자가 클라이언트에게 서버 자원에 대한 액세스 토큰 제공 ex: Slack이 줍줍에게 access token을 발급 해당 액세스 토큰을 통해 리소스 서버에 액세스 가능 ex: access token을 통해 줍줍이 Slack에게 사용자 정보 조회 요청 ✅ OAuth 1.0 vs OAuth 2.0 OAuth 2.. 2022. 8. 31. [Java] 날짜, 시간 API 😎 서론 최근 LocalDateTime과 같이 날짜나 시간과 관련한 로직을 작성할 일이 많았다. ZoneOffSet? Instant? 부끄럽게도 뭐가 뭔지 모르고 사용했던 것들이 많아 이를 알아보는 시간을 가지려 한다.🙂 😊 Java의 날짜와 시간 API 🔹 time 패키지 ISO 기반 (24시간 시계 시스템 hh:mm:ss) 불변 + thread-safe 🔹 LocalDate / LocalTime / LocalDateTime 시간대 (ZoneOffset, ZoneRegion)에 대한 정보 미포함 LocalDate: 날짜에 대한 정보 LocalTime: 시간에 대한 정보 LocalDateTime: 날짜 및 시간에 대한 정보 `Local... `는 ZoneOffset과 ZoneRegion를 포함하지 않음 .. 2022. 8. 30. ssh 명령어 편하게 쓰기 🤗 서론 나는 ssh 명령어 치는게 너무 귀찮다! 현재 진행하는 프로젝트에서는 백엔드 개발서버, 백엔드 운영서버, Jenkins 서버, SonarQube 서버 등등등 여러 인스턴스를 접속할 일이 많다. `ssh -i 키.pem ubuntu@IP주소`에서 key 경로를 입력하는 것도 인스턴스마다 IP 주소가 뭐였는지 찾는 것도 너무너무 귀찮았다. 우테코 크루인 봄이 편하게 쓰는 방법을 알려줬다. 🥰 😎 설정 이 방법은 Windows / Mac 상관 없이 사용 가능합니다. 1. ~/.ssh/config 파일 생성 vi 명령어 실행 직후 i를 눌러 편집 모드로 변경 하단의 Host ~~~ 내용 입력 후 esc를 눌러 편집 모드 종료 :wq 를 이용해 파일 저장 후 나가기 이전에 설정한 적이 없다면 파일이 존재.. 2022. 8. 17. [Mockito] LocalDateTime.now() 테스트하기 목차 서론 static method 조롱하지 않기 테스트 코드 작성 현재 시간을 구하는 클래스 LocalDateTime.now() 모킹 테스트 데이터 변경 Clock 이용하기 최종 선택 1. 서론 😄 `줍줍` 프로젝트에서는 내가 원하는 시간에 리마인드할 수 있도록 슬랙 메시지를 보내주는 리마인드 기능이 있습니다. 이 리마인더 목록을 조회할 때 이미 알림을 보냈던 리마인더는 조회할 필요가 없다고 판단했고 현재 시간을 기준으로 조회하기 위해 LocalDateTime.now()를 호출했습니다. 해당 로직을 어떤 식으로 테스트 코드를 작성할까 고민했던 일에 대해 포스팅해보려 합니다. 2. static method 조롱하지 않기 😡 Why doesn't Mockito mock static methods? Loca.. 2022. 8. 15. [Spring] ResponseEntity vs DTO 🤔 서론 🤔 `줍줍` 프로젝트를 진행하며 반환값을 ResponseEntity로 반환하느냐, DTO를 반환하느냐 무엇이 더 좋을까? 에 대한 이야기가 나왔습니다. 이에 대해 다양한 사람들에게 조언을 구했고 많은 분들이 의견을 내주셨습니다 ㅎ.ㅎ 이를 정리하기 위한 글을 작성했습니다. 💥 ResponseEntity vs DTO 💥 HTTP body에 메시지를 담는 방법은 크게 2가지가 있습니다. 하나는 ResponseEntity를 이용하는 방법이고 하나는 @RestController를 사용해 DTO를 반환하는 방법입니다. controller에 아래와 같은 메서드를 작성했다고 가정하고 살펴보겠습니다. 1. ResponseEntity 반환 ResponseEntity의 빌더 패턴을 이용해 HTTP 상태코드 변경 .. 2022. 8. 11. [OAuth] 슬랙 로그인 구현하기 목차 1. OpenID vs OAuth vs OIDC 2. OAuth 인증 과정 3. 로그인 동의 화면 4. 로그인 API 구현하기 `줍줍` 프로젝트는 슬랙을 이용해 로그인하는 기능을 제공할 예정이다. 해당 기능을 개발하는 과정을 이야기 해보려 한다. 1. OpenID vs OAuth 📚 OpenID, OAuth는 인증, 인가에서 사용되는 HTTP 기반 프로토콜이다. OpenID -> 인증; authentication: 사용자의 신원을 확인 OAuth -> 인가; authorization: (신원이 확인된 사용자에게) 자원에 접근할 수 있는 권한 부여 더 자세한 내용 👉 https://yeonyeon.tistory.com/264 OAuth vs OpenID 예제로 자주 등장하는 `줍줍`은 현재 진행되고 .. 2022. 7. 31. [nginx/Let's Encrypt] 도메인 연동부터 SSL 적용까지 목차 0. 서론 1. 프로젝트 구조 소개 2. nginx 설치 3. 도메인 연동 (feat: 가비아) 4. SSL 적용 (feat: Let's Encrypt) 0. 서론 현재 진행하는 팀 프로젝트인 `줍줍`에서 외부 라이브러리를 이용하기 위해 반드시 https를 적용해야하는 상황이 왔다. 우테코에서 주어진 `Web Server와 WAS를 연결을 통해 443 포트로 데모하기` 미션을 겸사겸사 같이 수행하기로 했다. 이 미션의 목표는 대략 두 가지로 나눌 수 있다. Web Server와 WAS를 연동하고 인프라 아키텍처를 구상하기 SSL을 적용해 http를 https로 변환하여 443 포트로 배포하기 우리가 고민했던 포인트를 정리해보자면 아래와 같다. 도메인을 어디서 구매해야할까? 👉 많은 사람들이 이용하고.. 2022. 7. 31. [Git] 서브 모듈로 중요한 설정 정보 숨기기 ❗ 서론 예전에 OS 환경 변수를 이용해 중요한 설정 정보를 숨기는 방법에 대해 포스팅했었다. (바로가기 링크 👉 https://yeonyeon.tistory.com/234) 이 방법은 값이 변경될 때마다 직접 배포 서버에 들어가 OS 환경 변수 수정이 필요하다는 점이 너무너무 귀찮다. 이를 개선하기 위해 깃의 서브 모듈이라는 개념을 이용해보았다. OS 환경 변수로 중요한 설정 정보 숨기기 🤗 서론 중요한 설정 정보들이 담긴 파일은 공개되면 안된다. 이를 숨김 처리 하는 방법은 여러가지가 있다. Vault, AWS에서 지원해주는 Systems Manager Parameter Store 등 여러 서비스를 활용할 수 있 yeonyeon.tistory.com ❓ 서브 모듈이란? : 레포지토리 안에 또다른 레포.. 2022. 7. 21. [Git] 커밋에 공동 작업자 추가하기 요즘 페어 프로그래밍, 몹 프로그래밍 등 여러명이서 함께 개발을 진행하는 일이 많았다. 작업이 덜 된 내역을 커밋하기는 곤란하니까 한 사람의 컴퓨터에서 개발을 전부 진행한 뒤에야 커밋하고는 한다. 이럴 때 커밋 기록을 보면 한 사람만 작업한 것처럼 보인다. 페어 / 몹으로 진행했는데도 한 사람의 기록만 남는게 아쉬웠는데 coauthored 라는 키워드를 알게 되었다. 😄 위와 같은 커밋이 아닌 아래 같은 커밋을 하고 싶다면? 함께 개발한 사람도 남기고 싶다면? 커밋 메시지를 아래와 같이 적으면 된다. 이 때 주의할 점은 커밋 메시지와 `Co-authored-by` 사이에 줄바꿈이 2번 들어가야 한다. 1번 들어가니 적용이 안되는 현상이 발견되었다. 😅 커밋 메시지 Co-authored-by: 깃헙핸들명 .. 2022. 7. 20. 이전 1 ··· 4 5 6 7 8 9 10 ··· 27 다음 반응형