전체 글
JWT
이번에 프로젝트를 회원 파트를 맡으면서 JWT, Redis, OAuth에 관해 알게 되었다. JWT 같은 경우는 회원과 관리자를 나누기 위한 방법을 찾아보다가 알게 되었다. 그 중에서 JWT 에 먼저 자세히 정리해보려고 한다. JWT(JSON Web Token) 웹 토큰 기반 인증 시스템에서 사용하는 대표적인 표준 방식 중 하나로, JSON 형태로 인코딩된 토큰으로 사용자가 로그인한 후 서버로부터 전달받아 인증정보를 클라이언트 측에서 전송하는 방식이다. 토큰은 크기가 작고 URL 안전으로 설계되어 있으며 특히 웹 브라우저 통합 인증(SSO) 컨텍스트에 유용하다. JWT 클레임은 아이덴티티 제공자와 서비스 제공자 간의 인가된 사용자의 아이덴티티를 전달하기 위해 보통 사용할 수 있다. JWT는 Base64 ..
jOOQ 란
Java Object Oriented Querying JOOQ는 자바 코드로 쿼리를 작성할 수 있는 데이터베이스 인터페이스 이다. 데이터베이스 스키마에서 생성 된 클래스의 쿼리를 작성하는 내부 도메인 특정 언어를 제공하며 내부 도메인 특정 언어로 SQL을 구현하므로 임의의 복잡성을 지닌 SQL문을 형식에 맞게 구성하고 실행할 수 있다. JOOQ는 데이터베이스의 스키마를 기본으로 자바 코드를 생성한다. 이를 통해 개발자는 SQL 쿼리를 작성할 때마다 일일이 문자열을 사용하는 것이 아니라, JOOQ에서 생성된 클래스를 사용하여 더욱 안전하고 간편하게 작성할 수 있다. 또한 JOOQ는 SQL 쿼리를 안전한게 생성할 수 있도록 SQL Injection과 같은 보안 문제를 방지하는 기능을 제공한다. 특징 성능 J..
DSL 이란
jooq sql 을 알게 되어 궁금해서 찾아보던 중에 DSL이란 용어를 알게 되었다. 도메인 특화 언어(DSL)란? DSL: Domain Specific Language 도메인 특화 언어는 관련 특정 분야에 최적화된 프로그래밍 언어이다. DSL은 해당 분야 또는 도메인의 개념과 규칙을 사용한다. 도메인 특화 언어와 프로그래밍 언어와의 차이점은? 도메인 특화 언어는 일반적으로 Java, C, Ruby 등의 범용 언어보다 덜 복잡하다. 보통 DSL은 해당 DSL이 사용될 분야의 전문가와 긴밀하게 협력하여 개발한다. 대부분의 경우 DSL은 소프트웨어 전문가가 아닌, 해당 DSL의 대상 분야에 능통한 비 프로그래머가 사용하도록 제작된다. 일반 프로그래밍 언어보다는 특정한 목적에 한정되어 문법이 단순하고 명확하며..
패리티 비트 & 해밍 코드
패리티 비트 정보 전달 과정에서 오류가 생겼는지 검사하기 위해 추가하는 비트를 말한다. 전송하고자 하는 데이터의 각 문자에 1비트를 더하여 전송한다. 종류: 짝수, 홀수 전체 비트에서(짝수, 홀수)에 맞도록 비트를 정하는 것 짝수 패이티일때 7 비트 데이터가 1010001 이라면? 1이 총 3개 이므로, 짝수로 맞춰주기 위해 1을 더해야 한다. 답: 11010001(맨 앞이 패리티비트) 해밍 코드 데이터 전송 시 1비트의 에러를 정정할 수 있는 자기 오류정정 코드를 말한다. 패리티비트를 보고, 1비트에 대한 오류를 정정할 곳을 찾아 수정할 수 있다.(패리티 비트는 오류를 검출하기만 할 뿐 수정하지는 않기 때문에 해밍코드를 활용한다) 방법 2의 n승 번째 자리인 1,2,4 번째 자릿수가 패리티 비트라는 것..