my code archive
my code archive
article thumbnail
노드&리액트 공부기록(14) - 회원가입, 로그아웃 만들기

🤍회원가입 만들기 회원가입에는 전에 만들어둔 register.js를 활용할 것이다. 이 화면을 회원가입으로 바꿔보도록 한다. 로그인 화면과 거의 유사하다. onChange 이벤트도 로그인과 거의 유사한데, 한 가지 추가된 것은 비밀번호 확인 이벤트이다. 비밀번호와 비밀번호 확인에 입력한 내용이 같아야 하기 때문이다. const onSubmitHandler = (event) => { event.preventDefault(); if (Password !== ConfirmPassword) { return alert('비밀번호와 비밀번호 확인은 같아야 합니다.') } types.js 에 REGISTER_USER 타입을 추가해 주고 export const REGISTER_USER = "register_user";..

article thumbnail
노드&리액트 공부기록(13) - 리덕스(Redux) 사용하여 로그인 페이지 만들기

현재 Boiler Plate는 로그인과 회원가입 부분을 Formik과 Yupdlfk이라는 라이브러리를 사용하여 좀더 복잡하게 만들었으나 기본강의이기 때문에 기본 기능만 가진 로그인 페이지를 만들어 보도록 한다. 로그인 이메일 비밀번호 확인 1. 로그인 화면 생성 앞서 언급했던 props, state 중에서 로그인 화면 안에서 데이터 변경 시에는 state에 변화를 주어서 data의 변화를 줄 수 있음. 2. React Hook에서 state 만들 때에는 useState를 사용한다. const [Email, setEmail] = useState("") const [Password, setPassword] = useState("") initialState는 처음 값이 어떻게 되는지 설정하는 것이라 "" 빈칸..

article thumbnail
노드&리액트 공부기록(12) - Redux란, 리액트에 리덕스가 필요한 이유, Props, State

🔍리덕스(Redux)란? state 상태 관리 library 리덕스는 자바스크립트 app을 위한 예측 가능한 (predictable) state container 이다. 리액트뿐만 아니라 Angular, jQuery, vanila JavaScript 등 다양한 framework와 작동되게 설계되었다. 즉, 리액트만을 위한 Library는 아니다. 🔍리액트에 리덕스가 필요한 이유? 리액트로 프로젝트 진행 시 Component 는 local state를 가지게 되고, 어플리케이션은 global state를 가지게 된다. ✅local state : 각각의 Component가 가지는 state. ✅global state : 어플리케이션 전체에서 global state는 유지, 즉 local state는 glob..

article thumbnail
노드&리액트 공부기록(11) - CORS 이슈, Proxy로 해결하기

✅교차 출처 리소스 공유(CORS) 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에서 알려주는 체제 웹 애플리케이션은 리소스가 자신의 출처와 다를 때 교차 출처 HTTP 요청을 실행한다. 하지만 보안상의 이유로 브라우저는 스크립트에서 시작한 교차 출처 HTTP 요청을 제한한다. 이렇게 다른 출처의 리소스를 불러오려면 그 출처에서 올바른 CORS 헤더를 포함한 응답을 반환해야 한다. server: 3000번, client: 3000번 / 같은 port끼리 request를 보내는 것은 문제가 없지만 server: 5000번, client: 3000번 / 이렇게 서로 다른 port끼리 정보 교환이 있을 때 내가 알지 못하는 port에서 일방적으로..

article thumbnail
노드&리액트 공부기록(10) - bolier-plate 기반의 구조로 변환하기

대략적인 구조 설명 🤍Boiler - Plate에 맞게 구조를 변경해 보도록 한다. 1. src 아래에 _action / _reducers / components / hoc / utils 폴더 생성 _action / _reducers : Redux를 위한 폴더들 components/views : Page를 넣을 폴더 2. components/views 폴더에 각각의 폴더, 파일 생성 파일 안에는 rfce 단축키로 간단한 함수를 추가해 주었다. import React from 'react' function Footer() { return ( Footer ) } export default Footer 🤍React Router Dom React에서는 페이지 이동 시 React Router Dom 이라는 것을 ..

article thumbnail
노드&리액트 공부기록(9) - 리액트란?, Real Dom , Virtual Dom, React 설치, npx, npm 차이점

🔍React란? 리액트(React)는 웹 프레임워크로 자바스크립트 라이브러리의 하나로서 사용자 인터페이스를 만들기 위해 사용된다. facebook에서 제공해주는 프론트앤드 라이브러리라고 볼 수 있다. 싱글 페이지 애플리케이션, 모바일 애플리케이션 개발 시 토대로 사용될 수 있다. 결론: 현재 많이 활용되고 있는 웹&앱의 View를 개발하는 데에 도움을 주는 인기있는 라이브러리! 🔍React 특징 1. Data Flow : 데이터가 단방향 흐름을 가짐. 2. Component 기반 구조 : 독립적인 단위의 소프트웨어 모듈. React는 하나의 UI를 여러 컴포넌트를 쪼개어 만듦. 3. Virtual Dom 4. Props and State 5. JSX 🔍Real Dom vs Virtual Dom Real ..

article thumbnail
스프링부트 공부기록(10) - 게시판 프로젝트 :: 스프링 시큐리티, OAuth 2.0 구글 로그인 구현하기

🔍스프링 시큐리티와 스프링 시큐리티 Oauth2 클라이언트? 많은 서비스에서 구글, 페이스북 등 소셜 로그인 기능을 사용하는 추세. 그 이유는 직접 구현하는 것보다 OAuth를 써서 구현하는 것이 더 간단하기 때문이다. 로그인 시 보안, 비밀번호 변경&찾기 등등 모든 서비스를 소셜 서비스에 맡기고 그외의 개발에 집중할 수 있다. 🤍구글 서비스 등록 1. 구글 서비스 등록 구글 클라우드 플랫폼 으로 이동해서 프로젝트를 만든다. API 및 서비스로 이동해서 사용자 인증 정보를 만든다. 먼저 동의화면을 구성해준 다음 OAuth 클라이언트 ID를 만들어준다. 스프링 부트2 버전의 시큐리티에서는 기본적으로 {도메인}/login/oauth2/code/{소셜서비스코드} 리다이렉트 URL을 지원하고 있다. 사용자가 별..

article thumbnail
노드&리액트 공부기록(8) - Auth 기능, 로그아웃 만들기

🤍Auth 기능의 필요성 홈페이지에는 로그인이 필요한 기능이 있고 필요하지 않은 기능이 있다. 페이지 이동 혹은 게시판 글을 쓰거나 지울 때 로그인이 되어 있는지, 관리자인지 or 유저인지 등을 체크하기 위해 필요하다. 지난번 로그인 시 생성한 토큰을 서버에서는 DB에, 클라이언트는 Cookie에 토큰을 넣어두었다. 먼저 클라이언트에서 쿠키에 담겨있는 토큰을 서버에 전달한다. ㄴ 이 토큰은 인코드 되어있으므로 디코드시킨 다음 USER ID로 보낸다. 해당 USER ID 토큰이 DB에 있을 경우 인증 완료. 없을 경우 글쓰기 권한을 부여하지 않음. 1. Auth 라우트 만들기 2. 미들웨어 auth.js 만들기 인증처리를 하는 곳 클라이언트 쿠키에서 토큰을 가져온다. 토큰을 복호화한 다음 유저를 찾는다. ..

반응형
반응형