반응형

전체 글 39

[Database] MySQL의 두뇌, 옵티마이저(optimizer)

MySQL 데이터베이스 시스템에서 쿼리를 처리할 때, 최적의 실행 계획을 결정하는 역할을 담당하는 컴포넌트입니다. 쿼리 실행 계획은 데이터베이스에서 쿼리를 처리하는 방법을 결정하는 것으로, 어떤 인덱스를 사용하거나 어떤 테이블을 먼저 조인할지 등을 결정합니다. 이때 옵티마이저는 쿼리를 처리하는데 가장 효율적인 방법을 찾기 위해 여러 실행 계획을 비교하고 분석하여 최적의 실행 계획을 선택합니다. MySQL 옵티마이저는 일반적으로 쿼리를 처리할 때 적용되는 규칙 및 통계 정보를 기반으로 실행 계획을 결정합니다. 이를 통해 쿼리 처리 속도를 최적화할 수 있습니다. 또한 MySQL 옵티마이저는 다양한 옵션을 설정하여 실행 계획을 조정할 수 있습니다.

정보처리기사 2023.04.13

[Database] SQL을 최적화하려면 이렇게 해야 한다.

다양한 SQL 성능 향상 방법 중 일반적으로 사용되는 몇 가지 방법을 살펴보겠습니다. 1. 인덱스를 적절하게 사용하기 인덱스를 적절히 사용하면 쿼리의 실행 속도를 향상시킬 수 있습니다. 자주 검색되는 컬럼명에 인덱스를 생성하거나, WHERE 절에 자주 사용되는 조건에 인덱스를 생성하는 것이 좋습니다. 이때 해당 컬럼의 열은 중복되지 않는 것이 더욱 성능에 좋습니다. 2. 쿼리의 비용 계산하기 실행 계획을 확인하여 쿼리의 비용을 계산하고, 비용이 큰 작업을 최적화하는 것이 좋습니다. 비용이 큰 작업은 대개 테이블을 스캔하거나, 복잡한 조인 등이 포함된 쿼리입니다. 3. 쿼리의 조건절 최적화하기 조건절을 최적화하여 실행 속도를 향상시킬 수 있습니다. 예를 들어, LIKE 절을 사용할 때는 와일드카드(%)를 ..

Study/Database 2023.04.13

[Git] stash 명령어로 작업중인 변경사항을 숨겨보자

입사한지 얼마 되지 않은 신입사원은 여유롭게 자바 코드를 작성하고 있었다. 그때 선임님이 조용히 옆으로 다가와 속삭였다. "OO 사원, 전에 작업헀던 UI에 이러이러한 버튼 하나만 추가해 줄래요?" "넵. 푸시하고 말씀드리겠습니다." 신입사원이 말했다. 그리고 소스트리를 켜서 브랜치를 변경하려는데... 여기서 확인을 누르는 순간, 작업 중인 브랜치에서 다른 브랜치로 전환하면, 작업 중인 브랜치의 변경 내용이 모두 사라지고 선택한 브랜치의 최신 상태로 업데이트됩니다. 그래서 신입사원은 생각했다. '음... 이 백엔드 코드는 프론트 작업 브랜치로 가면 안 돼. 그렇다고 커밋하자니 아직 중구난방 코드인데...?' 라며 머리를 쥐어뜯지 마시고 stash를 사용해 보도록 하죠. Git의 stash 는 작업 중인 ..

Study/ETC 2023.03.27

[Git] cherry-pick 명령어로 다른 브랜치의 커밋을 가져오자

프로그래밍 작업중에 다른 브랜치의 작업물을 가져와야 할 일이 생겼다면? Cherry-Pick을 사용할 때 입니다! 다른 브랜치에서 수행한 작업 중에서 특정 작업만을 가져오고 싶은 경우에 유용하게 사용됩니다. 소스트리 예를 들어, project-a 브랜치에서 작업한 내용 중 일부를 master 브랜치에 반영하고 싶은 경우, project-a에서 해당 내용이 들어있는 커밋을 cherry-pick 명령어를 사용하여 master 브랜치로 가져올 수 있습니다. 당연히 Terminal에서도 사용이 가능합니다. 명령어는 git cherry-pick commit-hash 이며, commit-hash는 commit 뒤의 92... 입니다. 이제 추가하고자 하는 브랜치로 checkout을 한 뒤, git cherry-pi..

Study/ETC 2023.03.27

[Tailwind] 리액트에 테일윈드를 사용하며 여러개의 폰트를 적용하기

테일윈드. 사람인 등의 채용 사이트를 보다보면 종종 언급되는 CSS 라이브러리들 중 하나죠? 처음 테일윈드라는 녀석을 보았을 때는 상당히 친숙한 편이었습니다. 왜냐하면 회사에서 화면단은 부트스트랩을 사용하여 직접 디자인하고 있었는데 너무나도 닮아있었죠. 그래서 신년 계획인 개인 프로젝트에 적용하기로 했습죠! 이후에 폰트를 적용하고자 하는 태그에 className='font-KR'를 적용해주면? 정갈한 폰트로 변하게 되죠! 그리고 한글 폰트와 영어 폰트 두 가지를 적용하고자 이렇게 적용하여 사용하고 있습니다. 도움이 되셨길!

Study/React 2023.01.21

[React] TypeScript를 적용해보자.

TypeScript는 자바스크립트를 기반으로 만든 프로그래밍 언어입니다. 즉, 자바스크립트에 새로운 기능을 추가한 것이에요. 타입스크립트라는 언어가 왜 만들어졌냐면, 자바스크립트는 자바나 C++와는 달리 변수의 타입을 선언하지 않기 때문입니다. 해당 언어들은 프로그래밍 언어가 작동하기 전에 타입을 확인하지만 자바스크립트는 아닙니다. 한줄 한줄 실행하죠. ES5에서는 var, ES6부터는 let과 const 를 사용하여 객체, 배열, 문자열, 숫자 등의 모든 타입을 만듭니다. 이에 따라 문자열을 받아서 출력해주는 함수가 있다고 했을 때, 이 함수에 문자열이 아닌 숫자가 들어와도 아무런 문제가 없이 실행되는 것입니다. 이러한 경우에서 문제가 발생하였고, 그것을 해결하기 위해 자바스크립트의 코드에서 타입을 선..

Study/React 2022.12.18

[React] styled-components를 사용해서 CSS를 적용해 보자

따로 CSS 파일을 만들어서 관리하는 것에서 벗어나 자바스크립트 파일 안에서 사용할 수 있도록 만들어주는 라이브러리입니다. 컴포넌트 별로 개발하는 리액트의 특성상, 필요한 CSS만을 사용해서 적용시켜줄 수 있는 이 라이브러리는 합이 잘 맞겠죠? 설치: npm i styled-components 사용 예시: // keyframes : 애니메이션 import styled, { keyframes } from "styled-components" const Box = styled.div` background-color: ${(props) => props.bgColor}; width: 100px; height: 100px; // 정의한 애니메이션 적용 animation: ${animation} 1s linear i..

Study/React 2022.12.17

[React] create-react-app

리액트를 처음 접하는 사람이라면 가장 먼저 해야 할 일? create-react-app 패키지를 설치하는 일입니다. 리액트 기본 구조를 편리하게 만들어 주는 패키지이죠. 리액트 개발 환경을 설정하기 위해 필요한 webpack과 babel 등 많이 사용하는 라이브러리들을 포함하고 있고 복잡한 설정들을 간단히 해결할 수 있습니다. 설치: npx create-react-app 폴더명 이 아이들을 간단히 정리를 해보자면, npx : npm을 통해 설치하는 파일들을 간단하게 설치하고 실행할 수 있게 도와줍니다. create-react-app : 페이스북에서 만든 공식적인 React 웹 개발용 보일러플레이트(Boilerplate)입니다. 참고로 보일러플레이트라는 것은 최소한의 변경으로 여러 곳에서 재사용되며 반복적..

Study/React 2022.12.17
반응형