본문 바로가기

CS38

[소프트웨어 공학] 소프트웨어 공학이란? 소프트웨어 공학이란? 모든 사물과 사람이 서로 연결되어 정보를 생성 -> SW가 중요한 사회 프로그래밍 언어: 소프트웨어 개발 과정에서 구현 부분 담당 프로젝트: 어떤 목표를 위해서 여러 사람이 팀을 이루어 소프트웨어 및 하드웨어로써 정해진 기간에 그 목표를 달성하는 일련의 과정 모듈 (Module) 모듈화 프로그래밍 ▪ 프로그램을 구성하는 구성 요소 ▪ 관련된 데이터와 함수들의 묶음 ▪ 기능별로 나뉘어지는 프로그램 (코드 분할) ▪ 소프트웨어를 기능별로 파일로 나눠가며 프로그래밍 ▪ 유지보수가 좋아짐 ▪ 프로그램 수정시 빌드(Build)가 빨라짐 [단일 vs 다중 모듈화] 하드웨어: 컴퓨터를 구성하고 있는 전자회로 및 각종 장치 (입력, 출력, CPU(연산,제어), 기억) 소프트웨어: 하드웨어에게 입력.. 2021. 10. 16.
[쉘 스크립트] 기초 쉘 스크립트 기초 쉘(shell)이란? 사용자가 프로그램을 시작하고, 파일시스템에 있는 파일을 관리하고, 리눅스 시스템에서 실행되는 프로세스를 관리하는 방법을 제공 텍스트 명령을 입력하면 쉘은 이를 해석하고 커널에서 실행 쉘은 파일을 복사하고, 옮기고, 이름을 바꾸고, 현재 시스템에서 실행 중인 프로그램을 표시하고, 시스템에서 실행 중인 프로그램을 중지시키는 일들을 수행함 쉘 스크립트란? 쉘 명령들을 묶어서 파일에 넣음으로써 프로그램처럼 실행 → 쉘 스크립트 커맨드라인에서 실행할 수 있는 명령이라면 무엇이든 쉘 스크 립트에 넣고 명령의 그룹으로 실행 가능함 여러 가지 리눅스 쉘이 존재함. 리눅스 배포판에서 사용하는 기본 쉘은 bash 쉘(Bourne-again Shell) → UNIX 쉘을 대체하는 수단.. 2021. 10. 14.
[소프트웨어의 역사] 유닉스 vs 리눅스 소프트웨어의 역사 유닉스 vs 리눅스 초창기의 소프트웨어 컴퓨터 초창기에는 모든 SW는 자유롭게 구해서 사용하고, 살펴보고 수정하고 공유가 가능했음 모두 자신의 SW를 다른 사람들에게 기꺼이 배포함 대부분 SW가 매출원이 될 수 있다고 생각한 사람은 없었음 하드웨어 모델이 세분화되어 있어서 특정 모델을 위해 작성된 SW는 다른 모델에서는 실행되지 않았음 어떤 콘솔 게임을 샀다면 그 콘솔이 여러분이 즐기려는 게임이 작동하는 유일한 플랫폼 소프트웨어 가치 상승 많은 사람들이 SW을 개발하는데 많은 노력이 필요하다는 것을 꺠달음 하드웨어 생산과는 별도로 소프트웨어 새발 산업이 나타남 소프트웨어를 사용하는데 돈을 지불해야 했고, 소프트웨어를 사용하기만 하고, 수정하고 업데이트가 불가능한 형태로 변환됨 다른 사람.. 2021. 10. 14.
[리눅스] 명령어 (검색, 비교) 리눅스 명령어 (검색, 비교) cut 특정 컬럼의 내용을 잘라냄 $ ... | cut -b : byte만큼 잘라냄 $ ... | cut -f : 필드 선택 $ ... | cut -d : tab을 대신할 delimiter 지정 $ ... | cut --output-delimiter : 출력으로 사용할 delimiter 지정 $ head /etc/passwd | cut -d ‘:’ -f 1-3 $ head /etc/passwd | cut -d ‘:’ -f 1-3 -output-delimiter=‘=‘ $ wc –l *.py | cut -b 2-5 tr 특정 내용을 변환(translate)함 $ ... | tr -d : 삭제 $ ... | tr : 을 로 변환함 SET CHAR1 – CHAR2 : CHAR1에.. 2021. 10. 14.
[리눅스] 명령어 (text) 리눅스 명령어 (Text) echo (에코) echo [option] [string] 텍스트나 문자열을 출력함 $ echo “Hello World!” : “Hello World!”를 출력함 $ echo -e : 이스케이프를 해석 가능함 $ echo -e “Hello\nWorld!” 출력) Hello World! head 문서 내용의 앞부분만 출력함 (기본 10줄) $ head : 파일명의 앞부분만 출력함 $ head –n [NUM] : 파일명의 앞부분 [NUM] 줄까지 출력함 $ head –c [NUM] : 파일명의 앞부분 [NUM] 바이트까지 출력함 tail 문서 내용의 뒷부분만 출력함 (기본 10줄) $ tail : 파일명의 뒷부분만 출력함 $ tail –n [NUM] : 파일명의 뒷부분 [NUM] .. 2021. 10. 14.
[리눅스] 명령어 (basic) 리눅스 명령어 (Basic) ls (리스트) 현재 디렉터리에 있는 파일과 그 하위 디렉터리들의 이름이 나열 ls -l : 파일명뿐만 아니라 접근 권한, 소유자, 그룹, 파일 크기, 최종 수정 날짜 도 출력 (ll과 비슷함) ls -l /var : /var과 같이 특정 디렉터리를 지정하면 해당 디렉터리의 내용이 출력 $ ls -lh : 킬로바이트나 메가바이트 또는 기가바이트 단위처럼 읽기 쉬운 형 식으로 출력 $ ls -R : 현재 디렉터리 아래에 어떤 디렉터리가 있는지 확인 pwd (현재 작업 디렉토리) $ pwd : 현재 작업 디렉터리를 화면에 출력 cd (디렉토리 변경) 현재 작업 디렉토리를 지정한 디렉토리로 바꿈 $ cd .. : 상위 디렉토리로 이동 $ cd /home/ : 현재 디렉토리에서 아주.. 2021. 10. 13.
[TCP/IP 그림책] Telnet Telnet 높은 신뢰성을 기반으로 하는 통신이 이루어져야 하기 때문에 TCP를 기반으로 작동 포트 번호 : 23번 ※ 필요한 전제조건 ※ Telnet 서비스를 제공하는 서버에 사용자 계정과 비밀번호를 등록 Telnet 서비스를 제공하는 서버의 IP 주소 Telnet 서비스에 접속 CMD창에 telnet을 쳐줌. 서버에 접속하기 위해서는 서버의 IP 주소를 알고 있어야 함 open 명령어를 이용 open 명령을 내리면 클라이언트측의 사용자 계정과 암호를 서버측에 전송해서 로그인을 하겠다는 메세지가 나타남 'y' 선택 -> 로그인 사용자 계정과 암호를 입력하면 로그인이 됨 로그인이 된 후에는 서버측의 컴퓨터에 존재하게 됨 파일 이동, 삭제, 생성 등의 간단한 작업부터 네트워크 환경 설정 및 수정 작업과 같.. 2019. 7. 15.
[TCP/IP 그림책] 보안(8장) [TCP/IP] 보안 1) 도청 통신 중 패킷이 부정한 방법으로 복사되어서 개인 정보를 도둑맞는 것 2) 내용 변경 통신 중 패킷을 도둑맞아서 정보가 부정한 방법으로 변경되는 것 3) 부정 액세스 다른 사람의 컴퓨터에 허가 없이 침입하는 것 4) Dos 공격(Denial of Service Attack) 서버 등에 모두 처리할 수 없는 양의 패킷을 보내서 기능을 마비시키는 것 ex) 스펨 메일 5) 컴퓨터 바이러스의 침입 컴퓨터 바이러스 = 컴퓨터에 위해를 가하는 것을 목적으로 만들어진 프로그램 - 패킷 도난 대책 - 1) 암호화 데이터를 어떤 규칙을 근거로 해서 가공하고, 제 3자가 쉽게 읽을 수 없도록 하는 것 복호화 : 원래대로 되돌리는 것 2) 전자 서명 데이터가 변경되지 않았는지를 판단하는 장치.. 2019. 5. 28.
반응형