몬그로이

TIL_038 본문

카테고리 없음

TIL_038

Mon Groy 2024. 6. 13. 21:47

https://techblog.lotteon.com/git-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%A5%BC-%EB%A8%B8%EC%A7%80%ED%95%A0-%EB%95%8C-%EC%B6%A9%EB%8F%8C%EC%9D%B4-%EB%B0%9C%EC%83%9D%ED%95%A0-%EC%88%98-%EC%9E%88%EB%8A%94-%EC%82%AC%EB%A1%80-d72a21c520a5

 

Git 브랜치를 머지할 때 충돌이 발생할 수 있는 사례

똑똑한 Git 은 최대한 충돌 없이 소스를 병합(merge) 해 주려고 하지만, 사람이 소스를 봤을 때도 의사결정이 필요해 보이면 어떻게 될까요? Git은 어쩔 수 없이 수동으로 충돌을 해결시킨 머지커밋

techblog.lotteon.com

 

이전 팀프로젝트 담당 튜터님께서 주신 링크


IntelliJ 한 줄 자동완성 기능이 있는 사람은 끄는게 좋겠다는 제안이 있어 혹시 몰라 확인해 보았는데

윈도우버전에는 그 기능이 아예 없는 것 같다


코드카타를 너무 오랜만에 해서 그런지 살짝 헷갈린다

아직 완전 숙지된 것이 아니라서 그런듯..

21. 하샤드 수를 찾는 로직을 짰는데, 하면서 if문의 retrun 을 굳이 적지 않아도 되는 구조를 만들 수 있다는 걸 알았다

 

https://mongroy.tistory.com/99

 

코드카타

// 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다.// 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요.// x는 1 이상, 10000 이하인

mongroy.tistory.com

 


Kakao 소셜 로그인에 대해 학습하는데 인증과 인가가 섞여 있어서 이해하기 힘들었다

이전에는 별개로 생각했는데, 이번에는 그게 아닌지라 혼동이 왔기 때문이다

또한 주의할 점이, application 과 유저를 별개로 보는 게 아니라

application 을 이용하려는 user 를 기준으로 생각해야 한다는 것이다

따라서 시작은 " user 의 로그인시도" 이다

 

과정을 정리해 보면,

1. 사용자가 로그인을 시도하면 application 은 Kakao 에 "너네 서비스 사용할게" 라는 인증[인가] 를 받는다

 -> 그러면 Kakao 측에서 인증[인가] 되었다는 code를 전해준다

 

2. 받은 인증/인가 코드로 "우리 유저 로그인 시키기 위한 API 를 사용할 수 있는 AccessToken"을 요청한다

 -> Kakao 측에서 인증/인가 코드를 확인하여 AccessToken 을 발행해 준다

**getToken 메서드  : Kakao 가 token 발급을 위해 정해둔 Uri +  Kakao에서 요구하는 Http 형태(Header 와 Body) 설정 +  properties 에 설정해 두었던 uri (Kakao 에 AccessToken 보내는 주소(callback) +  인가코드

 

3. 받은 토큰으로 유저를 로그인시키기 위한 API를 호출한다

그 때 AccessToken 과 함께 User 의 메일주소와 비밀번호를 전달한다

 -> Kakao 에서 유저 정보와 Application 의 AccessToken 을 받으면

 AccessToken의 (유효성)확인, 존재하는 유저인지 확인 후

Application 에게 유저에 대한 정보를 넘겨준다

**이 때 시간이 너무 걸릴 경우, 무한대기를 막기위 강제종료 설정을 해두면 좋다(RestTemplateConfig)

 

4. 유저정보를 확인 후, DB에 등록되지 않은 유저임이 확인되면 회원가입을 진행한다

3번에서 받아온 user 정보를 바탕으로  DB에 등록한다

 

5. Application 을 사용할 수 있는 토큰을 발행하여 유저에게 건네준다 

 

+ 내 생각인데, 지금 배우는 내용은 뭔가 생략된 과정들이 더 있는 것 같다

예를 들면 4번의 경우, 유저가 가입하겠다는 동의를 얻은 다음 진행되어야 하는 것이 맞을 것이다

 


개인과제를 위해서 전에 만들었던 내 todo 관리 app 을 실행해보니 에러가 발생했다

그걸 고치려면 security 로그인에 대한 이해가 필요하기 때문에 예전 강의, 자료를 다시 봐야만 하는 상태이다

 

일반 로그인, Security 로그인, JWT 로그인, Security JWT 로그인 의 차이가 아직도 헷갈린다

사실 정리가 됐다고 생각했었는데, 팀 프로젝트 기간동안 다 뒤죽박죽 된 듯 하다

 

로그인시 차이를 알아보기위해 숙련주차 강의를 다시 들었다

JWT 란 무엇일까? 라는 강의에서 예전엔 보이지 않던 부분이 또 보였다

지금까지 그 강의만 6번은 본 것 같은데 5번째까지는 보이지 않던 부분이 보인 것

더 와닿았다는 말이 더 맞을 것이다

 

또한

Servlet 이 자동으로 생성된다는 것, 그걸 "가져와서" 사용한다는 것

도 잊고 있었다는 걸 깨달았다

 

그 외 새롭게 보인 것들

passwordEncoder.matches(password, user.getPassword()) 에는 password 를 암호화 처리 기능이 있어

Encoder 인 Bcrypt 없어도 됨

boolean 타입의 필드값을 가져올 때는 isABC 처럼 is~ 로 사용한다

어떤 메서드를 수행할 때 에러처리하는 방법 : try ~ catch

Security 는 기본적으로 Filter 기능을 사용하며, Session 방식으로 동작함

 


https://mongroy.tistory.com/101

 

기타 한 일

아침에 메모장을 정리하면서한 달 전 쯤에 적어두었던 의문들을 보았다return 값과 반환타입, 기본형인지 아닌지 등지금 보면 답이 당연히 나오는 기초적인 것에대한 의문이 적혀있었다그걸 보

mongroy.tistory.com