본문 바로가기
반응형

전체 글322

[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.
[우테코/줍줍] 3차 스프린트 회고 데모 영상 보러가기 👉 https://youtu.be/LQOhHfKPuC0 목차 개발 일지 https 적용하기 (feat. Gabia, Let's Encrypt) 인증 인가 (feat. Slack OAuth, JWT) 추가 기능 인프라 구조 있었던 이야기 북수다 코치와의 상담 테코톡 발표 준비 남은 기간 목표 📑 개발 일지 💖 https 적용하기 (feat. Gabia & Let's Encrypt) Slack OAuth를 이용해 슬랙 계정으로 로그인할 수 있는 기능을 구현하려고 했다. 정말정말 예상하지 못했던 문제인데 https가 적용되지 않으면 OAuth를 통해 인증할 수 없었고 다른 개발보다 https를 먼저 전환하기로 했다. 👉 더 자세히 보기 [nginx/Let's Encrypt] 도메인 연동부터.. 2022. 8. 8.
[책 후기] 최고의 팀은 무엇이 다른가 최고의 팀은 무엇이 다른가 저자 대니얼 코일 / 출판사 웅진지식하우스 최고의 팀은 무엇이 다른가 - YES24 아마존 경제경영 베스트셀러2018년 《워싱턴포스트》 리더십 추천 도서애덤 그랜트, 찰스 두히그, 세스 고딘… 세계적 비즈니스 구루들의 극찬!“왜 어떤 팀은 부분의 합보다 위대해지는가”구 www.yes24.com 좋은 팀, 이상적인 팀이란 무엇인가? 그리고 `나랑 잘맞는 팀`은 무엇일까? 라는 고민을 하고 있었다. 우테코 크루인 클레이가 주관하고 우테코 코치인 토미가 함께하는! `우연히 최고의 팀은 무엇이 다른가`으로 진행되는 북 수다 타임에 참가하게 되었다. 비록 코로나 이슈로 3번의 모임 중 마지막 1번밖에 참여하지 못했지만😢 여러 생각을 들을 수 있는 뜻 깊은 모임이었다. 다음에 또 북 모임.. 2022. 8. 2.
[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.
[우테코/줍줍] 2차 스프린트 회고 데모 영상 보러가기 https://youtu.be/H6rm16DesPo 📚 목차 우리 팀의 이야기 코로나 이슈 몹 대신 페어로 진행하기 Pull Request 알차게 써먹기 프론트와 백엔드가 함께 개발하기 아쉬운 점 백엔드의 토론 시간 ResponseEntity로 반환해야할까? 어떤 CI/CD 도구를 사용할까? application.yml 파일 숨기기 스프린트3 예상해보기 기존 로직 변경과 신규 기능 도전해보고 싶은 것 해야할 일 ✨ 우리 팀의 이야기 💛 코로나 이슈 1차 스프린트 직후 코로나에 걸려버렸다...🙃 11일에 거의 죽을 뻔하다가 12일 아침에 겨우 겨우 병원에 가서 확진 판정을 받고 일주일 자가격리를 했다. 요즘 코로나 다들 스무스하게 넘어간다는데 나는 엄청 난리였다.😰 하루는 열이 40도 .. 2022. 7. 22.
[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.
반응형