블록체인(BlockChain)
·
Web지식/web3
Web3 얘기에서 절대로 빠질수 없는 블록체인에 대해 얘기해보려고 한다. aws에서 설명하는 블록체인 내용은 이러하다. 블록체인 기술은 비즈니스 네트워크 내에서 정보를 투명하게 공유할 수 있도록 하는 고급 데이터베이스 메커니즘입니다. 블록체인 데이터베이스는 연쇄적으로 연결된 블록에 데이터를 저장합니다. 네트워크의 합의 없이 체인을 삭제하거나 수정할 수 없으므로 이 데이터는 시간 순서대로 일관성이 있습니다. 그 결과 블록체인 기술을 사용하여 주문, 결제, 계정, 기타 트랜잭션을 추적하기 위해 불변하거나 변경 불가능한 원장을 생성할 수 있습니다. 이 시스템에는 무단 트랜잭션 항목을 방지하고 이러한 트랜잭션의 공유 보기에서 일관되게 생성하는 기본 제공 메커니즘이 있습니다. https://aws.amazon.c..
Http/1.0 ~http/3
·
Web지식/네트워크
HTTP/1.0은 Hypertext Transfer Protocol의 첫 번째 버전 중 하나로, 웹 브라우저와 웹 서버 간의 통신을 정의하는 프로토콜이다. 1996년에 공식적으로 발표되었으며, 오늘날의 웹 통신 기초를 형성함. 주요 특징 및 동작 방식단일 연결, 단일 요청/응답(Single Request-Response per Connection)HTTP/1.0은 기본적으로 하나의 TCP 연결에서 하나의 요청과 응답을 처리한 후 연결을 닫는다. 즉, 클라이언트가 웹 서버에 요청을 보내면, 서버는 응답을 보내고 나서 연결을 종료한다.  제한점연결의 비효율성 : 각 요청마다 새로운 연결을 설정하고 해제해야 하므로, 여러 리소스 요청 시 비효율적이다.지속 연결(Persistent Connection)의 부재:..
Entity 연관 관계 1 대 1 관계
·
Spring
JPA에서 1대1(One -to-One)관계는 두 엔티티 간의 관계가 각각의 엔티티에서 하나의 인스턴스만을 가질 수 있음을 의미한다.정말 간단히 예를 들면, 한 사람(엔티티)은 하나의 여권(엔티티)만을 가질 수 있으며, 그 여권은 한 사람에게만 속할 수 있다. 1대1 관계 설정 방법 단방향 1대1 관계단방향 1대1 관계에서는 한 엔티티가 다른 엔티티를 참조한다. 예를들어 User 엔티티가 Profile엔티티를 참조한다고 가정해보자.@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; @OneToOne @J..
IOC(Inversion fo Control), DI(Dependency Injection)
·
Spring
IoC와 DI는 소프트웨어 개발에서 객체 간의 의존성을 관리하고 구조를 개선하는게 중요한 개념들이다.  IOC(Inversion of Control)IoC는 제어의 역전을 의미한다. 전통적인 프로그래밍에서는 프로그램의 흐름과 객체의 생명 주기를 개발자가 직업 제어한다. 그러나 IoC에서는 이러한 제어 권한을 개발자가 아닌 외부 시스템 또는 프레임워크가 맡게 된다.즉, IoC는 제어 흐름을 개발자가 직접 관리하는 대신, 외부에서 관리하게 하여 프로그램의 유연성을 높이고, 모듈화 및 테스트 용이성을 향상시킨다. IoC의 주요 형태 중 하나는 DI(Dependency Injection)이다. IoC를 사용하는 프레임워크나 컨테이너는 객체를 생성하고, 객체 간의 의존성을 주입하는 책임을 진다. DI(Depend..
JWT(JSON Web Token)
·
Web지식/네트워크
JWT(JSON Web Token)는 웹 애플리케이션에서 사용자 인증과 데이터 교환을 위해 널리 사용되는 표준화된 방법이다. JWT는 주로 사용자 인증을 위해 사용된다. 인증된 사용자가 서버와 클라이언트 간에 안전하게 데이터를 주고받을 수 있도록 도와준다.  JWT의 기본 구조JWT는 세 부분으로 구성된 문자열로, 각 부분은 마침표('.')로 구분된다. Header (헤더)헤더에는 JWT의 유형(type)과 해싱 알고리즘(alg)이 명시된다.{ "alg": "HS256", "typ": "JWT"} 여기서 alg는 서명을 생성할 때 사용하는 알고리즘을 나타내고, typ는 토큰의 유형을 나타내는데, 보통 "JWT"로 설정된다.역할: 헤더는 토큰이 어떻게 서명되었는지 알려줘. 주로 HMAC, RSA, EC..
쿠키(Cookie)와 세션(Session)
·
Web지식/네트워크
쿠키와 세션을 얘기하기 전에 네트워크의 연결성에 대해 설명하겠다. 네트워크 연결성(connectivity)은 네트워크에서 각 노드(컴퓨터, 라우터 등)들이 서로 얼마나 잘 연결되어 있는지를 나타내는 중요한 개념이다. 연결성은 네트워크의 성능, 안정성, 효율성에 큰 영향을 미친다.  연결성의 정의네트워크의 연결성은 네트워크 내의 두 노드 간의 통신이 얼마나 잘 이루어질 수 있는지를 나타낸다. 네트워크가 잘 연결되어 있으면, 각 노드는 다른 노드로 데이터를 효율적으로 전송할 수 있다. 연결성은 네트워크의 물리적 연결, 데이터 전송 경로, 그리고 라우팅 프로토콜에 의해 결정된다. 2. 연결성의 유형1) 물리적 연결성 (Physical Connectivity)정의: 네트워크의 물리적 토폴로지에서 노드들이 어떻게..
인증(Authentication)와 인가(Authorization)
·
Spring
인증(Authentication)인증은 사용자가 누구인지를 확인하는 과정이다. 이는 사용자가 자신이 주장하는 신원을 입증하는 단계로, 다양한 방법을 통해 수행 가능. 주요 특징 신원 확인: 사용자가 시스템에 접근하기 전에 자신의 신원을 증명한다. 인증 방법무엇을 알고 있는가? : 패스워드, PIN, 보안 질문 등의 입력을 요구하는 방식무엇을 가지고 있는가?: 스마트 카드, OTP(One-Time-Password)생성기, 보안 토큰 등 물리적인 아이템을 요구하는 방식무엇인가?: 생체 인식 정보(지문, 얼굴 인식, 홍채, 음성 등)를 활용하는 방식Ex)로그인할 때 사용자 이름과 패스워드를 입력하는 과정지문 인식기나 얼굴 인식을 통해 스마트폰을 잠금 해제하는 과정인증 과정 예시사용자는 시스템에 로그인하기 위해..
JPA란?
·
Spring
JPA란?더 큰 Spring Data 패밀리의 일부인 Spring Data JPA는 JPA 기반(Java Persistence API) 저장소를 쉽게 구현할 수 있게 해줍니다. 데이터 액세스 기술을 사용하는 Spring 기반 애플리케이션을 더 쉽게 빌드할 수 있게 해줍니다.애플리케이션에 대한 데이터 액세스 계층을 구현하는 것은 꽤 번거로울 수 있습니다. 가장 간단한 쿼리를 실행하기 위해 너무 많은 보일러플레이트 코드를 작성해야 합니다. 페이지 매김, 감사 및 기타 자주 필요한 옵션과 같은 것을 추가하면 결국 길을 잃게 됩니다.Spring Data JPA는 실제로 필요한 양만큼 노력을 줄여 데이터 액세스 계층의 구현을 크게 개선하는 것을 목표로 합니다. 개발자는 다양한 기술을 사용하여 리포지토리 인터페이스..
@RestController, @Controller
·
Spring
@Controller 역할: 주로 웹 애플리케이션의 **뷰(HTML 페이지)**를 반환하는데 사용된다.@Controller는 주로 MVC 패턴에서 View를 반환할 때 사용된다.이 애노테이션이 적용된 클래스의 메서드에서 반환된 값은 일반적으로 View Resolver에 의해 JSP, Thymeleaf, HTML 같은 뷰 페이지로 매핑된다.예를 들어, 메서드가 "home"을 반환하면, View Resolver는 "home.jsp" 또는 "home.html" 같은 뷰를 찾아 클라이언트에게 반환한다.데이터만 반환하려면, 메서드에 @ResponseBody 애노테이션을 추가해야 한다 코드로 보는 예시@Controllerpublic class MyController { @GetMapping("/home") ..
web3.0 탈중앙화란?
·
Web지식/web3
웹3.0란?밑에 있는 설명은 AWS에서 정의한 웹3.0이다Web3는 블록체인을 비롯하여 인터넷에서의 데이터 소유권과 제어를 분산시키는 기술을 포괄하는 용어입니다. 대부분의 인터넷 애플리케이션은 최종 사용자 데이터를 저장하고 사용하는 방법을 결정하는 중앙 집중식 기관에서 제어합니다. Web3(Web 3.0, 분산형 웹 또는 시맨틱 웹이라고도 함) 기술은 중앙 집중식 관리 구조와는 달리 커뮤니티 기반 프로젝트를 가능하게 합니다. 커뮤니티 기반 프로젝트에서는 최종 사용자가 데이터를 제어하고, 가격을 결정하고, 기술 개발에 직접적으로 기여하고, 프로젝트 방향에 대한 더 강한 발언권을 갖습니다. 이러한 기술에는 사용자의 상호 작용 방식을 자동으로 규제하는 메커니즘이 있습니다. 따라서 중앙 집중식 기관이 이러한 상..