JMeter란

성능 테스트와 측정을 위한 오픈소스 소프트웨어로, 100% 자바로 개발됨

The Apache JMeter™ application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.

 

1. 사전 준비

Java Runtime 먼저 설치하기. Java가 없다면? jar 파일 실행 못함.

https://www.java.com/en/download/manual.jsp

 

2.  JMeter 설치하기

아래 링크 접속 후, Binaries에서 zip 파일 다운받아 압축 풀기

https://jmeter.apache.org/download_jmeter.cgi

 

3. JMeter 실행하기

압축 푼 폴더의 bin 폴더 안에 들어가서, 콘솔 창에 아래 명령어 입력하여 ApacheJMeter.jar 실행하기

: 콘솔 프로그램은 java.exe -jar [파일명.jar] 로 실행하고, GUI 프로그램은 javaw.exe -jar [파일명.jar]로 실행함

javaw.exe -jar ApacheJMeter.jar

 

 

 

 

 

 

 

 

Pinpoint PHP-Agent를 설치하는 중에, make 과정에서 에러가 나는 경우가 있다.

다양한 원인이 있는데, 이때 아래와 같이 해서 해결했다.

 

문제 1. pecl이 없다고 나오는 경우

pecl을 설치한다.

yum install php-pear
pecl channel-update pecl.php.net

 

문제 2. gcc 버전이 낮은 경우

CentOS의 기본 gcc에 필요한 정의가 부족하고 gcc PECL을 업그레이드한 후에도 이전 컴파일러를 찾는 것이다. 드라이버를 설치하려면 먼저 다음과 같이 devtoolset 컬렉션을 설치하여 gcc를 업그레이드해야 한다고 한다.

아래 과정을 거친다.

yum install centos-release-scl
yum-config-manager --enable rhel-server-rhscl-7-rpms
yum install devtoolset-8
scl enable devtoolset-8 bash
pecl download sqlsrv-5.2.0RC1

 

문제 3. sql.h 파일을 못찾는 경우

sqlsrv-5.2.0RC1 xplat.h fatal error: sql.h: No such file or directory  어쩌구 에러가 나오는 경우 아래 명령을 실행한다.

yum -y install unixODBC-devel

 

참고

https://ryotta-205.tistory.com/50https://github.com/grpc/grpc/issues/17812

centos 7에서 yum으로  cmake를 설치하면, 오래된 버전이 설치된다. (2.x 대 버전)

프로젝트에서 3.x 이상의 cmake 버전을 요구하면, 해당 버전의 소스파일을 받아서 컴파일 해주어야 한다.

 

1. 기존 CMake 가 있다면 삭제

yum remove cmake

 

2. 새로운 CMake 설치

01. tar 파일 다운로드

현재 최신버전이 3.27.0 이다.

sudo su
cd /usr/local/src
wget http://www.cmake.org/files/v3.27/cmake-3.27.0.tar.gz

02. 압축해제

tar -zxvf cmake-3.27.0.tar.gz

03. 설치

cd cmake-3.27.0
./bootstrap --prefix=/usr/local
make
make install

04. 설치확인

버전정보가 잘 나오면 설치 성공.

cmake --version

 

참고

https://hgko1207.github.io/2021/01/25/linux-11/

AWS EC2 Ubuntu 20.04 서버에, 도커를 사용하여 Pinpoint를 설치하는 방법이다.

Pinpoint란?
네이버에서 개발한 오픈소스 웹 어플리케이션 모니터링 툴

 

0. 준비 : EC2 서버에 ssh 접속

 

1. docker와 docker-compose를 설치

>> 설치 방법은 다음 글 참고 https://life-coding.tistory.com/141

 

2. 적당한 위치에 pinpoint-docker.git을 클론할 폴더 생성

(아래는 홈 디렉토리 안에 repos라는 폴더를 만들어 그 안으로 이동하는 예)

cd ~
mkdir repos
cd repos

 

3. pinpoint-docker git repository를 복제

git clone https://github.com/naver/pinpoint-docker.git

 

4. pinpoint-docker 폴더 안으로 이동

cd pinpoint-docker

 

5. pinpoint 도커 이미지 다운 & 설치 & 실행

