목록CodeStates/Training (36)
Jieunny의 블로그
📣 인접 행렬 길찾기 Q. 주어진 인접행렬에서 한 정점으로부터 다른 정점으로 이어지는 길이 존재하는지 반환해야 합니다. function getDirections(matrix, from, to) { // TODO: 여기에 코드를 작성합니다. if(matrix[from][to] === 1) return true; const queue = []; queue.push(from); const isVisited = new Array(matrix.length).fill(false); isVisited[from] = true; //console.log(matrix[0].length); console.log(isVisited); while(queue.length > 0){ let pop = queue.shift(); i..
📣 유효한 괄호쌍 Q. 입력된 괄호 값들이 모두 쌍이 맞게 올바른지를 판단해 모두 쌍이 맞으면 true 그렇지 않으면 false를 출력하세요. 입력된 괄호 값들이 유효한 경우들은 다음에 해당합니다. 1. 열린 괄호는 같은 타입의 닫힌 괄호로 닫혀있어야 한다. 2. 열린 괄호는 올바른 순서대로 닫혀야만 한다. 3. 모든 닫힌 괄호는 그에 상응하는 같은 타입의 열린 괄호를 갖고 있다. 입력값을 통해 들어오는 괄호는 ()[]{}로만 이루어져 있습니다. const isValid = (str) => { const stk = []; if(str.length === 0 || str.length === 1) return false; // 빈 문자열이거나 괄호 하나면 false for(let i=0; i
📣 스타일 컴포넌트 & 리덕스 & 리액트 라우터를 활용한 투두 리스트 구현하기 𝟭. 파일 구조 src ㄴ components (컴포넌트 파일) ㄴ TodoList.js : TodoItem을 모아 논 TotoList ㄴ TodoItem.js : 하나의 TodoItem ㄴ TodoInsert.js : Todo 입력하는 칸 ㄴ MemoList.js : MemoItem을 모아 논 MemoList ㄴ MemoItem.js : 하나의 MemoItem ㄴ MemoInsert.js : Memo 입력하는 칸 ㄴ pages ( 라우터를 통해 이동할 페이지) ㄴ TodoTemplate.js : 처음 페이지 열었을 때 뜨는 화면(Menu 토글, 햄스터 보기 창도 여기서 띄운다) ㄴ MemoTemplate.js : Header..
📣 깃허브 로그인 인증 사용해서 로그인 기능 구현하기 - client만 구현 𝟭. client 파일 구조 src ㄴ pages ㄴ components ㄴ Loading.js : 로딩 화면 컴포넌트 ㄴ UserInfo.js : 로그인 성공 하면 나타나는 유저 정보 컴포넌트 ㄴ Login.js : Authorization code 받아오기 - Github에 요청을 보내서 Authorization code를 받아온다. ㄴ MyPage.js : 로컬 서버를 통해 Github 리소스 서버에 유저 정보 요청, 로그아웃 - Authorization code를 받아왔다면 App.js의 getAccessToken 함수가 실행된다. - 이 함수를 통해 서버의 /callback 엔드포인트로 요청을 보내고, 응답으로 받아온 ..
📣 Cookie와 Token을 사용해서 로그인 기능 구현하기 - Client 부분은 Cookie 게시물과 같으므로 Server 부분만 설명. 𝟭. 서버 파일 구조 controllers ㄴ helper ㄴ tokenFunctions.js : 토큰 생성, 토큰 검증 함수 구현 ㄴ users ㄴ login.js : server의 login controller 구현 1. request로 받은 id, password와 일치하는 정보가 DB에 있는지 확인 2. 없으면 요청을 거절, 있으면 필요한 데이터를 담은 두 종류의 토큰 생성(access, refresh) 3. request로 받은 checkedLoginKeep 여부 확인 4. true인 경우 accessToken, refreshToken 둘 다 쿠키로 설정..
📣 Cookie 사용해서 로그인 기능 구현하기 > Client 𝟭. 테스트 케이스 Auth - Client ✓ 🧩 유저 정보가 충분하지 않은 상태에서 로그인 버튼을 누를 시 에러메시지가 나타나야 합니다. (361 ms) ✓ 🧩 로그인 버튼 클릭 시 성공적으로 로그인되어야 합니다. (204 ms) ✓ 🧩 로그아웃 버튼 클릭 시 성공적으로 로그아웃되어야 합니다. (144 ms) ✓ 🧩 존재하지 않는 유저의 정보로 로그인할 시 에러메시지가 나타나야 합니다. (66 ms) 𝟮. 파일 구조 src ㄴ pages ㄴ Login.js : 서버로 로그인 요청 보내기 ㄴ MyPage.js : 서버로 로그아웃 요청 보내기 ㄴ App.js : 초기화면 렌더링(Login 페이지인지 MyPage 인지) 𝟯. 코드 구현 📌 Ap..