일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 멀티스레드
- Java
- 단일db cqrs
- 구간합구하기
- segregation
- json
- select
- 2정규화
- 백준
- this
- SQL
- @Retryable
- jquery
- 2차원배열 구간합
- 3정규화
- map()
- Bean LifecCycle
- cross origin resources sharing
- 백준 11660번
- 다중db cqrs
- lock-based
- 교차 출처 리소스 공유
- 1정규화
- 트랜잭션 동시성 이슈
- sop 우회
- 생성자
- function test
- 구간합
- ajax
- cas알고리즘
- Today
- Total
목록2025/07 (7)
평범한 연구소
DB 시스템에서의 동시성 제어와 트랜젝션에서의 동시성 제어는 개념은 비슷하지만, 관점과 책임 주체가 다르다 ! 구분트랜잭션 수준 동시성 제어DB 시스템 수준 동시성 제어관점사용자/개발자 관점에서 트랜잭션 간 충돌 방지- DB 엔진 관점에서 내부적으로 충돌 방지- DBMS가 자동으로 수행제어 대상논리적 트랜잭션 단위 (Begin ~ Commit)물리적 Row/Page/Index 락, 버퍼, 트랜잭션 로그 등구현 방식Isolation Level, 낙관적 락, 비관적 락 등MVCC, 락 매니저, undo, redo 로그, 데드락 감지 등제어 범위내가 사용하는 트랜잭션 단위에서 일어나는 문제 방지다수 트랜잭션, 내부 병렬 실행, 스케줄링 최적화제어 주제개발자, ORM 설정, 쿼리 제어DBMS 엔진 자체(MySQ..
트랜잭션 격리 수준 (Isolation Level)트랜잭션 간의 읽기/쓰기 충돌을 막기 위해 DB에서 제공하는 4가지 격리 수준dirty read트랜잭션에서 다른 트랜잭션에의해 변경되었지만 아직 커밋되지 않은 데이터를 읽는 현상non-repeatable read하나의 트랜잭션 내에서 동일한 데이터를 두 번 이상 읽을 때, 처음 읽은 값과 나중에 읽은 값이 달라지는 현상다른 트랜잭션이 해당 데이터를 수정하고 커밋한 후에 발생할 수 있음. 일관된 결과를 얻지 못하고 예측 못한 데이터 변화를 경험하는 문제격리 수준방지되는 문제특징READ UNCOMMITED거의 없음dirty read 허용 READ COMMITEDdirty read 방지대부분의 RDB 기본값 (Orcale)REPEATABLE READdirty ..
멀티태스킹을 구현하는 방법으로는 멀티 프로세스와 멀티 스레드를 주로 사용한다. 멀티 프로세스독립된 메모리 공간을 가진 프로세스들이 동시에 실행되는 방식독립된 메모리 공간 = 각 프로세스가 서로 영향을 주지 않음 = 시스템 안정성이 높다하나의 컴포넌트에 문제가 생겨도 전체 시스템에는 영향을 주지 않음같은 데이터를 여러 프로세스에서 사용하는 경우, 중복 저장되어 메모리 사용량이 증가한다프로세스 간 통신(IPC)을 위한 추가적인 오버헤드가 발생한다통신 비용, 메모리 사용량이 높다 멀티 스레드하나의 프로세스 내에서 여러 스레드를 통해 동시에 실행되는 방식오버헤드가 낮고, 전환 속도가 빠르다같은 프로세스 내에서 실행되므로 스레드간의 컨텍스트 스위칭은 프로세스간의 스위칭보다 빠르다각 스레드는 자신만의 스택과 레지스..
CORSCross Origin Resource Sharing 웹 브라우저가 다른 출처(Origin)의 리소스를 요청할 때 허용할지 여부를 정하는 보안 정책도메인: example.com프로토콜: http, https포트: 8086, 3000 ... 출처는 도메인 + 프로토콜 + 포트 의 조합 http://localhost:8086 와 http://api.example.com/data 은 포트가 다르기 때문에 출처가 다르다."CORS 정책 위반: Access to fetch at 'http://localhost:8080/api/data' from origin 'http://localhost:3000' has been blocked..." CORS은 왜 필요한걸까?보안 때문 🔒과거에는 크로스 사이트 요청 위..
CQRS명령(Command) 과 질의(Query)의 책임(Responsibility) 을 분리(Segregation)한다는 뜻의 약자명령을 위한 데이터 모델과 읽기를 위한 데이터 모델을 분리하는 패턴 Ex) 명령용 Order, 조회용OrderData 2개의 모델로 나누어서 관리Order를 활용해 변경을 수행하고 OrderData을 이용해서 표현 계층에서 데이터 출력하는데에 사용 CQRS의 장점소프트웨어의 유지보수성을 높일 수 있다.모델별로 성능이나 요구사항에 맞는 DB나 데이터 접근 기술을 사용할 수 있다. CQRS의 단점구현 코드, 구현 기술이 많아진다. 단일 DB로 CQRS 패턴 구현명령 모델은 도메인 모델을 구현하는데 유리한 JPA를 사용조회 모델에서는 SQL 데이터 조회에 유리한 MyBatis 사..
정규화 (Nomalization)테이블을 정리하여 중복 데이터를 최소화하고 데이터 무결성을 보장하는 과정저장 용량을 줄이고, 삽입/갱신/삭제 이상(Anomaly) 현상 해결 1정규화 (1NF)테이블 컬럼 값이 원자값을 가지도록 정리AS-ISUser(user_id, user_name, phone_numbers)phone_numbers 컬럼010-1111-1111, 010-2222-2222 콤마로 분리된 비원자적(집합형) 데이터TO-BEUser(user_id, user_name, phone_number)1정규화 방법: 한 행당 전화번호 데이터 하나만 저장전화번호가 꼭 여러 개이어야 한다면, 별도 테이블로 분리 2정규화 (2NF)(1정규화 진행 후)테이블에서 완전 함수 종속을 만족할 수 있도록 테이블 분해 ..