반응형

1. 시험환경

    ˙ JDK
    ˙ Visual Studio Code

 

2. 목적

    ˙ Visual Studio Code를 이용하여 Spring Boot 프로젝트 개발을 위한 프로젝트 환경을 구축한다.

    ˙ 리눅스

 

3. 적용

    ① Visual Studio Code를 다운 받아 설치한다.

        - URL : https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

Visual Studio Code 사이트

 

    ② 공식 가이드에 Spring Boot를 시작하기 위한 사전 설치 프로그램과 VSCode 확장팩에 관한 정보를 확인한다.

사전 설치 프로그램 및 VSCode 확장팩

 

    ③ 사전 필수 프로그램을 설치한다.

        - JDK(JAVA Development Kit) 설치 : https://languagestory.tistory.com/11

 

윈도우 환경에서 JDK(JAVA Development Kit) 설치

1. 시험환경 ˙ 윈도우 ˙ JDK 17 Win x64 2. 목적 ˙ 윈도우 환경에서 JDK를 설치한다. ˙ 설치한 JDK 환경을 설정한다. 3. 적용 ① 오라클 다운로드 센터에서 JDK for Developers를 클릭한다. - URL : https://www.oracl

languagestory.tistory.com

 

        - Apache Maven 설치 (옵션) : https://languagestory.tistory.com/69

 

Apache Maven 설치

1. 시험환경 - 윈도우 10 2. 목적 - 윈도우 운영체제에 Apache Maven을 설치한다. 3. 적용 ① Apache Maven 사이트로 이동한다. - https://maven.apache.org/ Maven – Welcome to Apache Maven Welcome to Apache Maven Apache Maven is a

languagestory.tistory.com

 

    ④ VSCode 확장팩을 설치한다.

        - Java Extension Pack
        - Spring Boot Tools
        - Spring Initializr
        - Spring Boot Dashboard

Java Extension Pack 설치
Spring Boot Tools 설치
Spring Initializr Java Support 설치
Spring Boot Dashboard 설치

 

반응형
반응형

1. 시험환경

    ˙ 윈도우 10

    ˙ Visual Studio 2015 Community (x32)

 

2. 목적

    ˙ Visual Studio에서 C Style로 DLL(Dynamic Link Library) 를 생성한다.

    ˙ 생성한 DLL을 Import하고 사용하는 방법을 확인한다.

 

3. 적용

    ① DLL(Dynamic Link Library)을 만들기 위한 프로젝트를 생성한다.

        - Project : Win32 Consol Application

        - Name : dllExportExample

 

    ② Application Setting을 설정한다.

        - Application type: DLL

        - Additional options: Empty project

 

    ③ header 파일을 생성하여 DLL Export 함수를 선언한다.

        - 파일명 : dllExport.h

1
2
3
4
5
6
7
8
#pragma once
#include <stdio.h>
 
#define DLLEXPORT extern "C" __declspec(dllexport)
 
DLLEXPORT void exampleFunc();
DLLEXPORT void exampleFuncParam(int num1, int num2);
 
cs

 

    ④ header 파일에서 선언한 DLL Export 함수 동작을 정의한다.

        - 파일명 : dllExport.cpp

1
2
3
4
5
6
7
8
9
#include "dllExport.h"
 
DLLEXPORT void exampleFunc() {
    printf("exampleFunc()\n");
}
 
DLLEXPORT void exampleFuncParam(int num1, int num2) {
    printf("%d + %d = %d\n", num1, num2, num1 + num2);
}
cs

 

 

    ⑤ 프로젝트를 컴파일 성공 후 생성 파일을 확인한다.

        - 컴파일 단축키 : <Ctrl> + <F7>

        - 생성파일 : [프로젝트명].lib, [프로젝트명].dll 등

컴파일 성공

 

DLL 파일 생성


    ⑥ 생성된 DLL을 Import 및 사용하기 위한 프로젝트를 생성한다.

        - Project : Win32 Consol Application

        - Name : dllImportExample

 

    ⑦ Application Setting을 설정한다.

        - Application type: consol application

        - Additional options: Empty project

 

    ⑧ DLL Export 프로젝트에서 생성한 Header 파일을 포함(include) 시킨다.

        - 파일명 : dllImport.cpp

        - 포함시킨 "사용자 header 파일"의 경로를 지정하지 않았으므로, 코드 입력화면에서 에러 표시가 나타남을 주의한다.

        - 포함시킨 "사용자 header 파일"의 경로를 프로젝트 설정에서 추가한다.

 

    ⑨ Export 프로젝트에서 생성된 LIB 경로 및 파일명을 프로젝트 설정에 추가한다.

        - Linker → General → Additional Library Directories : LIB 경로 입력

        - Linker → Input → Additional Dependencies : LIB 파일명 입력

의존성 LIB 경로 입력

 

의존성 LIB 파일명 입력

 

    ⑩ Export 프로젝트에서 생성된 DLL 파일을 사용하고자하는 프로젝트에 복사한다.

 