docker-compose pull && docker-compose up -d
※ 참고
위 명령 돌리기 전에, 사용중인 포트를 먼저 체크해보자.
- 3306 포트는 미사용중이어야 한다. (이미 3306 포트로 DB가 실행되고 있다면 포트 binding을 못해서 pinpoint가 실행 안됨. 기존에 사용중이던 mysql을 stop 하고 다시 docker-compose up -d를 해주어야 한다.)
- 그 외에도, 설정에 기록된 포트들은 모두 미사용 중이어야 한다.

 

6. 현재 실행중인 도커 이미지 확인

docker ps

 

7. 본인의 서버주소:8080으로 접속되면 성공! (아래와 같이 PINPOINT 화면이 나오면 된다.)

 

참고

https://m.blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=bokmail83&logNo=221861896820

1. 도커 이미지

1) 도커 이미지 검색

# docker images

2) 도커 단일 이미지 삭제

# docker image rm <image ID>

3) 도커 모든 이미지 삭제

# docker rmi $(docker images -q) -f

 

2. 도커 컨테이너 생성

1) 도커 컨테이너 생성 & 실행

# docker run <옵션> --name <컨테이너이름:test> <이미지 Repository>

2) 도커 컨테이너 생성만

# docker create <옵션> --name <컨테이너이름:test> <이미지 Repository>

 

3. 도커 컨테이너 접속

1) 도커 컨테이너 접속

# docker exec -it <컨테이너이름> /bin/bash

 

4. 도커 컨테이너 빠져나오기

컨테이너에서 빠져나오는 방법은 두가지가 있습니다.

1) 컨테이너를 종료하면서 빠져나오기

# exit 또는 ctrl+D

2) 컨테이너가 가동되는 상태를 유지하면서 접속만 종료하기

# ctrl + P 입력 후 Q 입력

 

5. 도커 컨테이너 실행/종료

1) 컨테이너 실행

# docker start <컨테이너이름>

2) 컨테이너 종료

# docker stop <컨테이너이름>

3) 모든 컨테이너 한번에 종료

# docker stop $(docker ps -qa)

4) 컨테이너 강제 종료 (SIGKILL 시그널 전달)

# docker kill [container]

5) 컨테이너 일시 중지

# docker pause [container]

6) 컨테이너 재개

# docker unpause [container]

 

6. 컨테이너 조회

1) 실행중인 컨테이너 리스트 출력

# docker ps

2) 전체 컨테이너 리스트 출력

# docker ps -a

3) 컨테이너 상세 정보 확인

# docker inspect [container]

 

7. 컨테이너 삭제

1) 개별 컨테이너 삭제

# docker rm <컨테이너이름>

2) 모든 컨테이너 한번에 삭제

# docker rm $(docker ps -qa)

3) 중지된 모든 컨테이너 삭제

# docker container prune

 

8. 컨테이너 로그 확인

1) 개별 컨테이너 로그 확인

# docker logs [컨테이너이름]

2) 마지막 로그부터 사용자가 지정한 라인까지 출력 (로그가 너무 많아 읽기 힘든 경우)

# docker logs --tail 10 [컨테이너이름]

3) 입력받은 유닉스 시간 이후의 로그 확인, -t 옵션으로 타임스탬프 표시 가능

# docker logs --since 1549150300 -t [컨테이너이름]

4) 실시간으로 생성되는 로그를 스트림으로 확인

# docker logs --tail 10 -f [컨테이너이름]

 

 

참고

https://narup.tistory.com/198

https://kimjingo.tistory.com/58

https://velog.io/@bbangi/Docker-%EC%83%9D%EC%84%B1-%EC%8B%A4%ED%96%89-%EC%A2%85%EB%A3%8C

https://sungwookkang.com/1299

준비 : EC2에 ssh로 접속한다.

 

Docker 설치

1. 패키지 업데이트 

sudo apt-get update

2. https관련 패키지 설치

sudo apt install apt-transport-https ca-certificates curl software-properties-common

3. docker repository 접근을 위한 gpg 키 설정

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4. docker repository 등록

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

5. 다시 패키지 업데이트

sudo apt update

6. 도커 설치

sudo apt-get install docker-ce docker-ce-cli containerd.io

7. 설치 확인

