728x90 반응형 분류 전체보기278 [자료구조] 자료구조에 대하여 💡 자료구조란 무엇인가? (Data Structure) 프로그램에서 사용할 많은 데이터를 메모리 상에서 관리하는 여러 구현 방법들 효율적인 자료구조가 성능 좋은 알고리즘의 기반이 됨 자료의 효율적인 관리는 프로그램의 수행 속도와 밀접한 관련이 있음 여러 자료 구조 중에서 구현하려는 프로그램에 맞는 최적의 자료구조를 활용해야 하므로 자료구조에 대한 이해가 중요함 💡 자료구조에는 어떤 것들이 있나? 선형 자료구조 (Linear) 배열 (Array) : 정해진 크기의 메모리를 먼저 할당 받아 사용하고, 자료의 물리적 위치와 논리적 위치가 같음 연결 리스트 (LinkedList) : 자료가 추가될 때마다 메모리를 할당 받고, 자료는 링크로 연결됨. 자료의 물리적 위치와 논리적 위치가 다를 수 있음. 스택 (St.. 2023. 8. 28. [TimeComplexity] 시간 복잡도 💡 알고리즘에 대한 해답을 찾는 것도 중요하지만 시간복잡도를 고려하여 효율적인 코드를 짜는 것도 중요하다. ‘입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼마만큼 걸리는가?’라는 말이다. 효율적인 알고리즘을 구현한다는 것은 바꾸어 말해 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 알고리즘을 구성해야 한다. ❗️Big-O 표기법 Big-O(빅-오) ⇒ 상한 점근 [최악] Big-Ω(빅-오메가) ⇒ 하한 점근 [최선] Big-θ(빅-세타) ⇒ 그 둘의 평균 [중간] Big-O(빅-오) 표기법은 최악의 경우를 고려하므로, 프로그램이 실행되는 과정에서 소요되는 최악의 시간까지 고려할 수 있기 때문에 가장 자주 사용된다. 👉 Big-O 표기법의 종류 O(1) - 일정한 복잡도 O(l.. 2023. 8. 28. [Linux] 모니터링 파일을 유지시키며 내용만 제거 cp /dev/null ??text cpu 사용량이 가장 많았던 시간대 추출 sar -u | grep -v 'Average' | sort -nrk 9 | head -n 1 Disk io가 가장 높았던 시간대 추출 sar -b | grep -v 'Average' | sort -nrk 6 | head -n 1 모니터링 방법 yum install sysstat /usr/lib64/sa/sa1 1 1 sar 5분에 한번씩 쌓기 crontab -e */5 * * * * /usr/lib64/sa/sa1 1 1 모니터링 방법들 httpd서비스 cpu사용량 확인 database(maria) 메모리 사용량 확인 ~ 2023. 8. 27. [Linux] 백업 / 복구 passwd파일에서 root가 들어간 라인만 찾음 cat /etc/passwd |grep root grep root /etc/passwd (같은 결과) grep은 현대 디렉토리 대상, find는 전체에서 찾음 패스워드가 비어있는 사용자 도출 awk -F: '{if ($2=="!!") print $1}' /etc/shadow cat /etc/shadow | awk -F: '{if ($2=="!!") print $1}' pw는 2번째 자리에 있으며, 없으면 !!으로 채워져있다. 7일 동안 변경된 파일 카운트 find / -ctime -7 | wc 사용자가 없는 파일 찾기 find -nouser | wc 소유자가 없는 파일의 소유자 id와 일치하는 계정이 있으면 해당 계정의 파일이 된다. (/etc/passw.. 2023. 8. 27. [Linux] Shell 프로그램 **셸 스크립트(Shell script)**는 셸 프로그래밍 언어를 사용하여 작성된 스크립트입니다. 셸 스크립트는 셸에서 실행되는 일련의 명령어들을 포함하고 있으며, 여러 명령어를 순차적으로 실행하거나 제어 구문을 사용하여 조건부로 실행할 수 있습니다. #쉘 프로그램 (https://wikidocs.net/24935) 참고 쉘 스크립트(명령)를 이용해 명령어를 작성하여 커널에 전달. (*.bat, 프로그램명.sh ~) 쉘스크립트 첫 줄의 '#!'는 실행프로그램으로 사용한다는 것을 알려주는 명령 (#!/bin/bash) ftype = 'date'는 date란 문자열을 ftype변수로 넣는거고, ftype = date는 date의 실행 결과를 ftype변수에 넣는다. #은 주석, echo는 출력 (변수 출력.. 2023. 8. 27. [Linux] Cron 스케줄러 MySQL(workbench) 다운로드 https://dev.mysql.com/downloads/workbench/ (Windows (x86, 64-bit), MSI Installer 8.0.32 45.7M) https://dev.mysql.com/downloads/windows/installer/8.0.html (Windows (x86, 32-bit), MSI Installer 8.0.32 437.3M) 스케줄러 cron 주기적으로 반복되는 일을 자동적으로 실행하도록 설정 (/etc/crontab) crontab -l (작업 리스트 보기) crontab -e (작업 만들기) 스케줄 세팅: ***** (분.시.일.월.요일) - 일요일부터 '0' */2 * * * * (2분마다 실행) 10,30 * * *.. 2023. 8. 27. [Linux] FTP 접속 FTP접속 sftp b2145055@13.125.209.139 sftp 계정@ip주소 파일 보내기 (put) 보낼 파일의 경로와 파일명 sftp> put /home/inhatc/work0411/ftptest 파일 가져오기 (get) 자기 계정의 홈으로 가져옴 (/home/inhatc) sftp> get ftptest 파일 만들어서 전송하기 (리다이렉션) [명령어] >> [파일명] 으로 복붙하지 않고 바로 파일로 넣을 수 있다. vi 202145055_20230411 last > 202145055_20230411 history >> 202145055_20230411 df >> 202145055_20230411 전송 sftp> put /home/inhatc/work0411/202145055_20230411 .. 2023. 8. 27. [Linux] 데이터베이스 사용 Server Client sshd -(22)- putty httpd -(80,443)- browser mysql -(3306)- app(DBA) app 데이터베이스 접속 DBA => app -> mysql로 직접적으로 접근 User => putty -> sshd -> mysql로 우회하여 접근 DataBase mariadb설치 yum install mariadb-server 서비스 가동 service mariadb start sql문 mysql -u root [-p] show databases; use mysql; show tables; desc [table name] select * from [user] DB명 : inhatc_db *DB유저 : inhatcdb *password : inhatcdb!@.. 2023. 8. 27. [Linux] VirtualHost 💡 가상 호스트란? 기본적으로 웹서버에 존재하는 주 호스트 도메인을 등록하여 사용하고 있지만 추가적으로 한 서버에 여러 도메인을 등록하여 사용한다는 의미이다. 가상 호스트 서버를 이용하여 제한된 공간 안에서 여러 개의 홈페이지를 제공해주는 서비스가(웹, 메일 등) 호스팅 서버스이다. 1. Name-based Virtual Host Name-based 방식의 가상 호스트는 같은 IP 주소를 가지고 여러 개의 호스트명을 가진다.(가장 보편적인 방법) 2. IP-based Virtual Host IP Address 기반의 가상 호스트라고 하며, 각 웹 사이트마다 IP Address 또는 Port를 다르게 가지는 방식이다. VirtualHost Setting 1. /etc/httpd/conf.d 디렉토리에 vh.. 2023. 8. 27. 이전 1 ··· 14 15 16 17 18 19 20 ··· 31 다음 728x90 반응형