4. 결과

    ˙ 컴파일 및 실행결과를 확인한다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    ˙ Visual Studio 2022

    ˙ C언어

 

2. 목적

    ˙ C에서 문자열 처리 함수 strtok() 사용법을 알아보자.

    ˙ 특정 문자열을 공백(" ")을 기준으로 잘라내어 출력한다.

 

3. 적용

    ① strtok() 함수를 이용하면 "대상 문자열"을 사용자가 원하는 "문자(열)"로 잘라낼 수 있다.

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
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>                                // strtok 함수가 선언된 헤더 파일
 
int strtokExample()
{
    int th = 3;
    int idx = 0;
 
    char s1[64= "little little twinkle star";    // sample string
 
    char* ptr = strtok(s1, " ");                   // 공백(" ")을 기준으로 문자열 자름
 
    while (ptr != NULL)                            // 문자열을 끝까지 자를때까지 반복
    {
        if (idx == th)
        {
            printf("%s\n", ptr);                   // 잘린 문자열 출력
            return 0;
        }
 
        ptr = strtok(NULL" ");                   // 잘린 다음 문자열 위치를 포인터로 반환
        idx++;
    }
 
    return 0;
}
cs

 

4. 결과

    ˙ th=3인 경우, 

 

    ˙ th=2인 경우,

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    ˙ 윈도우

    ˙ Visual Studio Community 2022 (C++ 콘솔 앱)

 

2. 목적

    ˙ 윈도우 환경에서 Visual Studio를 설치한다.

    ˙ Visual C++ 프로젝트를 생성하고 실행한다.

 

3. 적용

    ① Visual Studio 다운로드 사이트에 접속하여 개인 사용자가 무료로 사용할 수 있는 Community 버전을 선택한다.

 

    ② Visual Studio Installer를 설치하는 파일이 Download되면 실행한다.

 

    ③ Visual Studio Installer가 Download 되고 설치된다.

        - 설치되고 있는 "Visual Studio Installer"는 "Visual Studio" 그 자체가 아니라,

           Visual Studio를 설치할 수 있는 "설치 관리자 프로그램"이다.

 

    ④  Visual Studio Installer가 설치되었다.

        - 설치경로 : C:\Program Files (x86)\Microsoft Visual Studio\Installer

 

 


 

    ⑤ Installer를 실행하여 설치하고자 하는 구성요소를 선택하고, 본격적으로 "Visual Studio"를 설치한다.

        - 나는 주로 C++과 C# 코딩을 목적으로 Visual Studio를 사용한다.

        - 사용자의 목적에 맞는 항목을 선택하고 설치한다.

 

    ⑥ Visual Studio가 설치된다.

 

    ⑦ Visual Studio가 설치되었다.

        - 설치경로 : C:\Program Files\Microsoft Visual Studio\2022\Community

 


 

    ⑥ 설치가 완료되면 "Visual Studio" 프로그램을 실행하고,  "새 프로젝트 만들기" 버튼을 클릭한다.

 

    ⑦ "C++ 콘솔 앱" 신규 프로젝트를 생성한다.

 

    ⑧ 프로젝트 폴더 및 이름을 설정한다.

 

    ⑨ 프로젝트가 구성되었다.

 

4. 결과

    ˙ <Ctrl> + <F5> 단축키를 이용하여 컴파일 Success 및 실행 확인한다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    ˙ Maria DB 10.5.8 (x64) 와 Visual Studio 2017 v141 (x64, Release) 간 연동

    ˙ Maria DB 10.5.8 (x64) 와 Visual Studio 2012 v110 (x64, Release) 간 연동

    ˙ Maria DB 10.5.8 (x64) 와 Visual Studio 2010 v100 (x64, Release) 간 연동
    ˙ Maria DB 10.5.8 (x32) 와 Visual Studio 2010 v100 (x32, Release) 간 연동

 

2. 목적

    ˙ MariaDB와 Visual Studio(C++) 간 연동 설정 및 동작을 확인한다.

    ˙ Visual Studio 버전별 연동 설정 및 동작을 확인한다.

 

3. 적용

    ① Maria DB에 접속하여 시험용 테이블과 데이터를 준비한다.

 

    ② 프로젝트 속성창 <C/C++> → <일반> → <추가 포함 디렉토리>에 "MraiaDB include" 폴더를 추가한다.

        - MariaDB (x64) : C:\Program Files\MariaDB 10.5\include\mysql

        - MariaDB (x32) : C:\Program Files (x86)\MariaDB 10.5\include\mysql

 

    ③ 프로젝트 속성창 <링커> → <일반> → <추가 라이브러리 디렉토리>에 "MraiaDB library" 폴더를 추가한다.

        - MariaDB (x64) : C:\Program Files\MariaDB 10.5\lib

        - MariaDB (x32) : C:\Program Files (x86)\MariaDB 10.5\lib

 

    ④ 프로젝트 속성창 <링커> → <입력> → <추가 종속성>에 "libmariadb.lib" 파일을 추가한다.

 

    ⑤ Visual Studio 프로젝트 폴더에 "libmariadb.dll" 파일을 복사한다.

 

    ⑥ DB에서 데이터 추출을 위한 코드를 작성한다.

mariaDbConnMain.cpp
0.00MB

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <mysql.h>
 
using namespace std;
 
void main()
{
      MYSQL *conn;
      MYSQL *conn_result;
      unsigned int timeout_sec = 1;
 
      conn = mysql_init(NULL);
      mysql_options(conn, MYSQL_OPT_CONNECT_TIMEOUT, &timeout_sec);
      conn_result = mysql_real_connect(conn, "127.0.0.1""root""1q2w3e""test"3307NULL0);
 
 
      if (NULL == conn_result)
      {
            cout << "DB Connection Fail" << endl;
      }
      else
      {
            cout << "DB Connection Success" << endl;
 
            char query[1024];
            MYSQL_RES *result;
            MYSQL_ROW row;
 
            sprintf_s(query, 1024"SELECT * FROM testTbl");
 
            // Send Query
            if (mysql_query(conn, query))
            {
                cout << "SELECT Fail" << endl;
            }
 
            // Get Response
            result = mysql_store_result(conn);
 
            int fields = mysql_num_fields(result);    // 필드 갯수 구함
 
            while (row = mysql_fetch_row(result))     // 모든 레코드 탐색
            {
                for (int i = 0; i < fields; i++)    // 각각의 레코드에서 모든 필드 값 출력
                {
                    cout << row[i] << "   ";
                }
                cout << endl;
            }
 
            mysql_free_result(result);
            mysql_close(conn);
      }
 
      return;
}
cs

 

4. 결과

    ˙ 프로그램 실행 시 DB 테이블에 저장된 데이터를 정상적으로 가져올 수 있다.

 

    ˙ 여러 버전을 테스트한 결과 동일한 플랫폼 간 연동은 정상 동작 하지만, MariaDB(x32)와 Visual Studio(x64) 간

         또는 그 반대의 연동은 컴파일 시 링크 에러가 발생한다.

    ˙다른 플랫폼 간 연동을 위해서는 DB에서 제공하는 별도의 Connector가 필요하다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형
반응형

1. 시험환경

    - Windows

    - Visual Studio 2015 (C++)

    - Boost 1.77.0

 

2. 목적

    - Boost 라이브러리를 다운 받아 설치한다.

    - Visual Studio 프로젝트에 Boost 라이브러리를 설정하고 동작하는 것을 확인한다.

 

3. 적용

    ① boost 웹사이트에서 운영체제에 맞는 파일을 다운 받는다.

        - URL : https://www.boost.org/

boost 파일 다운로드

 

    ② 압축 해제 하고, "bootstrap.bat" 파일을 실행한다.

파일 다운
bootstrap.bat

 

    ③ "bootstrap.bat"을 실행하면, "b2.exe" 파일이 생성되는데 실행한다.

        - 사실, boost library 설치는 여기서 끝이다. 간단하다.

        - ④ 단계부터는 설치한 boost 라이브러리를 Visual Studio Project에 적용해 보자.

b2.exe 실행

 

    ④ boost 폴더를 Include 디렉토리에 추가한다.

        - 프로젝트 → Properties → C/C++ → General → Additional Include Directories

Include에 boost 디렉토리 추가

 

    ⑤ boost\libs 폴더를 Linker에 추가한다.

        - 프로젝트 → Properties → Linker → General → Additional Library Directories

Linker에 boost lib 폴더 추가

 

    ⑥ boost 라이브러리를 사용하는 테스트 코드를 작성한다.

hello.cpp
0.00MB
테스트 코드 작성

 

4. 결과

boost 함수를 사용한 연산 결과

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다.

반응형
반응형

1. 시험환경

- Visual C++ 2017

 

2. 목적

- 서로 다른 프로세스 간 데이터 통신이 필요하다.

- 데이터 통신을 하기 위해 메모리 공유 방식을 사용한다.

 

3. 적용

① 프로세스 1 : 서버

MemoryMappedFileProc1.cpp
0.00MB

 

- MYSTRUCT 구조체를 이용하여 다음과 같은 형식의 데이터를 공유한다. 

공유 데이터 구조

- mapping file을 생성하고, 공유 데이터에 전달할 값을 입력한다.

공유 메모리 생성, 메모리 매핑 파일 생성, 공유 데이터 입력 코드

 

② 프로세스 2 : 클라이언트

MemoryMappedFileProc2.cpp
0.00MB
공유 메모리 생성, 메모리 매핑 파일 생성, 공유 데이터 확인 코드

 

4. 결과

- 프로세스 간 데이터 공유 성공

수신 프로세스에서 공유 데이터 값 확인

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다.

반응형

+ Recent posts