전체 글 94

C언어 동적할당

C언어에는 배열을 선언할 때 그 메모리공간을 직접 할당해줘야한다. 그렇기 때문에 malloc, colloc, realloc함수가 있는데, malloc함수는 고정된 크기의 메모리 할당이고 colloc함수는 malloc과 같지만 메모리를 초기화하는 부분이 추가되어있다. realloc함수는 malloc함수에 고정으로 할당된 메모리를 추가로 늘려줄 수 있지만 할당되었던 주소가아닌 새로운주소로 메모리를 할당하여 덮어쓰기 때문에 temp로 주소값을 백업해두는게 좋다고 한다.  C언어에서 malloc함수가 동적할당이라 하길래 가변적으로 데이터값도 늘어나겠구나 생각을했지만 고정으로 값을 할당하며 realloc으로 더 늘려줘야한다고 chat gpt에서 보았다. 그래서 malloc함수를 통해 5로 메모리할당하고 값을 계속..

CS/C언어 2025.02.05

실기) 요구사항 확인

(1) 소프트웨어 생명주기 모델1. 소프트웨어 생명주기 모델 ( SDLC; Software Development Life Cycle)  2. 생명주기 모델 프로세스- 요구사항 분석 - 설계 - 구현 - 테스트 - 유지보수  3. 생명주기 모델 종류 (폭프나반)- 폭포수 모델한단계 한단계씩 프로세스를 거치면서 순차적으로 진행하는 모델한단계씩 마무리를 완벽하게 지은 후 다음 모델로 이동 - 프로토타이핑 모델요구사항에 맞춰 프로토타입을 생성 한 후 고객의 의견을 반영하여 수정 진행 - 나선형 모델위험 최소화 하기 위해 점진적으로 위험분석하며 개발해 나가는 모델 절차계획 및 정의 -> 위험 분석 -> 개발 -> 고객 평가 - 반복적 모델병렬적으로 기능을 개발 한 후 그것을 통합 후 반복적으로 개발   (2) 소..

리눅스 시스템 간 암호 입력 없는 SSH 연결 및 PDSH 사용 방법 정리

리눅스 시스템 간의 암호 입력 없는 SSH 연결하기암호 입력 없는 SSH를 연결하기 위해서는 SSH 키 기반 인증을 설정해야합니다.비밀번호 대신 공개 키 암호화를 사용하여 시스템 간에 안전하게 인증을 수행하는 방식입니다.SSH 키 기반 인증은 비대칭키 인증방식인 RSA알고리즘을 사용하여 SSH 키를 생성하고 4096비트 길이의 키를 생성합니다. 이 공개키를 복사하여 SSH 대상 서버에 copy하여 add해주면 키 등록이 완료됩니다.인증 과정클라이언트는 공개 키 + 개인 키 쌍 생성→ 개인 키는 클라이언트 시스템에 안전하게 저장, 공개 키는 대상 서버로 복사하여 서버의 ~/.ssh/authorized_keys 파일에 저장공개키를 가지고 있는 대상서버는 접속하려는 클라이언트 서버의 신원인 (개인키)로 암호화..

디스크 성능테스트

0.  성능 테스트에 사용한 OS운영체제 버전Rocky 8.9Rocky 8.9Rocky 8.8Rocky 9.4CentOS 7.9Ubuntu 22.04 1.  dd 명령어를 통한 간단한 디스크 성능 확인- dd 명령어의 기본QD는 1입니다.- 블록사이즈는 64k, 데이터크기는 1Gb로 통일하여 테스트 진행했습니다.  dd 명령어 sequential read/write 성능 테스트 결과표Disk ModelInterfaceSequential ReadSequential WriteDataSheetSEAGATEST1200MM0099HDD (1.2TB)SAS188 MB/s10 MB/sSequential Read/Write(215, 108)Intel ThinkSystemSSDSC2KB480G7LSSD (480GB)SA..

Samba 설정: 리눅스와 윈도우 간 파일 공유 방법

Samba 설정삼바(Samba)는 마이크로소프트와 인텔에서 개발한 SMB 네트워크 프로토콜을 이용해 윈도우와 유닉스 계열의 운영체제나 다른 시스템 간의 자원을 공유할 수 있도록 만든 프로그램입니다.Samba 전체 작업 순서Samba 서버로 지정할 OS에 Samba 서버 패키지 설치Samba 사용자 추가공유할 디렉토리 권한 설정Samba 설정 파일 수정Samba 서비스 재시작Samba 서버 방화벽(ufw) 설정Samba 클라이언트 OS에서 클라이언트 Samba 패키지 설치마운트A. 리눅스 서버에서 특정 디렉토리를 삼바 공유하도록 설정Samba 설치sudo apt updatesudo apt install sambaSamba 사용자 추가(Samba 사용자 계정 생성 및 암호 설정)sudo smbpasswd -..

