분류 전체보기 (13) 썸네일형 리스트형 MVCC Multi Version Concurrency Control 말그대로 여러개의 버전을 만들어서 동시성을 제어한다는 의미다. MySQL, Oracle, Postgresql 같은 RDB에서 트랜잭션 격리수준을 락을 사용하지 않고 제공하는 방법이다. A라는 세션의 트랜잭션에서 X라는 데이터를 변경하여 Y가 된 상태지만, RDB는 기존 X가 있던 버전의 데이터를 스냅샷 떠놓고 B라는 세션이 접속하면 스냅샷을 보여주어 이전 버전의 X데이터를 조회할 수 있도록 해준다. 격리수준을 높히면서도 동시성까지 챙기는 두마리 토끼 전법이다. 깊게 들어가면 복잡해서 아 이런게 있구나 하고 지나가고 면접 전에 열심히 공부하길 바란다. Spring Batch를 사용할 일이 생겼다. 스프링도 잘 몰라서 허덕이는데 배치를 만들어야한다. 눈물난다. 그치만 재미는있다. 언제까지 개발이 재밌을지 모르겠다😂 다양한 스프링배치 관련 글들을 보았지만 조졸두님의 포스팅이 최고인 것 같다. 덕분에 원하던 배치방식을 찾았습니다. 감사합니다 조졸두님. 🙇🏻♂️ https://jojoldu.tistory.com/550 Spring Batch 파티셔닝 (Partitioning) 활용하기 지난 시간에 소개 드린 멀티쓰레드 Step과 더불어 파티셔닝 (Partitioning)은 Spring Batch의 대표적인 Scalling 기능입니다. 서비스에 적재된 데이터가 적을 경우에는 Spring Batch의 기본 기능들만 사용해도 jojoldu.tistory.com 공식 도큐먼트에도 나와있다(당연한거아니냐) ht.. IPC 프로세스 간 통신 https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EA%B0%84_%ED%86%B5%EC%8B%A0 프로세스 간 통신 - 위키백과, 우리 모두의 백과사전 ko.wikipedia.org 위키백과님께 먼저 감사의 말씀을 전합니다. IPC=inter process communication 말그대로 프로세스 간 통신을 의미한다. 약자로 되어있는 기술용어는 풀어서 외우면 잘외워지는 것 같다. 그리고 개발용어들이 은근 어렵고 문서들을 보면 어렵게 써놨는데 IPC는 요즘 개발 배우는 친구들이 쉽게 받아들이기엔 api 통신만한게 없는 것 같다. 서버 서버 클라이언트 서버 위에 저것도 엄밀히 말하면 IPC의 한 종류다 결국 네트워크에서 소켓통신을 하.. Redis Transaction Redis 트랜잭션? RDB에서 제공하는 트랜잭션이랑 같은 기능인가? https://redis.io/docs/manual/transactions/ Transactions How transactions work in Redis redis.io 공식 사이트 메뉴얼 만큼 좋은 건 없다. 쉽게 생각하면 커맨드를 버퍼에 모았다가 레디스에 날려준다고 생각하면 된다. Multi > 커맨드들(GET, EXPIRE...) > Exec RDB에서 제공하는 파워풀한 트랜잭션을 기대하면 안된다. 단순하게 커맨드를 잘못입력해서 실패나는게 아닌이상 모아서 쏴주는 기능만 있다고 봐도 무방하다. 근데 여기서 쓸만한게 있다 Watch 커맨드인데 특정 키를 Watch해서 낙관적락을 가능하게 해준다. 위의 Watch 기능으로는 스핀락으로.. 스프링 빨리 봄이 왔으면 좋겠다. 여름은 너무 덥다. Database에 의존적인 어플리케이션 지금까지의 프로젝트에서는 RDB에 의존적인 어플리케이션을 개발해 왔다. DDD를 가볍게 읽어보고 여러가지 포스팅들을 보니 요즘은 DB를 복잡하게 쓰지않더라. 간단한 CRUD만 사용하고 어플리케이션단에서 정제해서 내려주는게 대세인 것 같다. 불편한점은 쿼리 짜는거에 적응되어있다보니 반대로 간단한 서비스 로직 조차 힘들었다. QueryDSL로는 인라인뷰, CASE WHEN 절이 안된다 눈물난다. 실무에서 JPA 실무에서 처음으로 JPA를 써봤다. 그전에 인프런에 유명한 분의 강의를 보긴했지만, 실무에서 쓰는건 응용도 많이 해야하고 복잡해서 어떻게 쓰는지 궁금했다. 생각보다 연관관계를 안 맺고 쓰는편인 것 같다. 확실히 연관관계를 잘 맺으면 좋긴한데, 잘 모르고 쓰면 복잡도도 올라가고 번거로운 부분이 있는것같다. 나도 적응할 때 까진 그냥 외래키만 컬럼 어노테이션으로 등록해놓고 써야겠다ㅎㅎ 코틀린 플러그인 추천 https://plugins.jetbrains.com/plugin/10942-kotlin-fill-class Kotlin Fill Class - IntelliJ IDEs Plugin | Marketplace Intellij plugin that provide intention action for empty constructor or function to fill property with default value. plugins.jetbrains.com 객체생성 및 함수호출 시 기본값으로 인자를 자동 세팅해준다. 귀차니즘이 강한 개발자(나)라면 필수일 것 같다. 이전 1 2 다음 목록 더보기