목록분류 전체보기 (500)
공부한것들을 정리하는 블로그 입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
https://velog.io/@hgs-study/CircuitBreaker CircuitBreaker를 이용한 외부 API 장애 관리 CircuitBreaker는 서비스메시의 쿠버네티스 Istio를 이용해서 인프라 레벨에서 적용가능하나, 이번 포스팅에선 Resilience4j를 이용한 어플리케이션 레벨에서 적용하겠습니다. 1. CircuitBreaker가 필요한 이 velog.io
보호되어 있는 글입니다.
구글 문서용 단축키 텍스트 서식 지정 단축키 굵게 Ctrl + b 기울임꼴 Ctrl + i 밑줄 Ctrl + u 취소선 Alt + Shift + 5 https://support.google.com/docs/answer/179738?hl=ko&co=GENIE.Platform%3DAndroid Google 문서용 단축키 - Android - Google Docs 편집기 고객센터 Google 문서의 단축키를 사용하여 이동하고, 서식을 지정하고, 수정할 수 있습니다. 참고: 일부 단축키는 일부 언어 또는 키보드에서 작동하지 않을 수 있습니다. 대표적인 작업 복사 Ctrl + c 잘라 support.google.com
보호되어 있는 글입니다.
NullPointerException 을 고려하자 String 생성할 때 new 키워드를 사용하지 말자 반복문 내에서 새로운 객체를 생성하지 말자 Collections 을 반복하는 동안 수정하지 말자 Switch-Case 문에서 break 키워드를 뺴먹지 말자 객체 비교 "==" 와 "eqauls()" 의 차이를 알자 무작정 StringBuffer 를 사용하지 말자 Java 파일 작성 시 표준 Java 코드를 짤 때 주의할 점 몇가지 (tistory.com) Java 코드를 짤 때 주의할 점 몇가지 Overview Java Coding Best Practices And Standards 에 있는 글을 번역한 글입니다. 여러 개의 항목이 있었는데, 그 중에서 제가 개발하면서 공감되었던 부분들만 간단하게 정..
2. isolation 트랜잭션 격리 수준. 트랜잭션이 다른 트랜잭션과 격리되어야 하는 수준을 결정한다. - 트랜잭션이란, 트랜잭션이란, 데이터베이스의 데이터를 조작하는 작업의 단위(unit of work)이다. 트랜잭션은 흔히 이론적으로 ACID 원칙을 보장해야 한다고 한다. 하지만, 실제로는 ACID 원칙은 종종 지켜지지 않는다. 왜냐하면 ACID 원칙을 strict 하게 지키려면 동시성이 매우 떨어지기 때문이다. 그렇기 때문에 DB 엔진은 ACID 원칙을 희생하여 동시성을 얻을 수 있는 방법을 제공한다. 바로 트랜잭션의 isolation level이다. isolation이 낮을수록 ACID 원칙이 지켜지지 않기에(격리성이 낮음) 문제가 생길 수 있지만, 대신 더 높은 동시성을 얻을 수 있다. 데이터..
1. propagation 트랜잭션 전파를 위한 설정이다. 트랜잭션 동작을 설정하는 데 매우 중요한 속성이다. - REQUIRED (default) — 이미 진행 중인 트랜잭션이 없으면 새로 시작하고, 진행 중인 트랜잭션이 있다면 기존 트랜잭션에 참여한다. - REQUIRES_NEW — 항상 새로운 트랜잭션을 시작한다. - MANDATORY — 이미 진행 중인 트랜잭션이 없으면 예외를 발생시키고, 진행 중인 트랜잭션이 있다면 기존 트랜잭션에 참여한다. - NESTED — 이미 진행 중인 트랜잭션(부모 트랜잭션)이 없으면 새로운 트랜잭션을 생성하고, 진행 중인 트랜잭션(부모 트랜잭션)이 있다면 중첩 트랜잭션을 만든다. (부모의 commit/rollback은 중첩에 영향을 주지만, 중첩은 부모에 영향 x) ..
스프링에서의 트랜잭션 관리 - 스프링에서의 트랜잭션 관리 ex) 은행 계좌이체 1. Global Transactions - 분산 트랜잭션(distributed transaction) 처리 : 서로 다른 데이터베이스 간에 트랜잭션이 발생 2. Local Transactions - 로컬 트랜잭션은 간단한 JDBC 연결과 같은 단일 RDBMS와 애플리케이션 사이에서 발생한다. - 개발자의 영역 - global과 local 트랜잭션 모두, 개발자가 스스로 다뤄야하는 영역이다. - ex) jdbc를 사용한다면 트랜잭션 관리 API는 JDBC, Hibernate를 사용한다면 어플리케이션 서버의 hibernate 트랜잭션 API 등등 - 스프링 프레임워크와 트랜잭션 관리 - 스프링 프레임워크는 다양한 트랜잭션 API..
보호되어 있는 글입니다.
1. List 2개 합치기 1. List.addAll() 2. Collections.addAll() 3. Stream.of() + flatMap() + collect() https://hianna.tistory.com/560
보호되어 있는 글입니다.
1. Swap 을 이용한 순열 // 순서 없이 n 개중에서 r 개를 뽑는 경우 // perm(arr, 0, n, r); static void perm(int[] arr, int depth, int n, int r) { if (depth == r) { print(arr, r); return; } for (int i=depth; i
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
# 데이터베이스 정규화 ( Normalization ) 데이터베이스 정규화란 데이터베이스의 설계를 재구성하는 테크닉입니다. 정규화를 통해 불필요한 데이터(redundancy)를 없앨 수 있고, 삽입/갱신/삭제 시 발생할 수 있는 각종 이상현상(Anamolies)들을 방지할 수 있습니다. # 목적 데이터베이스 정규화의 목적은 주로 두 가지입니다. 1. 불필요한 데이터(data redundancy)를 제거한다. 2. 데이터 저장을 "논리적으로" 한다. # 종류 1NF, 2NF, 3NF, BCNF, 4NF, 5NF, 6NF # 정규화의 법칙 정규화의 법칙(Normalization Rule)은 1차정규화, 2차정규화, 3차정규화, BCNF, 4차정규화, 5차정규화로 나눌 수 있는데, 실무적으로 4차, 5차 정규..