CS/네트워크 2024.09.06

Ubuntu와 CentOS 및 Windows에서 NFS 설정 가이드

NFS(Network File System)란?NFS(Network File System)는 네트워크를 통해 파일을 공유할 수 있는 시스템입니다. 서버와 클라이언트 구조로 이루어지며, 서버에서 공유 폴더를 설정하면 클라이언트가 이를 마운트하여 사용할 수 있습니다. 이 글에서는 Ubuntu 22.04에서 NFS 서버를 설정하고, CentOS 및 Windows에서 NFS 클라이언트로 접근하는 방법을 설명하겠습니다.NFS 설정 전체 작업 순서 NFS 서버 패키지 설치 공유할 디렉터리 설정 /etc/exports 파일 설정 설정 적용 방화벽 설정 NFS 클라이언트 패키지 설치 마운트 설정1. NFS 서버 설정 (Ubuntu 22.04)A. 리눅스 서버에서 NFS 서버 설치 및 설정NFS 서버 패키지..

CS/네트워크 2024.09.06

iperf3 프로그램으로 네트워크 대역폭 측정

작업 순서            VM서버에 2개 가상서버 구성 -> iperf3 설치 -> 방화벽에서 iperf3 port 접근 허용 설정 -> 대역폭 측정                          상세 작업 내용            1. iperf3 port 접근 허용 설정                  - firewall-cmd --zone=public --query-port=5201/tcp                  - firewall-cmd --zone=public --add-port=5201/tcp --permancnt             2. 대역폭 측정                  - iperf3 -s ( host서버에서 server모드로 실행 )                  - ..

리눅스 2024.09.06

GPU 서버에 Ubuntu 설치 및 CUDA 최신 버전 설치 (.run 파일 이용)

GPU 서버 시스템 명세서항목세부 정보서버 이름GPU-Server-01운영 체제Ubuntu 22.04.3 LTS커널 버전5.15.0-112-genericCPUIntel(R) Xeon(R) Gold 6330 CPU @2.00GHz * 2eaCPU 아키텍처x86_64CPU 코어 수28 coresRAM 용량128GB DDR4GPU 모델NVIDIA A100-PCIE-40GBGPU 수2GPU VRAM40GB HBM2 per GPUCUDA 버전12.5NVIDIA 드라이버 버전555.42.02GCC 버전11.4.0  1.   GPU 서버에 OS (Ubuntu)를 새롭게 설치하고 CUDA 최신 버전을 설치합니다. (RPM이나 deb이 아닌 .run 파일로 다운로드 받아서 설치)A.      Root 암호는 Dell12..

네트워크 GPU CLoud(NGC) / Docker 구성

NVIDIA GPU CLoud(NGC)            - NGC는 NVIDIA에서 제공하는 GPU에 최적화된 소프트웨어, 관리 도구 등을 지원하는 software Hub 입니다.      - 도커 컨테이너 기반의 개발환경을 제공함으로 안정되고 간편한 설치를 지원합니다.      - 인공지능(AI) 개발자들을 위한 엔비디아 GPU 클라우드 컨테이너 레지스트리 서비스 입니다.             설계 목적- NGC는 개발자, 데이터 과학자, 연구자들이 GPU 가속 컴퓨팅환경에서 보다 효율적으로 작업할 수 있도록 설계 되었습니다. 주요 구성 요소- 컨테이너 이미지 : NGC는 사전 빌드된, 최적화된 Docker 컨테이너 이미지를 제공합니다.- TensorFlow, PyTorch , MXNet, Tens..

카테고리 없음 2024.09.06

네트워크 Bonding

Bonding본딩은 네트워크 안정성과 대역폭을 늘리는 용도로 한 네트워크에 NIC을 여러개 묶어 포트 이중화를 할 수 있는 기술입니다.본딩은 총 6개의 모드로 구성되어있으며 각각의 모드마다 목적에 따라 기능을 갖추고있습니다.     본딩 모드모드 이름설명스위치 필요여부 사용 사례Mode 0Round robine각각의 NIC를 순차적으로 사용하여 트래픽을 분배합니다.그렇기 때문에 공평하게 할당이 됩니다. 스위치 설정을 통해 부하 분산합니다.O트래픽을 고르게 분산시켜야 하고, 패킷 순서가 중요하지 않은 환경Mode 1Active-backup하나의 NIC이 primary 으로 동작하며 다른 nic은 대기 상태로 있습니다. 동작중인 nic이 문제가 생기면 대기하고있던 nic으로 대체가 되므로네트워크 이중화모드 ..

CS/네트워크 2024.09.06

필기) 소프트웨어 설계 - 미들웨어 솔루션

