본문 바로가기

반응형

개발

[Data] JWT란? 소개 "JSON Web Token"의 약자로, 웹에서 정보를 안전하게 전송하기 위한 토큰 기반의 인증 방식 중 하나입니다. JWT는 클레임(claim) 기반의 토큰으로, 정보를 JSON 객체로 표현하고 이를 서명하여 생성됩니다. JWT 내용 Header(헤더): JWT의 유형 및 사용되는 알고리즘 등의 메타데이터를 포함합니다. 이 부분은 Base64로 인코딩되어 있습니다. Payload(페이로드): 실제로 전송되는 데이터, 즉 클레임(claim)이 저장된 부분입니다. 클레임은 사실상 토큰에 담기는 정보를 나타냅니다. 클레임은 등록된 클레임, 공개 클레임, 비공개 클레임으로 나누어집니다. 공개 클레임(Public Claims): 사용자 정의 클레임으로, 충돌을 피하기 위해 URI 형식으로 정의되어야 합니다.. 더보기
[Network] (실시간 통신) WebSocket이란? 소개 WebSocket은 양방향 통신을 제공하는 통신 프로토콜이다. 기존의 HTTP 통신은 클라이언트가 서버에 요청을 보내고, 서버가 응답을 보내는 단방향 통신이였다. 이에 반해 WebSocket은 클라이언트와 서버 간에 양방향으로 데이터를 주고받을 수 있다. WebSocket의 동작 방식에 대하여 설명하겠다. 1. 웹소켓 클라이언트에서 핸드쉐이크 요청(HTTP Upgrade) 응답으로 핸드 셰이크 응답을 받는데, 이때 응답 코드는 101이다. 101은 '프로토콜 전환'을 서버가 승인했음을 알리는 코드이다. 이 과정에서 요청과 응답의 헤더를 살펴보겠습니다. 예제 요청 주소는 : ws://localhost:8080/chat 이다. GET /chat HTTP/1.1 Host: localhost:8080 Up.. 더보기
[Vue.js] Computed 와 Watch 차이점 소개 Vue에서 Computed와 Watch의 차이점을 소개하려고 한다. Computed 속성: computed는 데이터 속성을 기반으로 계산된 값을 반환하는 Vue 인스턴스 속성입니다. 특정 데이터 속성이 변경될 때만 다시 계산되며, 이는 캐싱을 통해 최적화된 성능을 제공합니다. 주로 템플릿에서 계산된 값을 표시하거나, 다른 computed 속성에서 사용되는 중간값을 생성하는 데 사용됩니다. new Vue({ data: { a: 10, b: 20 }, computed: { sum: function() { return this.a + this.b; } } }); Watch 속성: watch는 데이터의 변경을 감시하고 특정 동작을 수행하는 Vue 인스턴스 속성입니다. 데이터의 변경을 감지하면 특정 동작 또.. 더보기
[Spring Boot] Spring Security란? 소개 Spring Boot Security는 Spring Boot 기반의 애플리케이션에서 보안을 구현하고 관리하는 데 도움이 되는 강력한 라이브러리와 프레임워크이다. 초기 셋팅 방법 Spring Boot 프로젝트 생성: Spring Boot 프로젝트를 생성한다, Maven 또는 Gradle과 같은 빌드 도구를 사용하여 필요한 의존성을 추가한다. Spring Initializr(https://start.spring.io/)를 사용하여 초기 프로젝트를 생성하는 것이 좋다. Spring Boot Security 의존성 추가: spring-boot-starter-security 의존성을 프로젝트에 추가하여 Spring Boot Security를 활성화한다. 이를 통해 기본 보안 구성이 활성화됩니다. 사용자 정의.. 더보기
[Flutter] Button Widget 사이즈 조정 Button 사이즈 (넓이,높이)조정 방법 방법 1: 버튼 위젯의 사이즈 속성 사용: ElevatedButton, TextButton, 또는 OutlinedButton과 같은 버튼 위젯을 사용할 때, style 속성을 이용하여 버튼의 스타일을 지정할 수 있습니다. 이 스타일 속성을 사용하여 버튼의 크기를 조정할 수 있습니다. 예제: ElevatedButton( style: ElevatedButton.styleFrom( minimumSize: Size(100, 50), // 버튼의 최소 크기 지정 ), onPressed: () { // 버튼 클릭 시 수행할 작업 }, child: Text('버튼 텍스트'), ) 방법 2: Container 위젯으로 감싸기: 버튼을 Container 위젯으로 감싸고, **C.. 더보기
[ Flutter ] The error "UnsupportedError (Unsupported operation: Cannot add to an unmodifiable list)" 에러 소개 수정 불가능한 목록은 생성된 후에는 변경할 수 없는 목록입니다. 이는 목록에 있는 데이터의 무결성을 보호하기 위해 수행되는 경우가 많습니다. 해결방법 변경 가능한 list 객체을 사용: 목록을 수정해야 하는 경우 수정 불가능한 목록 대신 변경 가능한 목록을 사용해야 한다. 목록의 복사본을 생성: 목록에서 항목을 추가하거나 제거하기만 하면 되는 경우 목록의 복사본을 만들고 원본 목록 대신 복사본을 수정할 수 있다. 다른 데이터 구조를 사용: 목록을 수정해야 하지만 변경 가능한 목록을 사용하거나 목록을 복사할 수 없는 경우 집합이나 맵과 같은 다른 데이터 구조를 사용해야 할 수도 있다. 더보기
[Spring Boot] Spring Boot란 소개 스프링(Spring) 프레임워크를 기반으로 하며, 스프링 애플리케이션을 더 쉽게 개발하고 실행할 수 있도록 도와주는 도구이다. Spring Boot의 주요 목표는 개발자가 빠르게 프로토타입을 개발하고, 복잡한 설정 작업을 최소화하며, 생산성을 향상시키는 데 있다. Spring의 특징 간단한 설정 Spring Boot는 자동 구성(automatic configuration)을 통해 빠르게 시작할 수 있도록 간단한 설정을 제공합니다. XML 구성이나 복잡한 설정 파일을 작성할 필요가 없으며, 대부분의 설정은 기본값으로 제공됩니다. 내장 웹 서버 지원 Spring Boot는 Tomcat, Jetty, 또는 Undertow와 같은 웹 서버를 내장하고 있어 별도의 웹 서버 설치 및 구성이 필요하지 않습니다... 더보기
[Spring Boot] Bean 생명주기 소개 빈(Bean)은 스프링 컨테이너에 의해 관리되는 재사용 가능한 소프트웨어 컴포넌트이다. 즉, 스프링 컨테이너가 관리하는 자바 객체를 뜻하며, 하나 이상의 빈(Bean)을 관리한다. 빈은 인스턴스화된 객체를 의미하며, 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다. @Bean 어노테이션을 통해 메서드로부터 반환된 객체를 스프링 컨테이너에 등록한다. 빈은 클래스의 등록 정보, Getter/Setter 메서드를 포함하며, 컨테이너에 사용되는 설정 메타데이터로 생성된다. 설정 메타데이터 : XML 또는 자바 어노테이션, 자바 코드로 표현하며, 컨테이너의 명령과 인스턴스화, 설정, 조립할 객체 등을 정의한다. LifeCycle 1.Bean 정의 빈의 생명주기는 먼저 빈을 정의하는 단계로 시작합니다. .. 더보기

반응형