질문 리스트
프로젝트 관련 질문
[기술] 카카오 OAuth 에 관한 질문
- 현재 백엔드가 구현하려는 방 유저가 카카오 로그인 버튼을 누르면, 우리서버/oauth 창으로 가게 만들고, 우리 서버에서 카카오서버와 인가 로직,인증 로직 전부 처리 우리 DB에 회원 등록 혹은 회원 확인 과정 거친 후 클라이언트 /홈으로 리다이렉트 시켜서 response 보내는 방식 입니다.
- Access token 은 응답헤더로, 유저정보는 응답바디에 json 형태로, refresh token 은 Cookie로 보내겠다. 고 하셨습니다.
- fetch 나 axios를 쓰지 않고, window.location.href 로 창만 이동 시킨 건데 클라이언트에서는 응답을 어떻게 가져와야하는가? 가 고민입니다. 페이지가 리다이렉트 됐을 때 리스폰스를 어디서 어떻게 받아오는 코드를 작성해야 할지 잘 감이 오지 않습니다.
.png?table=block&id=c65e4fa0-c225-4a88-b984-2dd4605ea76b&cache=v2)
> 서비스 관점에서 생각할 것. “서비스 적으로 옳은건 뭘까? “ 생각해 보세요 (보안적인 측면에서 지금 방식이 더 옳을 것.)
> 서버에서 홈으로 보내면,
> Access Token 값만 알면 유저 정보를 알 수 있다.
백엔드는 url을 강제로 리다이렉트(⇒ url) 시켜준다고 했다. → url 파라미터에 Access Token을 담아준다.
- [힌트] 관찰..?자? → useEffect 로 하던지 []에 값을 넣어주기
→ 어떡하면 가져올수잇을지 생각해보자. key-value 토큰=토큰내용 있는지 지속적으로 관찰하는 관찰자를 만들어 보자.
: 결국 응답 값은 프론트가 못받아요 URL 로 받는 수밖에없슈…ㅠㅠ
- 로그인 아닌, 다른 페이지에서 로그인을했을 때 ? 서버가 로그인 하기 이전 페이지로 리다이렉트를 시켜야하나? 클라이언트가 리다이렉트를 시켜야하나 ?? → [힌트] 통역사…?를 통해 소통한다…?
- 클라이언트만의 미들웨어(통역사)를 만들어 서버와 통신한다.
로그인 라우터
를 만들어 볼까- 우리가 필요로하는 역할을 만들고, 배치하는 작업을 한다. (어디에 위치시킬지)
- 홈페이지에서 로그인한다. 홈에서 리다이렉트를 하는게 맞을까? 홈이 이거까지 알아야 해?! 미들웨어가 있다면 좋지 않을까?
- 어떤 페이지가 통역사 역할을 맡으면 좋을까?
- 리액트 라우터를 사용해 로그인 이전 페이지로 보낸다. 위험하지 않을까? 이전 페이지를 기억할까?
- 토큰을 url에 담아 전달할 경우 보안 상 위험하지 않을까?
- 리스크를 없앨 수는 없다. 만료 기간을 짧게 잡고 Refresh Token을 사용하자.
- OAuth에서 전달하는 토큰은 이미 암호화되어 있기에 url에 노출되어도 위험도가 낮다.
[기술] 유저 프로필 설정 페이지에서 유저의 프로필 선택에 따라 서버에게 PATCH 요청으로 전달하기
res.body로 넘어온 유저info 안에 카카오 프로필 src url 이 있을 것이라고 가정하고 해당 페이지를 구현중에 있습니다.
유저가 직접 프로필 사진 이미지를 업로드하는 기능을 하는 profile setter 라는 컴포넌트를 하나 만들고 그안에 이미지 태그와, <input type=file>태그를 넣어놓고 유저가 사진을 올리면 미리보기가 가능하게 만들었습니다. FileReader를 사용하여 base64 url로 생성까지는 할 수 있도록 했습니다.
다만 이제 유저가 어떤 선택(카카오프로필 사용 / 직접 올린 이미지 사용) 을 했냐에 따라서
밑에 회원가입 버튼에 제출되어야할 양식 데이터를 서버로 어떻게 제공해야할지 잘 모르겠습니다.
useState를 써서 업로드된 이미지가 따로 없다면,
그냥 form 데이터 profile field 안에 kakao 프로필 url 을 넣고,
만약 있다면, 해당 이미지 base64 URL 을 넣어야 하는지 잘 감이 오지 않습니다.
.png?table=block&id=93ac027c-4e66-40e8-8671-044718374177&cache=v2)
- 과연 이 페이지가 필요할까? 카카오 로그인의 장점중에 하나는 유저가 회원가입 데이터를 입력하지 않아도 되게 하는 것이다. 그럼 과연 이페이지가 필요한가?
- 유저가 올린 사진 file src url 을 어떻게 폼데이터 안에 넣어줄까?
- KAKAO / IMAGE 중에 하나만 선택되도록 하는 방법?
- 버튼을 흑백/컬러로 만들어 선택됐는지를 표시해준다.
- KAKAO / IMAGE도 하기 싫고 기본(사람) 이미지를 하고 싶다면? 지금 당장 필요한 기능일까?
- 선택지를 하나 더 만든다(버튼 혹은 체크박스 등) → 마이페이지에서 삭제하기가 좋지 않을까?
- 회원가입 페이지를 만들 경우 똑같은 기능을 2번 구현하게 된다 → 시기상조 / 백로그에 두는게 맞지 않을까?
→ 위 2개의 기술 토글의 이미지가 안보이실 경우 피그마 url 에서 확인 하실 수 있습니다.
프로젝트 외 질문
리얼월드로 개인 포트폴리오를 준비하려는데 충분할까요?
-React-realworld-starter-kit
LeeHyoGeun-create • Updated Mar 12, 2023
플젝할때 아래 순서대로 하는게 좋다고 해서
Discussion ⇒ Issue ⇒ PR ⇒ Code Review ⇒ Merge ⇒ SEMVer ⇒ Release
리얼월드 프로젝트로 준비 할 때
Issue ⇒ PR ⇒ Merge ⇒ SEMVer ⇒ Release
(SEMVer 아직 써본적이 없어서 검색하면서 적용해볼 것 같습니다)
순서대로 진행할 계획이고
스택은
- recoil
- styled-components
- react-query (필요하다면)
- react-router
- react-icon
으로 진행할 예정입니다.
내가 한 거를 왜 했는지 근거를 댈줄 아는 것이 더 중요하다. (근짱 개발구현 능력을 키우고 싶다는 근거를 어필했었음) 이런걸 잘하는 개발자가 되고 싶어서 이렇게했고 뭐가 어려웠고 뭘 배웠는지 등을 어필.
- 부족하지 않은 프로젝트란 뭘까?
- 의도를 물어봐야 알 수 있다는게 아쉽다.
- 프론트엔드가 집중해야할 것은? 리액트…?
- 서비스 / 인프라 / 디자인 -> 요구 역량이 다양하기에 없다!
- 나의 의도를 잘 설명하는 것이 중요하다 -> 관심사 / 목적
- 내가 일하고 싶은 회사 / 개발 목적 등을 생각하는게 더 중요하다!
- 평생 어떤 기술을 익히며 살 것인가
적어도 코테를 보는 회사에 지원을 해야하는게 좋다고 들었는데 코테의 유무가 회사를 판가름하는데 많이 도움 되나요?
- 개인 취향. 일반화할 수 없다.
- 왜 회사가 코테(수능)를 보는걸까?
- 지원자가 너무 많다…
- 코테를 준비하면 선택의 폭이 넓어진다.
시간 여유가 있다면 이 팀 프로젝트가 아니라 개인적이라도 꼭 사용해봤으면 하는 기술이 있으신가요?
- 타입스크립트!!! (ㅠㅠ)
- 나머지는 하고싶은것 선택해서 할것!
- 다양한 기술을 접하는 것보다 하나의 기술을 깊게 배우는 것이 중요하다!
- 뭘 배웠고, 어떤 시행착오를 겪었고, 어떻게 해결하는지가 더 중요하다!
- 그래야 회사에서 다른 기술을 추가하더라도 어떻게 그 사람이 배울지 판가름할 수 있다.
취업을 위해서 블로깅이 중요한가요? 코테, 플젝 등 취업 준비 시 우선순위는 어떻게 될까요?
- 회사한테 맞춰서 우선순위를 두고 준비 (1차는 붙어야지… 코테 / 과제 준비) (2차도 붙어야지… CS 등의 기술면접)
- 블로깅은 중요한데, (다른 모든 방법들 보다 제일 쉬워서) 중요하다고 말하고싶다.
- 블로깅 외에 더 잘할 수 있는게 있다면… 강점 1개가 있다면 괜찮다!(코테, 플젝 등)
- 블로깅 시간이 오래 걸리면 오히려 시간 낭비가 될 수도 있으니 생각해보자!
- 블로깅해서 하트 받을 수 있을까?(다른 개발자들의 인정)
- 내가 이해한 걸 잘 표현해야 한다(설명을 돕기 위한 그림 등)
- 단순 기록용이라면 어떤 플랫폼을 사용하든 상관없다!
- 취직을 위한 활동과 나(개발자)를 위한 활동을 구분할 수 있어야 한다!
국비학원이 많이 생겨나고 독학으로도 충분히 번듯한 웹사이트를 만들 수 있어 이런 내용을 포토폴리오로 많이 사용할 텐데 이러한 상황 속에서 어떤 점(기준)을 보고 신입을 뽑는걸까요?
- 회사마다 요구하는 역량이 다르기 때문에 어려운 질문이다!
- 커뮤니케이션 / 융화 능력 / 기술 등
- 회사 도메인에 따라 나의 커리어 빌딩이 달라질 수 있다.
면접관마다 다르겠지만 면접볼 때 주로 어떤 걸 위주로 평가하나요? Ex) 깃허브를 본다면 깃허브에 올라온 코드와 전체적인 관리 중 어떤 걸 보는지? Ex) 포토폴리오를 본다면 프로젝트의 완성도와 기술의 종류 중 어떤 걸 위주로 보는지?
- 면접관의 성향에 따라 달라질 수 있다. 숲 → 나무
- 깃허브 : 전체적인 관리를 보고 세부적인 코드를 볼 수 밖에 없다.
- 포트폴리오 : 전체적인 내용을 보고 관심사항에 대해 질문을 한다.
- 작성한 내용 그대로 평가한다. → 강조하고 싶은 내용을 중심으로 둔다.
회사를 선택하는 기준이 있을까요?
- 나의 강점을 필요로 하는 회사 / 재밌게 일할 수 있는 회사를 선택하는게 중요하다.
현직자들은 ChatGPT를 어떻게 활용하고 계신지 궁금합니다.
- 단순 코더는 ChatGPT에 의해 사라지지 않을까?
- ChatGPT에 질문을 잘해서 정보를 얻는 것이 중요하다.