일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Transaction isolation level
- Pessimistic Lock
- Optimistic Lock
- JPA 낙관적락
- 낙관적락 비관적락 차이
- spring security 인증
- Inno DB
- spring
- flask
- bean
- 암호화
- 스프링 log
- JPA 동시성
- 개발
- 스프링
- 스마일게이트
- annotation
- spring security
- 서버
- 스프링 로그
- JPA Lock
- Android
- 디자인 패턴
- JPA 비관적락
- 캠프
- Redis
- 서버개발캠프
- JPA
- 안드로이드
- component
- Today
- Total
목록알아가는 개발 (10)
모르는게 많은 개발자
현업 개발에서 JPA또는 Query를 짜면서 DB작업을 해오면서 최근에 DB에 대한 지식이 부족한 것 같아 이번에 트랜잭션과 Lock 관련된 내용과 예제를 정리해놓으려한다. 공부하면서 정리하다보니 잘못된 정보가 있을 수 있다. 만약 잘못된 내용이 있다면 댓글로 알려주시길 바랍니다.. Transaction이란? DB의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되어야할 일련의 연산 다시 말하면 여러 SELECT, UPDATE, DELETE SQL 구문이 모두 처리되어야하는 하나의 프로세스가 있다면 이 프로세스가 완전히 성공하거나 중간에 실패하면 프로세스를 실행하기 전 상태로 롤백하는 기능이다. Transaction 특징(ACID) Atomicity(원자성) 트랜잭션..
최근 REST API 서버를 구현하며 Spring Security로 JWT 인증을 구현했다. Access_Token, Refresh_Token을 어디다 저장할지에 대해 고민하다 CSRF에 대한 긍금증까지 생기게 되어 공부를 했다. 이번 포스팅은 JWT에 저장소에 대한 고민하면서 공부한 내용들을 정리한 글이다. 1. JWT 발급 프로세스 먼저 기존에 필자가 구현한 JWT 발급 프로세스를 간단히 살펴보자. 로그인 요청시 인증 서버에서 accessToken, refreshToken을 발급해 Header를 통해 전달 API요청시 accessToken을 Header에 넣고 요청 만약 accessToken이 만료일 경우 인증 서버로 refreshToken을 전달해 재발급 받는다. 여기서 accessToken과 re..
이번 포스팅에서는 SpringBoot와 Redis를 연동하여 사용하는 간단 예제를 알아보려한다. 1. 준비 Redis 서버 실행 기본적으로 Redis가 설치되있다고 가정 Spring Gradle spring-data-redis를 의존성에 추가 Spring에서 사용하는 Redis Driver -> 크게 Lettuce, Jedis spring-data-redis는 Lettuce, Jedis를 추상화하여 사용도록 spring에서 지원 2. 예제 코드 예제 실행 @Component @RequiredArgsConstructor public class Redis implements ApplicationRunner { //redis command를 수행하기 위한 high-level 추상화 final private S..
로그인 인증 서버 프로젝트를 진행해보면서 Redis라는 DBMS(Database Management System)을 사용해 봤다. 처음 사용때는 그냥 빠르다는 이유로 사용했지만 이후 Redis가 정확히 무엇이고, 왜 빠른지 알아보았다. 정리한것에 대해 글을 쓰려한다. 1. Redis 특징 Redis는 Remote Dictionary Server의 약자로 In-Memory 기반의 Key-Value 기반의 NoSql DBMS이다. In-Memory Redis는 기본적으로 In-Memory기반이다. 즉, 데이터들이 디스크에 저장되는 다른 DBMS와 달리 Memory(Ram)에 저장된다. 일반적으로 디스크를 읽는 속도보다 메모리를 읽는 속도가 훨~씬 빠르기 때문에 데이터를 Read/Write하는 과정에서 속도가..
base64를 인코딩 과정을 질문 받은적이 있다. 정말 아무 생각 없이 64개의 문자가 있으니 64진법 계산하듯이 나오면 된다라는 어처구니 없는 답변을 했다. 이후 내가 얼마나 무식한 답변을 했는지 깨달았고, 인코딩 과정을 공부? 알아본 계기가 되었다. 1. Base64란? Base64는 사전적 의미로 8비트 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들 64개로 이루어진 일련의 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다. 간단히 설명하면 문자열을 아스키 코드에 있는 대문자, 소문자, 숫자, +, /로 이루어진 문자열로 변환된 문자열이다. Base64 인코딩은 변환하는 작업을 말한다. 2. Encoding 과정 ASCII문자는 1Byte로 이루어져 있다. 근데 여기서 의..
프로젝트를 진행하며 API서버를 개발해보면서, REST를 그냥 HTTP Method와 URI를 통해 데이터를 전달하는구나라는 막연하게만 생각해왔다. 그래서 이번에 REST에 대해 정확히 알아보고자 글을 쓴다. 1. REST란 "Representational State Transfer"의 약자로 resource(자원)표현으로 구분된 resource 상태(정보)를 전달하는 것 URI를 통해 리소스를 표현하고 HTTP Method를 통해 CRUD를 적용하는 것 ROA(Resource Oriented Architecture)를 위한 설계 -> 설계의 중심에 resource를 두고 HTTP Method를 통해 자원을 처리 RESTful은 REST의 설계 의도를 명확하게 지켜주는 것을 의미 즉, REST는 HTTP..
TCP와 UDP는 데이터를 보내기 위한 전송 계층 프로토콜이다. 두개의 차이점이 무엇인지 알아보자. 1. TCP(Transmission Control Protocol) 특징 연결형 서비스를 제공하는 전송 프로트콜 -> 가상 회선 연결 방식 (전송 계층) 3-way-handshake를 통한 연결, 4-way-handshake를 통한 연결해제 신뢰성 높은 데이터 전송 보장 데이터가 누락될 시 재전송 흐름 제어, 혼잡 제어 전이중, 점대점 방식 3-way-handshake TCP는 3-way-handshake를 통해 서버와 클라이언트간 연결을 한다. 순서는 다음과 같다. Server에서 서버를 작동시켜 Listen()이 실행돼 Client를 기다린다. Client에서 Connect()를 통해 Server에 요..
저번 포스팅에서 양방향 암호화중 비대칭 키(공개 키 암호)에 대해 알아보았다. 이번 포스팅에서는 대칭 키 암호에 대해 알아보자. 1. 대칭 키 암호 개념 암호화/복호화를 할 때 하나의 비밀키를 가지고 암호화를 진행 송수신자가 같은 비밀키를 가지기 때문에 키 관리가 어려움 평문과 암호문으로부터 키에 대한 정보 찾기 어려움 키 길이가 증가할 수록 무차별 공격으로 인한 해킹을 기하급수적으로 어렵게 가능 비대칭키에 비해 암호화/복호화가 빠름 대표적으로 AES, DES 알고리즘이 있음. 하지만 DES는 취약점이 발견되어 사용되지 않음.