- 데이터 데이터 중심 어플리케이션 설계 7장-트랜잭션 트랜잭션이 필요한지 어떻게 알 수 있을까? 이 질문에 답변하기 위해서는 아래 2가지를 이해하는 것이 중요하다 안전성 보장에는 어떠한 것들이 있는지? 어떠한 비용이 발생하는지? 이번 7장에서는 아래의 내용을 볼 것이다. 커밋 후 읽기(read committed), 스냅숏 격리(snapshot isolation), 직렬성(serializability) 같은 격리 수준 구현 방법 동시성 제어 종류와 경쟁조건 ACID의 의미 원자성(Atomicity) : 되거나 안되거나 일관성(Consistency) 일관성을 유지하도록 트랜잭션을 올바르게 정의하는 것은 애플리케이션 책임 여러가지 의미로 사용됨 (5장)에서 복제 일관성 (6장)일관성 해싱 (9장)CAP 정리에서 ACID 관점에서는 데이터베이스가 "good sta..
- React React Native Webview 디버깅 가이드 해당 글은 https://github.com/react-native-webview/react-native-webview/blob/master/docs/Debugging.md 를 보고 번역하였습니다. ( 리액트 네이티브 웹뷰에서 다양한 스크립트를 실행하여 다양한 상황이 발생했는데 이를 추적하기가 쉽지 않았습니다.) Script Errors 웹뷰에서 발생한 syntax error, script error를 디버깅하기는 쉽지 않다. 왜냐하면 기본적으로 error를 console 창에 보여주지 않기 때문이다. ( 만약 HTML을 외부사이트에서 로딩하는거라면 ) content가 load 되기전에 error handler를 inject 하는 방법이 있다. 만약에 javascript를 inject한다면, try/ca..
- React React 공식문서 읽기 - 코드 분할 코드 분할 번들링은 훌륭하지만 앱이 커지면 번들도 커짐 => 초기화 로딩 비용 증가 그렇기 때문에 번들을 나누어야 함 = 코드 분할 Webpack, Browserify 같은 번들러가 지원하는 기능 코드 분할을 통해 지연로딩하게 도와줌 React.lazy React.lazy 함수를 사용하면 동적 import를 사용해서 컴포넌트를 랜더링 할 수 있음 // Before import OtherComponent from './OtherComponent'; // After const OtherComponent = React.lazy(() => import('./OtherComponent')); lazy 컴포넌트는 suspense 하위에서 렌더링 되어야 함 기다리는 동안 예비 컨텐츠를 보여줄 수 있음 import R..