Server 196

MySQL) Window 로컬 환경에서 Master-Slave 테스트

권한사용자Master쓰기/읽기기본 사용자복제용 사용자Slave읽기기본 사용자 Master는 3306 포트로 실행한다.Slave는 3307 포트로 실행한다. Master에서 쓰기(insert)가 발생하면, 바이너리 로그를 저장한다.Master의 로그를 Slave의 DB에 복제한다.1. 마스터 DB 설치MySQL이 기본적으로 설치되어있다고 가정한다.이미 설치된 MySQL은 Master가 될 것이다. 2. 슬레이브 DB 설치윈도우 환경에서 인스톨러를 다시 실행하면 추가로 설치되지 않는다.Archive에서 .zip파일을 다운 받아 특정 경로에 압축을 해제한다.윈도우 권한 문제로, 마스터가 설치된 곳 이외에 폴더를 위치시킨다. 3. 환경설정 파일 생성 또는 수정# 슬레이브의 my.ini[mysqld]port=33..

Server/DB 2025.06.12

Java) VSCode로 자바 시작하기

1. 개요Java언어 Spring Framework프레임워크 Spring BootSpring Framework를 편하게 사용할 수 있게 만든 도구https://start.spring.io/Maven외부 라이브러리 관리 도구설정파일: pom.xmlSpring Boot 프로젝트를 만들면 Maven은 자동으로 포함된다. 2. 준비물JDK 설치java를 실행할 수 있는 환경https://adoptium.netJava Extension Pack Spring Boot 프로젝트 https://start.spring.io/ https://code.visualstudio.com/docs/java/java-tutorial Getting Started with Java in VS CodeJava tutorial showi..

Server/Java 2025.05.20

DB) LIMIT 1 & index

sql에서 limit1을 사용함에 있어 오해가 있었다.데이터를 select할 때 limit1을 작성하면, 전체 데이터를 긁어온 후 1개를 반환하는 것으로 알고있었다.실제 1억개가 넘는 데이터에서 경험했기 때문이다. 그런데 아래 영상을 보던 중, 쿼리 성능에 대한 이야기를 해주시는데 limit1을 사용해보라는 이야기가 있었다.그래서 당연히 내가 잘못된 경험을 했고 잘못 알고있을 거라 확신한 후 다시 찾아보게 되었다. 결론은 조건절에 들어가는 컬럼이 인덱싱이 잡혀있다면 limit 만큼 조회하고 쿼리는 종료된다.내 과거 경험에서는 인덱스를 설정하지 않았기 때문에 모두 검색 후, limiit에 해당하는 결과를 출력하느라 속도가 느렸던 것이다. 인덱스 설정 O인덱스 설정 X만족하는 조건 검색 하자마자 종료전체 스..

Server/DB 2025.04.23

C++ 환경변수 .env 파일 사용하기

C++에서 .env 파일을 사용하는데, getenv 함수가 deprecated 되었다.직접 환경변수를 저장하지 않고 메모리상 map에 key-value 값으로 사용하게끔 만들었다.간단하다. 파일을 읽어오고 "="라는 delimiter를 기준으로 key-value로 map에 저장하고 메모리에 갖고있게끔 했다.프로젝트 root 폴더에 .env 파일을 위치시킨다. // Utils.h#pragma once#include #include #include class Utils{public: Utils() = delete;public: static void Init(const std::string& filePath = "../.env"); static std::string getEnv(const std::string..

Server/C++ 2025.01.03

JSON 사용하기 - nlohmann json

1. 헤더파일 다운로드json.hpp 파일을 다운로드한다.https://github.com/nlohmann/json/releases  Releases · nlohmann/jsonJSON for Modern C++. Contribute to nlohmann/json development by creating an account on GitHub.github.com 2. VS 세팅편의성을위해 다운로드 받은 헤더파일을 위치를 옮겼다.   프로젝트 속성 - C/C++ - 일반 - 추가 포함 디렉터리 3. 예제#include using json = nlohmann::json;void TestJSON(){ json j = { {"name", "John"}, {"age", 30}, {"city", "New Yo..

Server/C++ 2024.11.20

Boost 라이브러리 사용하기

이번에도 최신버전을 설치했다가 호환되지 않아 다시 설치했다.Visual studio 2022, C++ 20에 맞는 버전으로 Boost 1.79를 선택했다. 1. zip파일 다운로드https://www.boost.org/users/history/version_1_79_0.html Version 1.79.0Version 1.79.0 April 13th, 2022 14:22 GMT Documentation DownloadsPlatformFileSHA256 Hash unixboost_1_79_0.tar.bz2475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39boost_1_79_0.tar.gz273f1be93238a068aba4f9735a4a2b00..

Server/C++ 2024.11.19

C++ MySQL 연동 - Connector/C++

C++에서 MySQL을 연동하는 방법은 크게 두 가지가 있다고 한다.C API:C API를 사용할 때는 더 많은 제어권을 가지고 있지만, 코드가 복잡할 수 있습니다.직접적인 API 호출과 메모리 관리를 해야 하므로 세심한 주의가 필요합니다.Connector/C++:C++ 객체 지향 프로그래밍을 지원하며, 더 직관적인 코드 작성을 지원합니다.객체 지향적인 접근 방식을 사용하여 관리와 유지 보수가 더 쉬울 수 있습니다.결론:C++ 객체 지향 프로그래밍을 선호하고, 코드의 가독성과 유지 보수를 중시한다면 MySQL Connector/C++를 사용하는 것이 좋습니다.저수준 제어가 필요하거나, 라이브러리의 무게를 줄이고 싶다면 MySQL C API를 사용할 수 있습니다.그리하여 Connector/C++ 라이브러리..

Server/C++ 2024.08.30