일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Inno DB
- 캠프
- Android
- JPA
- 서버개발캠프
- JPA 비관적락
- JPA 낙관적락
- 낙관적락 비관적락 차이
- 스프링
- Optimistic Lock
- Pessimistic Lock
- JPA Lock
- bean
- 스프링 로그
- flask
- 개발
- spring security
- 안드로이드
- spring security 인증
- Redis
- 서버
- 디자인 패턴
- spring
- JPA 동시성
- Transaction isolation level
- 스마일게이트
- annotation
- 스프링 log
- component
- 암호화
- Today
- Total
목록전체 글 (55)
모르는게 많은 개발자

최근에 JPA를 학습하면서 JPA에서 가장 중요하다고 볼 수 있는 영속성 컨텍스트에 대해 공부했다. 오늘은 JPA의 개념을 간단히 알아보고 영속성 컨텍스트에 대해 알아보자. 1. 영속성 컨텍스트란? 영속성 컨텍스트(Persistence Context)는 JPA에서 'Entity를 영구 저장하는 환경'이라고 해석할 수 있다. EntityManagerFactory에서 생성된 EntityManager로 Entity를 관리(저장, 조회 등)할 때 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 2. Entity 생명주기 Entity는 비영속, 영속, 준영속, 삭제 4개의 상태가 있다. 비영속 영속성 컨텍스트와 전혀 관계가 없는 상태이다. 쉽게 말해 Entity 객체를 persist하지 않아 영속성 컨텍스트에 저장..

이번 포스팅에서는 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..
이번 포스팅에서 final, static에 대해 정리해보려 한다. 1. final final 키워드는 변수, 메소드, 클래스에 사용할 수 있다. 변수 변수에 final 키워드를 붙이면 그 변수는 한번만 초기화 가능 및 수정 불가능 public class Main { public static void main(String[] args){ final int a = 1;//1로 초기화 final int b; b = 2;//b를 선언하고 2로 초기화 a = 2; //이미 선언되었기 때문에 Error } } 클래스 변수에 final을 사용하면 생성자를 통해 값을 할당 가능 public class Sample { private final int test; private int test1; //생성자를 통해 값할당 ..

로그인 인증 서버 프로젝트를 진행해보면서 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로 이루어져 있다. 근데 여기서 의..

저번 포스팅에서 JVM에 대해 알아보았다. 이번에는 자바에서 정말 많이 중요한 기능이라 생각하는 Garbage Collection에 대해 알아보았다. 1. Garbage Collection이란? 자바 어플리케이션을 실행하게되면 여러 객체들이 생성되게 된다. 여기서 어플리케이션이 실행되다보면 이제는 쓰지 않는 객체가 나오기 마련이다. 이러한 객체를 계속 가지고 있으면 메모리 낭비가 되게 된다. 프로그래머가 명시적으로 객체를 null로 하여 해제할 수 있지만 JVM에서 더이상 쓸모없는 객체를 알아서 제거해주는 기능을 Garbage Collection이라고 한다. 2. Garbage Collection 조건/구조 GC란 필요없는 객체를 회수하는 작업이란 것을 알았다. JVM이 GC를 수행하게 되면 GC를 수행..

1. JVM(JAVA Virtual Machine)이란? 자바 가상 머신의 줄임말이다. 쉽게 말해 자바 프로그램을 실행시키는 소프트웨어이다. JVM은 자바와 운영체제(OS)에서 중개자 역할을 하여 OS에 구애받지 않고 자바 프로그램을 실행할 수 있다. 2. JVM 구성 JVM은 크게 Class Loader, Execution Engine, Garbage Collector, Runtime Data Area로 구성되어있다. Class Loader 자바 프로그램을 작성하면 .java파일을 만들게 된다. 그리고 실행을 하게 되면 컴파일을 통해 .class(바이트코드)를 생성한다. Class Loader는 이 .class파일들을 Runtime Data Areas에 적재하는 역할을 한다. Excution Engin..
프로젝트를 진행하며 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..