분류 전체보기 224

JWT

헤더 (Header): JWT의 메타데이터를 포함하며, 토큰의 타입과 사용할 서명 알고리즘을 지정합니다.페이로드 (Payload): 실제 정보를 담고 있는 부분으로, 다양한 클레임(claims)을 포함합니다. 클레임은 토큰의 주체, 만료 시간, 사용자 정보 등 다양한 데이터를 담고 있습니다.서명 (Signature): 토큰의 무결성을 검증하기 위한 서명입니다. 헤더와 페이로드를 인코딩한 후, 비밀 키를 사용하여 서명합니다. 이 서명을 통해 토큰이 변조되지 않았음을 확인할 수 있습니다. 비유로 설명JWT를 등기 우편에 비유해보겠습니다.헤더 (Header):역할: 등기 우편 봉투의 외부에 적힌 정보.비유: 등기 우편 봉투에는 발송자와 수신자의 정보, 그리고 우편 종류가 적혀 있습니다. JWT의 헤더는 토큰의..

claim

JWT(JSON Web Token)에서 클레임(Claim)은 토큰 안에 포함된 정보 조각을 의미합니다. 클레임은 사용자에 대한 속성이나 토큰에 대한 메타데이터를 담고 있으며, 세 가지 유형으로 구분됩니다: 등록된 클레임(Registered Claims), 공개 클레임(Public Claims), 비공개 클레임(Private Claims).비유로 설명클레임을 비유로 설명하자면, JWT를 신분증(ID 카드)에 비유할 수 있습니다. 신분증에는 소지자의 정보를 담고 있는 여러 필드가 있습니다.등록된 클레임 (Registered Claims)등록된 클레임은 신분증의 표준 필드와 같습니다. 예를 들어, 신분증 번호, 발행일, 만료일 등이 있습니다. JWT에서는 이러한 필드로 iss(발행자), sub(주체), exp..

React_{children}, import vs const-require

children는 React에서 특별한 프로퍼티로, 컴포넌트의 열림과 닫힘 태그 사이에 중첩된 콘텐츠를 나타냅니다. 이것은 React에서 예약된 키워드로, 컴포넌트가 전달된 자식 요소들을 렌더링할 수 있게 합니다. children을 Children과 같이 다른 이름으로 변경하면, React는 이를 중첩된 콘텐츠를 위한 특별한 프로퍼티로 인식하지 않고 일반적인 프로퍼티로 취급하여, 예상한 대로 콘텐츠가 렌더링되지 않습니다. BasicLayout 컴포넌트에서 children 프로퍼티는 요소 내부에 중첩된 콘텐츠를 렌더링하는 데 사용됩니다. 이것을 Children으로 변경하면 React는 더 이상 이를 특별한 프로퍼티로 인식하지 않게 되어 콘텐츠가 제대로 렌더링되지 않습니다. 예를 들어, 다음과 같이 수정하..

@ElementCollection_임베디드 테이블

Member 클래스와 @ElementCollection의 관계Member 클래스는 @ElementCollection을 사용하여 memberRoleList라는 필드에 여러 개의 MemberRole 객체를 포함합니다. @ElementCollection은 기본적으로 자식 엔티티가 부모 엔티티에 종속되며 독립적으로 존재하지 않는 경우에 사용됩니다.연관관계 설명부모 엔티티: MemberMember 클래스는 데이터베이스에서 독립적으로 존재할 수 있는 엔티티입니다. 이 엔티티는 @Id로 정의된 기본 키 필드인 email을 가지고 있습니다.자식 엔티티: MemberRoleMemberRole은 독립적인 엔티티가 아니며, Member 엔티티에 종속됩니다. Member 엔티티는 여러 개의 MemberRole을 가질 수 있습..

CORS, CSRF

이 코드는 스프링 애플리케이션의 CORS 설정을 정의합니다.addMapping("/")**: 모든 경로에 대해 CORS를 적용합니다.allowedOrigins("*"): 모든 도메인에서의 요청을 허용합니다.allowedMethods("HEAD", "GET", "POST", "PUT", "DELETE", "OPTIONS"): 나열된 HTTP 메서드를 허용합니다.maxAge(300): 사전 요청(프리플라이트 요청)의 캐시 시간을 300초로 설정합니다.allowedHeaders("Authorization", "Cache-Control", "Content-Type"): 지정된 헤더들을 허용합니다.CORS (Cross-Origin Resource Sharing)CORS는 웹 브라우저에서 다른 도메인(출처)의 리소..

CS)네트워크_TCP&UDP