sudo docker --version

8. 도커로 hello-world 이미지 구동해봄

sudo docker run hello-world

9. 아래와 같은 메시지가 나오면 성공!

latest: Pulling from library/hello-world
719385e32844: Pull complete
Digest: sha256:926fac19d22aa2d60f1a276b66a20eb765fbeea2db5dbdaafeb456ad8ce81598
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

 

Docker-compose 설치

docker-compose를 standalone 방식으로 설치하는 방법이다.

 

1. Compose standalone을 다운로드하고 설치

sudo curl -SL https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose

2. 설치한 파일에 실행권한 추가

sudo chmod +x /usr/local/bin/docker-compose

3. 어느 위치에서든 docker-compose 명령을 사용하고 싶으면, 아래 심볼릭 링크 추가

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4. docker-compose 버전 확인

sudo docker-compose -v

 

sudo 없이 docker 명령어 사용하기

1. 현재 사용자를 docker group에 포함

sudo usermod -aG docker ${USER}

사용자명이 ubuntu라면,

sudo usermod -aG docker ubuntu

2. 터미널 재시작 후 결과 확인(끝에 docker가 있는지 확인)

id -nG

 

참고

https://velog.io/@osk3856/Docker-Ubuntu-22.04-Docker-Installation

https://docs.docker.com/compose/install/standalone/

https://everydayyy.tistory.com/121

폴더를 나눠서, 하위 폴더에 있는 소스를 포함하여 exe 생성하는 cmake 예제입니다.

 

파일 구조

Root (folder)
+ CMakeLists.txt
+ main.cpp
+ src (folder)
   - CMakeLists.txt
   - test.h
   - test.cpp

 

Root 폴더의 CMakeLists.txt

# CMake 프로그램의 최소 버전
cmake_minimum_required(VERSION 3.11)

# 프로젝트 정보
project(
    myproject
    VERSION 0.1
    DESCRIPTION "myproject sample"
    LANGUAGES CXX)

# C++11 설정
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# 확인할 디렉토리 추가 - 해당 디렉토리에 CMakeLists.txt를 읽고 실행함
# add_subdirectory(<소스 디렉토리명> [binary_dir] [EXCLUDE_FROM_ALL] [SYSTEM])
add_subdirectory(src)

# 빌드 최종 결과물로 생성할 실행파일 추가 - 실행파일명은 프로젝트이름인 myproejct를 사용함
# ADD_EXECUTABLE ( <실행_파일명> <소스_파일> <소스_파일> ... )
add_executable(${PROJECT_NAME} main.cpp)

# Target 링크시 포함할 라이브러리 목록 지정
# TARGET_LINK_LIBRARIES ( <Target_이름> <라이브러리> <라이브러리> ... )
target_link_libraries(${PROJECT_NAME} test)

 

Root 폴더 하위에 있는 src 폴더의 CMakeLists.txt

# 빌드 최종 결과물로 생성할 라이브러리 추가 - 정적 라이브러리 test 를 만듦
# ADD_LIBRARY ( <라이브러리_이름> [STATIC|SHARED|MODULE] <소스_파일> <소스_파일> ... )
add_library(test STATIC test.h test.cpp)

 

참고

https://www.tuwlab.com/27260

https://modoocode.com/332

Visual Studio란

Visual Studio는 전체 개발 주기를 한 곳에서 완료하는 데 사용할 수 있는 강력한 개발자 도구입니다. 코드를 작성, 편집, 디버그 및 빌드한 다음 앱을 배포하는 데 사용할 수 있는 포괄적인 IDE(통합 개발 환경)입니다. 코드 편집 및 디버깅 외에도 Visual Studio에는 컴파일러, 코드 완성 도구, 소스 제어, 확장 및 소프트웨어 개발 프로세스의 모든 단계를 향상시키기 위한 더 많은 기능이 포함되어 있습니다.

 

Visual Studio Code란

