1.2 SQL 공유 및 재사용 💡 SQL의 내부 최적화 과정의 복잡성을 알고 나면, 동시성이 높은 온라인 트랜잭션 처리 시스템에서는 바인드 변수가 중요하다. 라이브러리 캐시(Library Cache) SQL파싱, 최적화, 로우 소스 생성 과정을 거쳐 생성한 내부 프로시저를 반복 재사용 할 수 있도록 캐싱해두는 메모리 공간. SGA의 구성요소다. 소프트 파싱 vs 하드 파싱 사용자가 SQL문 전달 → DBMS가 SQL을 파싱 후 → 해당 SQL이 라이브러리 캐시에 존재하는지 확인 → 캐시에 존재 ? Y실행 단계 : N최적화 단계 SQL을 캐시에서 찾아 곧바로 실행단계로 넘어가는 것을 ‘소프트 파싱(Soft Parsing)’ 찾는데 실패해 최적화 및 로우 소스 생성 단계까지 모두 거치는 것을 ‘하드 파싱(H..
1.1 SQL 파싱과 최적화 SQL : Structured Query Language : 구조적 질의 언어 SQL은 기본적으로 구조적이고 집합적이고 선언적인 질의 언어다. 원하는 결과집합을 구조적, 집합적으로 선언하지만, 그 결과집합을 만드는 과정은 절차적일 수밖에 없다. 즉, 프로시저가 필요한데, 그런 프로시저를 만들어내는 DBMS 내부 엔진이 바로 SQL 옵티마이저이다. DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전 과정을 ‘SQL 최적화’라고 한다. SQL 최적화 SQL 파싱 - 파싱트리생성, Syntax 체크, Semantic 체크 SQL 최적화 - 옵티마이저가 그 역할을 맡는다. 데이터베이스 성능을 결정하는 가장 핵심적인 엔진임 로우 소스 생성 SQL 옵티마이저 ..
오라클은 SELECT를 전달할 때 '힌트(hint)라는 것을 사용할 수 있다. 힌트 : 지금 내가 전달한 select문을 이렇게 실행해 주면 좋겠다 라는 힌트이다. 힌트는 select 문을 어떻게 처리하는지에 대한 힌트일 뿐이므로 힌트 구분에서 에러가 나도 SQL실행에 전혀 지장을 주지 않는다. 힌트는 개발자가 데이터베이스에 어떤 방식으로 실행해줘야 하는지를 명시하기 때문에 조금 강제성이 부여되는 방식이다. select * from tb_board order by bno desc; select *+INDEX_DESC (tb_board pk_board) */ * from tb_board; 위의 두 SQL은 동일한 결과를 생성한다. 힌트를 통해 인덱스 자체가 정렬을 해 둔 상태이므로 이를 통해서 SORT과정..
앞서 배운 javascript의 필수 개념들을 적용시켜 프로젝트를 생성하고 한단계씩 업그레이드 시켜가는 수업이 너무 재미있고 말그대로 신기했다. 배열을 이용해 리스트를 랜더링하고, 컴포넌트들을 최적화 시켜가는 과정이 짜릿했다. 작업을 할 때, 보통 작업을 다 마치고 나서 최적화 과정을 거치는 것일까? 작업시 어느정도 최적화과정은 기본으로 하고 가고 나중에 최종 최적화 과정을 거치는 것인지 좀더 빠른 작업을 위해서는 어떻게 시작해야하는지 궁금했다. 다음주 강의인 실전 일기장 프로젝트를 통해 어떤 과정으로 애플리케이션을 제작해나갈지 정말 기대되고 궁금하다. 수업들으면서 느낀 문제는... 자바스크립트 배열 관련 내장함수들이 익숙하지 않다보니, 강의를 듣는중에 배열안에 파라미터에 무슨값이 들어갔는지, 이렇게 해..
Udemy 리액트 강의 https://www.udemy.com/course/winterlood-react-basic/ Node.js ? 😮 자바스크립트 언어는 어디서 어떻게 동작할까? 자바스크립트는 자바스크립트 엔진 위에서 동작한다. 그 엔진은 웹 브라우저에 있다. 브라우저들은 각각 자기들만의 엔진을 사용한다. 그 중 크롬 브라우저가 가진 V8 엔진이 가장 대표적인 자바스크립트 엔진으로 알려져있다. 자바스크립트는 브라우저에 내장된 자바스크립트 엔진을 사용해야해서 웹 브라우저에서만 실행될 수 있었다. 그때 마침 크롬이 자바스크립트를 실행할 때 사용하는 js엔진인 V8 은 C++로 개발되어 브라우저 내부가 아니더라도 어디서든 이 엔진을 사용할 수 있었다. 그리고 브라우저에서 독립가능했던 V8엔진을 사용해서 ..
Timeout : ERROR java.net.SocketTimeoutException: Read timeoutjava.net.SocketTimeoutException: Read timeout 데이터의 양이 많다던지, 네트워크 속도 때문에 실제 요청이 수신될때까지의 시간이 지나도록 수신이 완료 되지 않을때 생기는 에러가 ReadTimeOut 입니다. Timeout에 관한 정리 Connection Timeout클라이언트가 서버측으로 connection을 맺길 원하지만 서버의 장애 상황으로 connection조차 맺어지지 못할 때 발생하는 timeout이다.Read Timeout클라이언트와 서버가 connection은 맺어졌지만 effectivesquid.tistory.com
console.log 로 값을 찍어보는데 값이 두번씩 찍히는 증상이 나타났다. 렌더링이 두 번 일어난다는 얘기인데... 어디서 랜더링을 두번 시키는건지 개발자도구에서 브레이크포인트 걸고 돌려도 나도모르는 어디선가 2번 호출을 하고 있는 것을 발견.. 이유는 때문이었다. index.js 파일에 보면 우리가 만든 컴포넌트가 태그로 감싸져있는 모습을 볼 수 있다. root.render( ); 이것때문에 함수가 이중으로 호출된 것이다. StrictMode? StrictMode는 애플리케이션 내의 잠재적인 문제를 알아내기 위한 도구이다. Fragment와 같이 UI를 렌더링하지 않으며, 자손들에 대한 부가적인 검사와 경고를 활성화한다 라고 공식문서에 나와있는데 사이트에 사용 예시까지 잘 나와있다. https://..
- Total
- Today
- Yesterday
- 스프링의정석
- 친절한SQL튜닝
- EC2
- 자바의정석
- 이정환
- MySQL
- 스프링 빈
- di
- 스프링 프로젝트
- 한입크기로 잘라먹는 리액트
- 코드로 배우는 스프링 웹 프로젝트
- 객체지향
- Spark
- 컨테이너
- 남궁성
- @Configuration
- spring
- Node.js
- 시큐리티
- node
- 인덱스
- 데이터베이스
- 스프링
- JavaScript
- AWS
- security
- 자바스크립트
- 리액트
- 데브캠프
- React
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |