전체 글 225

인덱스의 개념과 성능이 향상되는 이유/유의사항 (With SSMS)

실제 현업에서 몇억 개의 row를 가진 테이블에 적절한 인덱스를 추가했더니, 조회 시간이 수십 초에서 몇 초 이내로 대폭 감소한 경험이 있었다. 이런 현상은 대용량 데이터베이스 성능 최적화의 대표적인 사례로, 인덱스가 어떻게 데이터베이스에서 성능을 향상시키는지 보여준다. 이번 포스팅에서는 인덱스의 개념과 성능이 향상되는 이유를 SQL Server Management Studio(SSMS) Version 16을 중심으로 정리해보고자 한다.  1. 인덱스란?데이터베이스에서 인덱스(Index)는 특정 데이터를 빠르게 찾기 위해 사용되는 구조로, 책의 색인 역할을 한다고 볼 수 있다. 데이터베이스 테이블은 수백만, 수억 개의 데이터를 포함하고 있을 수 있으며, 인덱스는 이러한 대용량 데이터를 효율적으로 조회하는..

DataBase/MSSQL 2024.09.19

GitHub Actions를 활용한 React 애플리케이션의 EC2 배포

이 포스팅에서는 GitHub Actions를 사용하여 React 애플리케이션을 AWS EC2 인스턴스에 자동으로 배포하는 방법을 설명한다. (이전 CI 포스팅에서는 Docker를 활용하여 CI/CD를 구성하려고 계획하였으나.. 사용하는 EC2의 자원으로는 턱없이 부족해서 컨테이너만 띄웠다 하면 인스턴스가 멍텅구리처럼 멈추는 현상이 발생했다. 그래서 그냥 빌드된 파일을 직접 nginx가 띄울수 있게 던져주기로..) *시스템 환경구성 일자: 2024-08-09AWS EC2 Instance: Ubuntu 18.04Local PC: Windows 10React: 18.3.1    1. GitHub Actions를 활용한 배포1.1 CD(Continuous Deployment) 워크플로우 설정CD 워크플로우는 새..

Server 2024.08.09

앱 버전 번호와 빌드 번호의 차이

오늘은 앱의 버전 번호와 빌드번호에 대한 개념과 그 차이에 대해 포스팅을 작성하고자 한다.  예를 들어, Flutter에서 `pubspec.yaml` 파일을 보면, 다음과 같이 default 버전이 작성되어있다.   버전 번호(Version Number)버전 번호는 일반적으로 `MAJOR.MINOR.PATCH` 형식으로 표기된다. 예를 들어 `1.0.0`은 다음과 같은 의미를 가진다. - MAJOR(주 버전): 주요 기능 변경 또는 대규모 업데이트를 나타낸다. 예를 들어, `1.0.0`에서 `2.0.0`으로의 변경은 앱의 큰 변화가 있음을 의미한다. - MINOR(부 버전): 기존 기능의 개선이나 작은 새로운 기능의 추가를 나타낸다. 예를들어, `1.0.0`에서 `1.1.0`으로의 변경은 주 버전과 호환..

VirtualBox에서 macOS 설치 가이드

macOS는 Apple 실리콘에 최적화되어 있으며, macOS는 iOS와 같은 Apple 생태계의 다른 운영체제와 깊이 통합되어 있다. 이러한 이유로 다양한 플랫폼에서 설치하는 데 제약이 따른다.  VistualBox로 macOS 운영체제를 구축한 후의 이점VirtualBox로 macOS를 설치하면 다음과 같은 개발상의 이점을 누릴 수 있다:1. iOS 개발 환경 구축: macOS가 있어야만 Xcode를 사용할 수 있으며, 이를 통해 iOS, macOS, watchOS, tvOS 앱을 개발할 수있다.2. 테스트 및 디버깅: 다양한 macOS버전에서 앱을 테스트하고 디버깅할 수 있다.3. 다중 플랫폼 개발: Windows나 Linux에서 macOS 가상 머신을 통해 여러 플랫폼에서 개발 환경을 통합할 수 ..

ETC 2024.07.27

[Flutter] `pubspec.yaml` 파일 설명 및 작성법

`pubspec.yaml`파일은 Flutter 및 Dart 프로젝트에서 필수적인 구성 파일이다. 이 파일은 프로젝트의 메타데이터, 의존성, 자산 등을 정의하는 데 사용된다. 아래에서 `pubspec.yaml` 파일의 주요 구성 요소와 사용법을 자세히 설명한다.    `pubspec.yaml` 파일 구조 다음은 `pubspec.yaml`파일의 기본 구조이다.name: my_appdescription: A new Flutter project.version: 1.0.0+1environment: sdk: ">=2.12.0    주요 섹션 설명1. 메타데이터name: my_appdescription: A new Flutter project.version: 1.0.0+1 - `name`: 프로젝트의 이름을 정의한..

[MSSQL] SQL Server 문자열 데이터 타입: `varchar`와 `nvarchar`의 차이점 및 사용 가이드

SQL Server에서는 문자열 데이터를 저장할 수 있는 다양한 데이터 타입을 제공한다. 이 중에서 `varchar`와 `nvarchar`는 가장 많이 사용되는 타입이다.  이 글에서는 `varchar`와 `nvarchar`의 차이점, 다른 대표적인 문자 타입과의 비교, 길이 선언 방법, 그리고 실제 사용 시 권고사항을 다룬다.   1. `varchar`와 `nvarchar`의 차이점- `varchar` (Variable Character):   - 비-Unicode 지원: 주요 영어와 같은 단일 언어의 문자열 데이터를 저장할 때 사용한다.   - 저장 크기: 각 문자는 1바이트를 사용한다. 예를 들어, `varchar(20)`은 최대 20바이트를 차지한다.   - 사용 사례: 영어 텍스트, 로그 데이터..

DataBase/MSSQL 2024.07.26

[Window] Windows에서 Telnet 클라이언트 사용 방법

Telnet 클라이언트는 원격 서버와 통신할 수 있는 유용한 도구이다.기본적으로 Windows에서는 Telnet 클라이언트가 아래와 같이 비활성화되어 있지만, 간단한 설정을 통해 활성화할 수 있다.    아래 단계에 따라 Telnet 클라이언트를 설치하자.  1. "Windows 기능 켜기/끄기" 열기먼저 Telnet 클라이언트를 활성화하기 위해 "Windows 기능 켜기/끄기" 설정 창을 연다.  (1) 시작 메뉴를 연다.(2) 검색 창에 "Windows 기능"을 입력하고, Enter 키를 누른다.(3) "Windows 기능 켜기/끄기" 옵션을 클릭한다.    2. Telnet 클라이언트 활성화"Windows 기능 켜기/끄기" 창이 열리면, 스크롤을 내려 텔넷 클라이언트를 활성화한다.   (1) 텔넷 ..

Window 2024.07.20

[MSSQL] SQL Server에서 sa 계정을 잃어버렸을 때 복구 방법

관리하고 있는 SQL Server DB의 sysadmin권한을 가진 계정이 없고, 심지어 sa계정이 비활성화 상태이다..(비유하자면 전에 금고를 관리하던분이 관리하던 키와 함께 어디론가 사라진 그런 상황이다) 이런 답이 없는 상황을 어떻게 풀어나갈 수 있을까?    오늘은 SQL Server의 sa 계정이 비활성화된 경우, 권한을 복구하기 위한 절차를 설명한다. 이 포스팅에서는 SQL Server를 단일 사용자 모드로 설정하여 sa계정을 활성화하고 비밀번호를 변경하는 방법을 중점적으로 설명하고자 한다. *시스템 환경Database: SQL Server (v15.0.2000)운영체제: Window Server 2019    1. SQL Server 단일 사용자 모드에서 권한 복구단일 사용자 모드를 사용하여..

DataBase/MSSQL 2024.07.20

[Docker] Ubuntu 18.04에서 Docker Hub 사용하여 이미지 Pull 및 실행하기

오늘은 Ubuntu 18.04에서 Docker Hub를 사용하여 이미지를 Pull하고 실행하는 방법을 정리해보고자 한다. 전제조건- Ubuntu 18.04 운영체제- Docker가 설치되어 있어야 함  1. Docker Hub에 로그인Docker Hub에 로그인하려면 다음 명령어를 사용한다.sudo docker login 로그인 명령어를 입력하면 Docker Hub의 사용자 이름과 비밀번호를 묻는 프롬프트가 나타난다. 해당 정보를 입력하면 Docker Hub에 로그인된다. 로그인에 성공하면, "Login Succeded" 라는 출력이 표시된다.   2. Docker 이미지 PullDocker Hub에서 이미지를 가져오려면 다음 명령어를 사용한다.sudo docker pull /:(``와 ``를 원하는 레..

Server/Docker 2024.07.16

GitHub Actions + Docker로 CI환경 구축

오늘은 GitHub Actions와 Docker로 구성된 CI 환경을 구축하는 방법을 포스팅해보려 한다. 개발하고 있는 React APP의 CI/CD 환경을 구축하기에 앞서 초석을 다지기 위한 CI 구축 단계라고 이해하면 된다.  작업의 흐름은 다음과 같다.소스코드 PushGitHub Actions 동작GitHub Runner가 업데이트된 소스 코드가 반영된 Docker Image 생성생성된 Docker image를 Docker Hub에 푸시  이제 이 구성을 세팅하는 방법을 알아보자.1. GitHub Actions workflow (yml파일) 생성GitHub의 repository 페이지에서 "Actions" > "New workflow" 를 누른다.  그런 다음, Choose a workflow에서 ..

Server 2024.07.13
반응형