전체 글

이번 프로젝트에서는 처음으로 로그인 기능 구현을 맡게 되었다. 소셜 로그인을 도입하기로 결정했기에, 구현에 앞서 소셜 로그인의 기반이 되는 OAuth 2.0의 개념과 동작원리에 대해 자세히 알아보고자 한다. 소셜 로그인, 또는 간편 로그인은 사용자 입장에서만 간편하고 개발자 입장에서는 전혀 간편하지 않다. 사용자 - 서비스 사이에 소셜이라는 제 3자가 끼기 때문이다. 때문에 3자 간의 인증 및 인가를 위해서 OAuth라는 걸 사용한다. 1. OAuth란? OAuth는 Open Authentification의 약자로, 제3의 애플리케이션이 사용자의 데이터에 접근할 수 있도록 해주는 인증 및 권한 부여 프로토콜이다. 2. 들어가기에 앞서 먼저 소셜 로그인 인증 과정에서 등장하는 역할들에 대해 알아보자. '투..
· 𝐆𝐢𝐭
1. Issue란? '프로젝트에서 진행하는 일'을 말한다. 배포, 기능 구현, 버그 해결, 문서 수정 등 모든 것이 '이슈'에 해당한다. 개발자들은 이슈 트래킹을 통해 프로젝트의 이력과 진행 상황, 그리고 버그에 대한 해결 방법 등을 확인할 수 있다. 2. 이슈 생성하기 (1) Issue 탭 - New issue 클릭 (2) 이슈 작성하기 저 버튼을 클릭하면 이렇게 이슈 작성 페이지가 나타난다. 제목을 적고, 내용을 적고, 오른쪽 아래 Submit new issue 버튼을 누르면 끝! 이슈는 프로젝트를 파악하기 위해 보는 것이기 때문에, 잘 모르는 사람이 봐도 한눈에 알아볼 수 있어야 한다. 그래서 때로는 템플릿을 지정하여 효율적이고 일관된 이슈를 작성하기도 한다. 3. 이슈 템플릿 지정하기 (1) Se..
이번 프로젝트를 진행하면서 처음으로 테스트 코드를 작성해보았다. 그 전에는 인강 강사님이 치는 것만 따라쳐봤는데, 실제 프로젝트에 적용하려니 스프링부트가 뜨는 데 너무 오래 걸렸다🥲 정확한 시간은 재보지 않았지만 대략 3~5초의 시간이 걸렸고, 이에 대한 해결방법을 찾다가 Mockito라는 걸 사용해보게 되었다. 1. Mockito란? Mockito는 Mock, 쉽게 말해 가짜 객체를 지원해주는 라이브러리이다. 가짜 객체를 사용하면 단위 테스트가 편해진다. 기존의 통합 테스트는 모든 빈을 띄우기 때문에 실행하는 데 시간이 오래 걸린다. 또한 다른 클래스의 정상 동작 여부에 따라 테스트 결과가 바뀐다는 문제점이 있었다. Service의 createTag()가 정상 동작하는 걸 확인하고 싶어도, Reposi..
1. 문제 코드 import static org.junit.jupiter.api.Assertions.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @WebMvcTest(TagController.class) class TagControllerTest { @Autowired private MockMvc mockMvc; @Autowired private ObjectMapper objectMapper; @MockBean private TagServic..
2주차를 맞이한 팀 프로젝트 멘토링 회고. 사실 2주차에는 개발을 시작하는 게 목표였는데, 기획이 길어지면서 개발을 진행하지 못했다. 1. 무슨 일이 있었나요? 이번주는 정말 많은 일이 있었고, 많은 일을 했다. 하루에 기본 6시간 이상을 프로젝트에 투자했다🥲 잔업의 잔업의 잔업... (1) 기획 회의 1차 피드백을 기반으로 기획을 많이 수정했다. 프로젝트 볼륨이 크다는 피드백을 받아서 원래 있던 목표 기능을 없애고, 대신 보상 시스템을 넣어 조금 더 가벼운 방향으로 가기로 했다. 원래 우리 프로젝트의 목표는 '실수를 통해 성장할 수 있다는 것을 보여주자'는 것이었는데, 실수는 많이 하면 좋은 건가? 라는 물음 아래 서비스 주제가 '성장에 중점을 둔 실패 관리 서비스'와 '위로에 중점을 둔 실수 공유 서..
gorapaduckoo
진화의 돌