본문 바로가기
반응형

Develop223

[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.
[GitHub] PR 리뷰 막기 (feat: draft) 😊 서론 이번 글은 내가 올린 PR 리뷰 막아버리는 것에 대해 포스팅하려 합니다.🤭 제목에 황당해하시는 분들도 많을 것 같습니다. 현재 진행중인 줍줍 프로젝트에서는 현재 진행 상황 공유를 위해 완전히 개발되지 않았어도 Pull Request를 올리기로 했습니다. 하지만 리뷰어들 입장에서는 이 PR이 개발이 완료되어서 올린건지, 아니면 진행 상황 공유를 위해 올린건지 알 수 없는데요. 팀원인 꼬재가 다음과 같은 기능을 소개해주었습니다. 🤗 Convert to Draft Pull Request를 클릭하면 우측 Reviewers 항목에서 'Convert to draft'를 찾을 수 있습니다. convert to draft 버튼을 클릭하면 Pull Request가 아래와 같은 상태로 보입니다. 이제 다른 사용자.. 2022. 7. 14.
[GitHub] 깃허브로 토이 프로젝트 시작하기 토이 프로젝트를 시작하기 전에... 깃허브에서 commit, push 기능만 사용하고 계시진 않나요? 토이 프로젝트를 진행하면서 이용하면 너무 좋을 것 같은 기능들을 소개하기 위해 글을 작성하게 되었습니다😄 GitHub에서 제공해주는 기능들을 이용하였기 때문에 특정 언어에 종속되지 않고 어떤 언어로 사용하는 프로젝트든 이용 가능합니다. 목차는 아래와 같습니다. Main - 프로젝트 소개하기 About README.md Issues - 할 일 정리하기 Pull Requests - 코드 리뷰 문화 도입하기 Discussions - 프로젝트 전용 커뮤니티 만들기 Projects - 편리하게 일정 관리하기 1. Main 예제 링크 - 우테코 학습 기록용 레포 About 프로젝트에 대한 부가 설명 추가 오른쪽의 .. 2022. 7. 9.
모든 요구사항을 한 엔드포인트로 처리하는 방법 🤔 서론 Java와 Spring으로 줍줍이라는 서비스를 개발하고 있다. 메시지 전송, 프로필 변경 같은 여러가지 슬랙 이벤트를 한 엔드포인트로만 관리해야 하는 상황이 발생했다. Front Controller? Handler Mapping? 뭘 사용해야 로직을 분기할 수 있지? 몇 개의 키워드만 주워듣고 팀원들 각자 해결할 방법을 생각해오기로 했다. 😂 상황 설명 "/test"라는 URL을 POST 메서드로 보내면 Controller의 testApi 메서드가 호출된다. HTTP Message Body에 담긴 데이터 중에 "type"이라는 값에 따라 실행해야 하는 로직이 다르다. @RestController @RequestMapping("/test") public class TestController { p.. 2022. 7. 8.
.properties vs .yml 🤔 서론 나는 설정 파일을 application.properties만 써봤다. 필요하다면 application-prod.properties나 application-dev.properties 등을 추가로 만들었을 뿐 큰 변화가 없었다. 헌데 최근 들어 설정 파일을 yml 타입으로 사용하는 사람들이 보이기 시작했다. properties랑 yml이 어떤 차이가 있을지 왜 yml을 선호하는 건지 궁금해서 찾아보게 되었다. 📑 .properties 예제 spring.datasource.url=jdbc:log4jdbc:mariadb://localhost:3306/test spring.datasource.hikari.username=sa spring.datasource.hikari.password= # 리스트 my... 2022. 7. 5.
반응형