ㅁ Port 어떤 프로세스가 있다. 이 프로세스가 실행되고, 이 프로세스가 다른 프로세스와 데이터를 주고 받고 싶다.그러러면 통로가 필요하다=> process와 연결된 data path 혹은 data channel  한 컴퓨터 시스템 내에서 여러 포트가 존재할 수 있다.=> port name을 부여해 식별한다.  포트를 통해 네트워크 통신을 한다. 프로세스 간에 통신을 할 때는 아래쪽 레이어를 사용해서 데이터 통신을 한다. 두 호스트 사이에서 데이터를 주고 받는 프로토콜이 Internet 프로토콜이다.다른 목적지 호스트로 보내는데 전송만 하면 된다. 하지만 인터넷 프로토콜은 데이터가 유실될 수도 있고 순서가 보장되지 않는다. 즉, 신뢰할 수 없다.  그러나 프로세스 간의 통신에는 데이터를 안정적으로 주고..

CS 2024.05.30

member-item 테이블 설계

Member 테이블 (고객 테이블):MemberID (PK): 고객의 고유 식별자Name: 고객의 이름Email: 고객의 이메일 주소Address: 고객의 주소Item 테이블 (상품 테이블):ItemID (PK): 상품의 고유 식별자Name: 상품의 이름Price: 상품의 가격Description: 상품의 설명Order 테이블 (주문 테이블):OrderID (PK): 주문의 고유 식별자MemberID (FK): 주문한 고객의 ID (Member 테이블의 외래 키)OrderDate: 주문 날짜Order_Item 테이블 (주문-상품 관계 테이블):Order_ItemID (PK): 주문-상품 관계의 고유 식별자OrderID (FK): 주문의 ID (Order 테이블의 외래 키)ItemID (FK): 주문한 상..

illsang 2024.05.29

JPA_엔티티 그래프

엔티티 그래프를 비유적으로 설명하겠습니다.비유: 쇼핑 카트와 고객 정보상황: 당신은 온라인 쇼핑몰에서 쇼핑 카트와 고객 정보를 처리하는 시스템을 개발 중입니다. 쇼핑 카트에는 여러 개의 상품이 담길 수 있고, 고객 정보에는 고객의 개인 정보와 주문 내역이 포함됩니다.일반적인 로딩 (N+1 문제)상황: 쇼핑 카트에 10개의 상품이 담겨 있고, 이를 데이터베이스에서 로드하려고 합니다.일반적인 방식:먼저 쇼핑 카트 정보를 가져옵니다 (1번의 쿼리).그 후, 각 상품 정보를 개별적으로 가져옵니다 (10번의 쿼리).결과: 총 11번의 쿼리가 실행됩니다. 이를 N+1 문제라고 합니다.엔티티 그래프 (해결책)상황: 같은 쇼핑 카트 정보를 로드하려고 합니다.엔티티 그래프 사용:쇼핑 카트와 연관된 모든 상품 정보를 한 ..

JPA_값 타입 객체

값 타입 객체상품은 고유한 pk 가지는 하나의 온전한 엔티티이고파일은 엔티티에 속해있는 데이터이다. JPA에서는 ‘값 타입 객체’ 컬렉션으로 처리할 때는 @ElementCollection을 활용한다. ‘값 타입 객체’는 엔티티와 달리 pk가 없는 데이터이다. @Embeddable 어노테이션 이용해서 해당 클래스의 인스턴스가 값 타입 객체임을 명시한다.   JPA에서는 엔티티와 값 타입 객체를 구분합니다. 엔티티는 고유한 식별자(Primary Key, PK)를 가지며 독립적으로 존재할 수 있는 객체입니다. 반면, 값 타입 객체는 엔티티에 속하며 고유한 식별자가 없습니다. 값 타입 객체는 엔티티의 속성으로 간주되며, 독립적으로 식별되지 않습니다.  [요약]@Embeddable 로 정의한다. @ElementC..

CS)네트워크_OSI 7계층

■ OSI 7계층   네트워크 통신의 표준을 제공하여,네트워크 장비와 소프트웨어가 상호 운용 가능하게 한다.  각 계층은 독립적으로 설계되며, 특정 계층에서 발생한 문제를 쉽게 파악하고 해결할 수 있게 한다. ㅁ 물리 계층 (Physical Layer) 네트워크 기기 간의 실제 물리적 연결과 비트 전송(비트 스트림)을 담당한다.  비트 전송 : 데이터를 0과 1의 비트로 변환해 물리적 매체를 통해 전송한다. 전송 매체 : 동축 케이블, 트위스티드 페어 케이블, 광섬유, 무선 주파수 등을 사용한다. 비트 전송 : 비트 단위로 데이터를 전송, 물리적 연결의 설치 및 유지보수를 담당한다.프로토콜 & 기기 : 허브, 리피터, 네트워크 어댑터, 모뎀, Ethernet, USB, Bluetooth 등 데이터 링크 ..

CS 2024.05.26