반응형

1. 시험환경

    ˙ 윈도우

    ˙ MySQL

 

2. 목적

    ˙ 윈도우 부팅과 동시에 자동으로 서비스 되는 기능 종료하기

    ˙ 실행 중인 MySQL, MariaDB 등의 port 변경 전 서비스 종료하기

 

3. 적용

    ① 윈도우 검색창에서 "서비스" 앱을 찾아서 실행한다.

 

    ② 서비스 목록 중 제어하고자 하는 서비스를 더블클릭한다.

        - 여기서는 "MySQL80" 서비스를 찾아서 더블클릭하였다.

 

    ③ <서비스 상태>에서 "중지" 버튼을 클릭하면 현재 동작 중인 서비스가 종료된다.

    ④ <시작 유형>에서 "수동"으로 변경하면 윈도우 부팅과 동시에 자동 서비스 되는 것을 막는다.

        - 즉, 사용자가 수동으로 서비스를 시작해야 한다.

 

4. 결과

    ˙ <서비스 상태>에서 "중지" 버튼을 클릭하면 현재 동작 중인 서비스가 종료된다.

    ˙ <시작 유형>에서 "수동"으로 변경 후 윈도우 재부팅시 해당 서비스가 실행되지 않는 것을 확인할 수 있다.

 

 

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

반응형
반응형

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. 시험환경

    ˙ Spring Framework

    ˙ Apache Tomcat 9.0.21

 

2. 목적

    ˙ Spring Framework 개발환경에서 SameSite 쿠키를 설정하고 동작을 확인한다.

 

3. 적용

    ① web.xml에서 쿠키 설정을 추가한다.

        - web.xml은 Spring Framework 개발시 한글 설정, 로그인 등 web 화면에서 나타나는 부분을 설정하는 파일이다.

1
2
3
4
<cookie-config>
    <http-only>true</http-only>
    <secure>true</secure>
</cookie-config>
cs

 

4. 결과

    ˙ 설정 후 web 화면을 reload하면 SameSite 컬럼이 "Strict"으로 적용된 것을 확인할 수 있다.

 

 

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

반응형
반응형

1. 시험환경

    ˙ 스프링 프레임워크 5.1.8.Release

    ˙ MyBatis 3.5.1

    ˙ MySQL 8.0.13

 

2. 목적

    ˙ 스프링 개발 환경에서 100만건 이상의 대용량 데이터 DB에 저장한다.

    ˙ DB에 연속적으로 INSERT 하는 도중 발생하는 에러에 대처한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: The driver was unable to create a connection due to an inability to establish the client portion of a socket.
 
 
This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable. 
For Unix-based platforms, see the manual page for the 'ulimit' command. Kernel or system reconfiguration may also be required.
For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271).
 
 
(에러 발생 위치... 생략)
 
 
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: The driver was unable to create a connection due to an inability to establish the client portion of a socket.
This is usually caused by a limit on the number of sockets imposed by the operating system. This limit is usually configurable. 
For Unix-based platforms, see the manual page for the 'ulimit' command. Kernel or system reconfiguration may also be required.
For Windows-based platforms, see Microsoft Knowledge Base Article 196271 (Q196271).
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy8.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:166)
(생략)
cs

 

3. 적용

    ① 윈도우 레지스트리 실행 (단축키 : win + R)

    ② 컴퓨터\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

    ③ MaxUserPort를 최대값 65534로 변경한다.

 

4. 결과

    ˙ 레지스트리 정보 수정 후 다시 시도한 결과, 해당 오류가 다시 나타지 않았다.

 

 

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

 

반응형

'설정' 카테고리의 다른 글

[디스크 관리] 파티션 삭제 및 병합하기  (1) 2022.06.10
SSH Agent Key Forwarding in putty, mobaxterm  (0) 2022.06.06
윈도우 폴더 공유 설정  (0) 2022.01.20
Apache Maven 설치  (0) 2021.06.16
Virtual Box 공유 폴더 설정  (0) 2021.06.15
반응형

1. 시험환경

    - Bootstrap

    - Java Script

 

2. 목적

    - <ESC> 입력시 Modal 창이 닫히는 것을 방지한다.

    - Modal 영역 밖에서 마우스 클릭시 Modal 창이 닫히는 것을 방지한다.

 

3. 적용

① Modal 태그에 적용하는 방법

 

② JavaScript에서 적용하는 방법

$('#signup-modal').modal( {data-backdrop: 'static', data-keyboard: 'false'} );

 

4. 결론

① data-backdrop과 data-keyboard 속성을 함께 설정하면 동작하는 것을 확인할 수 있다.

 

 

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

반응형
반응형

1. 시험환경

    - Spring Framework MVC

    - STS

 

2. 목적

    - pom.xml에서 발생하는 에러를 해결하자.

 

3. 적용

    ① 에러화면 및 로그

        - Could not initialize class org.apache.maven.plugin.war.util.WebappStructureSerializer

에러화면

 

    ② maven-plugin-war가 초기화되지 않아서 발생하는 에러이다.

        - 최신 버전 plugin을 추가한다.

plugin 추가

 

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

반응형
반응형

1. 시험환경

- 윈도우 10

- STS(Spring Tool Suite) 4

- Project Lombok 1.18.22

 

2. 목적

- Spring MVC 프로젝트에 Lombok 라이브러리를 설치한다.

- 보통의 라이브러리와 다르게 Lombok은 추가 설정을 해야만 동작한다.

 

3. 적용

    ① 의존성 라이브러리 코드를 스프링 프로젝트(pom.xml)에 추가한다.

Lombok 의존성 라이브러리를 다운받는다.


    ② 프로젝트에서 다운받은 라이브러리 경로에서 아래 명령어를 실행한다.

        - java -jar [JAR 파일명]

롬복 라이브러리 실행

 

    ③ 나타나는 화면에서 "IDE"(ex. STS, Visual Studio Code, IntelliJ 등) 실행 파일을 지정한다.

IDE 실행파일
설정 완료

 

    ④ Getter와 Setter를 자동으로 생성할 클래스에 @Data 어노테이션을 추가한다.

        - 주의> ① ~ ③의 작업을 하지 않으면 어노테이션을 추가하더라도 getter와 setter가 자동생성되지 않는다.

Getter, Setter 자동생성 어노테이션

 

4. 결과

① Getter, Setter가 자동으로 생성됨을 확인한다.

Getter, Setter 생성 확인

 

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

반응형
반응형

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 함수를 사용한 연산 결과

 

 

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

반응형

+ Recent posts