비주얼 스튜디오 코드Visual Studio Code는 마이크로소프트Microsoft에서 오픈소스로 개발하고 있는 소스 코드 에디터입니다. 웹 기반으로 기술들로 데스크톱 애플리케이션을 만들 수 있는 깃허브GitHub의 일렉트론Electron을 기반으로 만들어져 맥OSmacOS, 리눅스Linux, 윈도우Windows 등 메이저 운영체제를 모두 지원하고 있습니다. 마이크로소프트의 통합 개발 환경(IDE) 비주얼 스튜디오Visual Studio와 이름이 비슷하지만 따로 개발되고 있으며 IDE보다는 코드 에디터에 가깝습니다. MIT 라이센스로 오픈소스로 공개되어 있으며, 무료로 사용할 수 있습니다.

 

Visual Studio와 Visual Studio Code (VS Code)의 비교

간단히 정리해보자면...

공통점

- 개발을 위한 코드 에디터

- 다양한 extentions 지원

- 다양한 언어 지원

 

차이점

Visual Studio Visual Studio Code(VS Code)
- 포괄적인 통합 개발 툴
(개발을 위한 코드 편집 및 디버거, 컴파일러, 코드 완성 도구, 소스 제어 등 많은 기능이 이미 포함되어 있음)

- 대규모 프로젝트, 엔터프라이즈 개발, Windows, .NET, and Azure 같은 특정 플랫폼을 대상으로 하는 프로젝트에 특히 적합
- 경량화된 크로스 플랫폼 코드 에디터
(가벼운 코드 에디터로 출발 하나, 사용자의 니즈에 따라 디버거, 컴파일러, 코드완성도구, 언어 등을 확장팩으로 추가 가능하여, 결과적으로 VisualStudio와 유사한 효과를 냄)

- 웹 개발, 오픈 소스 프로젝트 및 크로스 플랫폼 개발에 인기 있음

 

Visual Studio and Visual Studio Code (VS Code) are both popular development environments, but they have some key differences:

  1. Purpose and Scope:
    • Visual Studio (often referred to as Visual Studio IDE) is a comprehensive Integrated Development Environment provided by Microsoft. It supports a wide range of programming languages and frameworks, including C++, C#, .NET, and more. It offers extensive features for building, debugging, testing, and deploying applications.
    • Visual Studio Code (often abbreviated as VS Code) is a lightweight, cross-platform code editor that is highly customizable. It provides excellent support for various programming languages through extensions. It is known for its versatility and ease of use.
  2. Extensibility:
    • Visual Studio has an extensive ecosystem of plugins and extensions, which allows developers to enhance the IDE's functionality. These extensions can provide additional tools, language support, project templates, and more.
    • Visual Studio Code is designed from the ground up to be extensible. It has a vast library of extensions available through its marketplace, allowing users to customize and tailor their development environment to their needs.
  3. Language and Framework Support:
    • Visual Studio has extensive support for a wide range of programming languages and frameworks, including .NET, C++, C#, Python, JavaScript, and more. It provides rich language-specific features, debugging capabilities, and project templates for these languages.
    • Visual Studio Code also supports a wide range of programming languages and frameworks, thanks to its large collection of extensions. It offers syntax highlighting, code completion, debugging support, and more for popular languages like JavaScript, Python, Java, C++, and many others.
  4. Integrated Tools:
    • Visual Studio comes with a rich set of built-in tools for various development tasks, such as a powerful debugger, code refactoring tools, performance profilers, database integration, and more.
    • Visual Studio Code provides a basic set of features out of the box, but it relies on extensions to provide more specialized tools. Users can install extensions for specific tasks like debugging, version control, linting, code formatting, and more.
  5. Project Types and Workflows:
    • Visual Studio is particularly well-suited for large-scale projects, enterprise development, and projects targeting specific platforms like Windows, .NET, and Azure. It provides extensive project templates, project management tools, and integration with various Microsoft services and platforms.
    • Visual Studio Code is a lightweight and versatile code editor that can be used for a wide range of projects and workflows. It is popular among web developers, open-source projects, and cross-platform development.

Ultimately, the choice between Visual Studio and Visual Studio Code depends on your specific needs, project requirements, and personal preferences. Visual Studio provides a full-featured IDE experience, while Visual Studio Code offers a lightweight and customizable code editing environment.

 

참고

https://learn.microsoft.com/ko-kr/visualstudio/get-started/visual-studio-ide?view=vs-2022 

https://www.44bits.io/ko/keyword/visual-studio-code

Chat GPT

+ Recent posts