dev (7) 썸네일형 리스트형 [React] Note2. Protected Route Note1. Proetected Route- Protected Route는 React Router에서 특정 경로 접근 전에 인증/권한을 확인하는 컴포넌트이다. - 중요한 자원 (관리자 대시보드 등) 의 UI 노출을 방지할 수 있다. 하지만 개발자 도구로 우회가 가능하기에 완전한 보안은 불가능하고 서버단에서 API 접근에 대한 보안처리는 반드시 따로 해줘야만 한다. 이것은 CSR (Client-Side-Rendering)의 한계로 Spring MVC나 Next.js같은 SSR(Server-Side-Rendering) 방식을 사용하는 프레임워크는 Nginx 같은 프록시에서 html 자원 호출 자체를 서버단에서 제한할 수 있으나, CSR은 불가능하기 때문이다. 예시로 사용자가 .../admin 페이지로 접근.. [Git] Your local changes to the following files would be overwritten by chekcout error: Your local changes to the following files would be overwritten by checkout: NimdaLandingPage/package-lock.jsonPlease commit your changes or stash them before you switch branches.Aborting 현재 브랜치의 파일과 이동하고자 하는 브랜치의 파일이 일치하지 않을 때 발생하는 오류이다.해결 방안은 현재 브랜치의 변경 사항을 커밋하거나 stash 명령어를 사용해 현재 브랜치의 변경사항을 임시로 저장한 뒤 이동할 브랜치에서 작업을 마치고 다시 되돌아와서 임시로 저장한 내용을 제거하면 된다. git stash git stash list로 stash된 파일 이력.. React Note1. state, variable useState, useEffect Note1. React Rendering mechanism React의 Component는 Rendering 상태가 변경될 때마다 함수를 다시 렌더링한다. 상태(State) : React가 감시하는 데이터이다. 상태가 변하면 리액트는 UI를 다시 렌더링한다. 변수(let, const) : 렌더링될 때마다 초기화되며 값이 변하더라도 UI는 렌더링되지 않는다. 즉, 상태가 변경되면 리액트는 변경된 컴포넌트를 추적해 업데이트된 상태를 반영하여 UI를 자동으로 리랜더링 하지만 변수가 변경된다고 하더라도 UI를 자동으로 랜더링하지는 않는다. Note2. useState useState는 컴포넌트 내부에서 동적 데이터를 관리할 때 사용하는 일종의 기억 장치이다. state : 현재 상태 값setState : 상.. [Git] Branch Protection Rule 해당 글은 Github에서 Branch를 보호하는 룰을 설정하는 방법에 대해 다룬다. 특히 팀 협업에 있어서 Main Branch의 Rule을 설정하는 것은 매우 중요하다. 우선 Team Repository에 들어가 브랜치 규칙을 할당할 팀을 먼저 생성한다. Branch Name & Enforcement StatusRepository Settings Rulesets로 들어가 Ruleset Name, Enforcement Status를 Active한다. Bypass list Rulset을 무시하고 직접 브랜치에 Merge, Push 가능한 Organization Group을 설정한다. 프로젝트 리더나 중요한 멤버만 설정할 수 있도록 하자. Target branches BranchRule을 적용할 Br.. [Android] Activity, Fragment, Inflater 개인적인 학습 용도로 정리한 글이기에 잘못된 내용을 포함하고 있을 수 있습니다. Inflater란?xml로 정의한 레이아웃을 메모리에 올리고 객체화시키는 함수모든 xml 레이아웃은 Inflater를 통해 객체화된다. Activity With InflaterActivity로 화면을 생성할 경우 Java/Kotlin 소스코드와 xml 레이아웃 파일 2개가 생성된다.나는 Activity로 화면을 생성했을 때 Inflater를 호출한 적이 없는데?라고 생각할 수 있으나Activity에서 onCreate() 메서드 내부의 setContentView() 메서드가 내부 생명주기에서 자동으로 Inflater를 호출해 주기에 inflater를 사용하지 않는 것처럼 보이는 것이다. public class MainActi.. JWT #JWT란?정보를 안전하게 전송하기 위한 표준 규격서버가 상태를 저장하지 않는 Stateless 방식이다.서명 정보(Signature)를 통해 정보가 위조되지 않았음을 보장한다. (무결성 보장) JWT의 구조JWT는 dot(.)으로 구분된 세 가지 영역 (Header, Payload, Signature) 으로 나눈다 Header→ 어떤 알고리즘으로 서명했는지, 토큰 타입은 무엇인지 등 메타 정보를 담는다.ex) { “alg” : “HS256”, “typ”: “JWT” }JSON객체(헤더)를 Base64Url로 인코딩하여 xxxxx를 만든다. Payload→ 서버와 클라이언트가 주고받고자 하는 “실제 정보”를 담는다. 이 정보를 클레임(Claim)이라고 부른다.등록된 클레임 (Registered Cla.. Session Session 기반 인증 방식이란?사용자의 상태 정보(로그인 여부 등)를 서버에 저장하는 Stateful 상태 유지 방식이다.세션은 클라이언트가 서버에 요청을 한 시점이 언제인지에 따라서 동작이 달라진다. 가장 흔하게 사용되는 로그인 동작을 기반으로 "세션"의 동작에 대해 소개한다.세션 동작 방식최초 요청 (로그인)“클라이언트” → 로그인 정보를 서버에 전달 (ID: User, Pw: 1234)“서버” → DB에서 아이디/패스워드를 검증 후 User 전용 “세션 저장소”를 생성. 해당 저장소에는 이 사람은 User이고 “관리자” 권한이 있다.. 등의 정보를 저장함“서버” → 클라이언트에 반환할때 header의 Set-Cookie에 session-ID를 담아서 반환“클라이언트” → 응답 헤더의 Set-Co.. 이전 1 다음