미들웨어는 컴퓨터와 컴퓨터 간의 연결을 수비고 안전하게 할 수 있도록 해주고 이에 대한 관리를 도와주는 소프트웨어이다. 서로다른 프로토콜이나 시스템 운영체제, 데이터베이스와 애플리케이션 간에 통신을 지원해 주는 소프트웨어를 의미하며, 애플리케이션이 어떤 정보시스템 환경에서도 작동할 수 있도록 지원해 주는 역할을 한다. 분산시스템 관점에서의 미들웨어는 위치 투명성을 제공하고, 여러 컴포넌트가 요구하는 재사용 가능한 서비스의 구현을 제공한다. 미들웨어 솔루션 유형 : DB미들웨어, 원격 프로시저 호출, 메시지 지향 미들웨어, 트랜잭션 처리 모니터, 레거시웨어, 객체기반, WAS DB미들웨어 : DB 솔루션 업체에서 제공하는 애플리케이션과 DB 간에 통신을 원활하게 하는 것을 목적으로 하는 미들웨어원격 프로시..

필기) 소프트웨어 설계 - 디자인 패턴

디자인 패턴은 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴이다. 디자인 패턴 구성요소 - 패턴의 이름, 문제 및 배경, 솔루션, 사례, 결과, 샘플 코드패턴의 이름 : 디자인 패턴 이름 및 유형문제 및 배경 : 분야 또는 배경, 해결하는 문제를 의미솔루션 : 디자인 패턴을 이루는 요소들, 관계, 협동 과정사례 : 디자인 패턴의 간단한 적용 사례결과 : 디자인 패턴을 사용하면 얻게 되는 이점이나 영향샘플 코드 : 디자인 패턴이 적용된 원시 코드 디자인 패턴 유형디자인 패턴의유형으로는 생성 패턴, 구조 패턴, 행위 패턴이 있다.- 생성 패턴 : 객체 인스턴스 생성에 관여, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화를 수행하는 패턴- 구조 패턴..

필기) 소프트웨어 설계 - 객체지향분석

OOA : Object Oriented Analysis 개념객체 지향 분석은 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스(객체), 속성과 연산, 관계등으로 나누어서 분석하는 기법이다.데이터와 행위를 하나로 묶어 개겣를 정의하고 추상화시킨다.코드 재사용에 의한 프로그램 생산성 향상 및 요구에 따른 시스템의 쉬운 변경이 가능하다. 객체지향 방법론 종류1. OOSE : 야콥슨(Jacobson) , 유스케이스에 의한 접근방법 유스케이스를 모든 모델의 근간으로 활용되는 방법론- 분석, 설계, 구현 단계로 구성 2. OMT : 럼바우(Rumbaugh) , 그래픽 표기법을 이용하여 소프트웨어 구성요소를 모델링하는 방법론 -객동기-객체 모델링 : 정보 모델링이라고도 하며, 시스템에서 요구하는 객체를 ..

필기) 소프트웨어 설계 - HIPO

HIPO는 시스템의 분석 및 설계, 문서화할때 사용되며, 하향식 소프트웨어 개발을 위한 문서화 도구이다. - 체계적인 문서 관리가 가능함.- 기호, 도표 등을 사용해서 보기가 쉽고 이해가 쉬움.- 기능과 자료의 의존 관계를 동시에 표현할 수 있음.- 변경, 유지보수가 용이함.- 시스템의 기능을 고유 모듈들로 분할하여 이들 간의 인터페이스를 계층구조로 표현한 것을 HIPO 차트(Chart)라고 한다. HIPO 차트 종류가시적 도표 : 시스템의 전체적인 기능과 흐름을 보여주는 계층구조총체적 도표 : 입출력 처리에 대한 정보를 제공하는 도표 구성기능 기술세부적 도표 : 총체적 도표에 표시된 기능을 더 상세히 기술하는 도표

필기) 소프트웨어 설계 - 설계 모델링

개념 : 요구사항 분석 단계에서 필수로 구현해야하는 기능들에대한 구체적인 구현방법을 명시하는 것. 설계 모델링 원칙- 설계는 변경이 쉽도록 구조화되어야 함.- 하나의 함수안에 특정 기능만 수행되도록 필요한 자료만 사용할 수 있게 규제되어야 함.- 독립적이고 기능적인 특성을 지닌 모듈 단위로 분할 설계해야 함.- 계층적 구조를 가져야 함.  설계 모델링 유형 : 구조 모델링, 행위 모델링1. 구조 모델링 : 소프트웨어를 구성하는 컴포넌트들의 유형, 인터페이스, 내부 설계 구조 및 이들의 상호 연결 구조를 모델링- 구성요소 : 프로시저, 데이터 구조, 모듈, 파일 구조프로시저 : 프로그램을 기능에 따라 여러 개의 단위로 분해하여 작성하는 것. 크게 서브프로시저와 함수프로시저로 구분함.모듈 : 프로그램을 구성..