정보처리기사 실기 공부log - 20200913, 5과목 완료

2020. 9. 13. 17:41컴퓨터언어

728x90
반응형

 

Java class 

클래스란? 객체 생성을 위한 필드(속성)와 메소드(함수) 정의하는 설계도 

같은 파일에서 클래스를 정의할 때는 public을 두번 사용할 수 없다. 

객체 자체 heap 영역에 생성되고, 객체변수가 그 heap 영역의 주소를 가리키는 것이다. 

실행클래스 안에 또다른 클래스나 메서드를 정의할 때는 static을 앞에 붙인다. 

실행클래스 = main() 메서드가 속해있는 클래스

객체 : 속성과 이를 처리하기 위한 메소드를 결합한 소프트웨어 모듈

클래스 : 공통된 특성과 행위를 갖는 객체의 집합으로, 객체의 유형 또는 타입을 의미

메시지 : 객체들 간에 상호작용을 위한 수단으로, 객체의 메소드를 일으키는 외부의 요구사항

 

Python basic 

입력 데이터가 여러 개(.split()으로 구분)이면서 동일한 라인에 변수를 같은 갯수로 선언할 수 있다. 

입력 데이터가 여러 개이지만, 이를 받는 변수가 하나라면, 그 변수는 리스트가 된다. 

Input()은 무조건 문자열로 저장되므로 형변환이 필요하면 별도로 해주어야 한다. 

주의할 것은, 정수형으로 변환될 때 “0”이 맨 앞에 있다면 생략된다는 것이다. 

Print()는 콤마로 여러 데이터를 출력하며, 데이터 간 분리문자는 “sep=’-’” 와 같이 이용한다. 

end는 맨 마지막에 표시할 문자를 나타낸다. 

Sep 생략 시 기본 구분문자는 공백이며, end 생략 시 기본값은 줄나눔이다. 

Ex Print(“%-8.2f”, % 200.20) 

Capitalize() : 문자열의 첫글자만 대문자로 바꿈 

Title() : 각 단어(공백구분)의 첫글자만 대문자로 바꿈 

Find() : 찾지 못하면 -1 반환 <파일> 

Index() : 찾지 못하면 오류 반환 <인오> 

리스트에서 요소 삭제 : del list[index] or list.remove(‘something’) 

 

Pop(index) : 해당 index에 위치한 요소를 출력하고 삭제함 

Copy() 사용해야 서로 다른 메모리를 사용한다. 

slice는 실제 index 기반이다. 즉 [0,1,2,3,4][:4] == [0,1,2,3] 이다. 

Print(문자열)일 때, 따옴표는 출력되지 않는다. 

Range()가 감소상태라면, 최종위치+1까지다. 

F = 123456.789E-3이 주어졌다면, 123.456789로 고치고 시작해라. 

파이썬에서는 나눗셈 시 자동으로 float으로 형변환되므로, 소수점을 답안에 작성하는 것에 유의할 것. 

 

라이브러리 

라이브러리란? 프로그램을 효율적으로 개발할 수 있도록 자주 사용하는 함수나 데이터들을 미리 만들어 모아 놓은 집합체로, 필요할 때 언제든지 호출하여 사용할 수 있다. 

표준라이브러리 + 외부라이브러리 

모듈? 하나의 기능이 한 개의 파일로 구현된 형태 

패키지? 하나의 패키지 폴더 안에 여러 개의 모듈을 모아 놓은 형태 

 

C 

stdio.h : 데이터의 입출력에 사용되는 기능들을 제공한다. printf, scanf, fprintf, fscanf, fclose, fopen 

math.h : 수학 함수들을 제공 

string.h : 문자열 처리에 사용되는 기능들을 제공 

stdlib.h : 자료형변환, 난수발생, 메모리할당에 사용되는 기능들을 제공 

time.h : 시간처리에 사용되는 기능들을 제공 

 

Java 

java.lang : java에 기본적으로 필요한 인터페이스, 자료형, 예외처리 등에 관련된 기능 제공. Import문 필요없음 System, Error, Math, String, Process, Runtime 

java.util : 날짜 처리, 난수 발생, 복잡한 문자열 처리 등에 관련된 기능 제공. Date, Calender, Random, StringTokenizer 

java.io : 파일 입출력과 관련된 기능 및 프로토콜 제공. InputStream, OutputStream, Reader, Writer 

java.net : 네트워크와 관련된 기능 제공. Socket, URL, InetAddress 

java.awt : 사용자 인터페이스(UI)와 관련된 기능 제공. Frame, Panel, Dialog, Button, Checkbox 

 

Python 

내장함수 : Python에 기본적인 인터페이스로 import문이나 클래스명 없이 사용 가능. abs(), slice(), pow(), print() 

os : 운영체제와 상호작용하기 위한 기능 제공. getcwd(), chdir(), system() 

re : 고급 문자열 처리를 위한 기능 제공. findall(), sub() 

math : 복잡한 수학 연산을 위한 기능 제공. cos(), log() 

random : 무작위 선택을 위한 기능 제공. choice(), sample(), random(), randrange() 

statistics : 통계값 산출을 위한 기능 제공. mean(), median(), variance() 

datetime : 날짜와 시간 조작을 위한 기능 제공. today(), date(), strftime() 

 

절차적 프로그래밍 언어 

일련의 처리 절차를 정해진 문법에 따라 순서대로 기술해 나가는 언어 

프로그램이 실행되는 절차를 중요시 한다. 

데이터를 중심으로 프로시저를 구현한다. 

프로그램 전체가 유기적으로 연결되어 있다. 

자연어에 가까운 단어와 문장으로 구성된다. 

과학 계산이나 하드웨어 제어에 주로 사용된다. 

장점 : 컴퓨터의 처리구조와 유사하여 실행속도가 빠르다, 같은 코드를 복사하지 않고 다른 위치에서 호출하여 사용할 수 있다, 모듈 구성이 용이하며 구조적인 프로그래밍이 가능하다. 

단점 : 프로그램을 분석하기 어렵다, 유지보수나 코드수정이 어렵다. 

종류 : C, ALGOL, COBOL, FORTRAN 

C : 1972년 벨 연구소 데니스 리치, 시스템 소프트웨어 전문, 이식성이 좋아 컴퓨터 기종에 관계없음, 컴파일러 방식, 포인터 제공으로 자료의 주소 조작 가능, 고급+저급 특성 모두 갖춤 

ALGOL : 수치 계산이나 논리연산을 위한 과학 기술 계산용 언어, PASCAL과 C 언어의 됨 

COBOL : 사무처리용 언어, 영어문장형식으로 이해와 사용이 쉽다, 4개의 DIVISION으로 구성 

FORTRAN : 과학기술계산용 언어, 수학과 공학 분야의 공식이나 수식과 같은 형태로 프로그래밍 가능 

 

객체지향 프로그래밍 

현실 세계의 개체(Entity) 기계의 부품처럼 하나의 객체로 만들어, 기계적인 부품들을 조립하여 제품을 만들듯이 소프트웨어를 개발할 때도 객체들을 조립해서 프로그램을 작성할 수 있도록 하는 프로그래밍 기법 

프로시저보다는 명령과 데이터로 구성된 객체를 중심으로 하는 프로그래밍 기법으로, 한 프로그램을 다른 프로그램에서 이용할 수 있도록 한다. 

장점 : 상속을 통한 재사용과 시스템의 확장이 용이, 코드의 재활용성이 높다, 자연적인 모델링에 의해 분석과 설계를 쉽고 효율적으로 할 수 있다, 사용자와 개발자 사이의 이해를 쉽게 해준다, 대형 프로그램의 작성이 용이하다. 

단점 : 프로그래밍 구현을 지원해주는 정형화된 분석 및 설계 방법이 없다, 구현 시 처리 시간이 지연된다. 

종류 : Smalltalk(1세대), C++, Java 

 

스크립트언어 

HTML 문서 안에 직접 프로그래밍 언어를 삽입하여 기계어로 컴파일 되지 않고 별도의 번역기가 소스를 분석하여 동작하게 하는 언어. 

게시판 입력, 상품 검색, 회원 가입 등과 같은 데이터베이스 처리 작업을 수행하기 위해 주로 사용 

서버용 스크립트 언어 : ASP, JSP, PHP, Python 

클라용 스크립트 언어 : Javascript 

장점 : 컴파일 없이 바로 실행하므로 결과를 바로 실행할 수 있다, 배우고 코딩하기 쉽다, 개발 시간이 짧다, 소스 코드를 쉽고 빠르게 수정할 수 있다. 

단점 : 코드를 읽고 해석해야 하므로 실행 속도가 느리다, 런타임 오류가 많이 발생한다. 

 

선언형 언어 

프로그램이 수행해야 할 문제를 기술하는 언어 

목표를 명시하되 알고리즘은 명시하지 않음 

함수형 언어와 논리형 언어로 구분 

가독성이나 재사용성이 좋다. 

작동 순서를 구체적으로 작성하지 않기 때문에 오류가 적다. 

프로그램 동작을 변경하지 않고도 관련 값을 대체할 수 있다. 

종류 : HTML, XML, Haskell(부작용x), LISP(인공지능,재귀호출,연결리스트구조), PROLOG(인공지능,논리적추론,리스트처리) 

 

선언형 언어 : 프로그램이 수행해야 할 문제를 기술 

명령형 언어 : 문제를 해결하기 위한 방법을 기술 

 

예외처리 

예외 : 프로그램의 정상적인 실행을 방해하는 조건이나 상태 

예외처리 : 예외 발생 시 프로그래머가 해당 문제에 대비해 작성해 놓은 처리 루틴을 수행하도록 하는 것 

예외의 원인 : 컴퓨터 하드웨어 문제, 운영체제의 설정 실수, 라이브러리 손상, 사용자의 입력 실수, 받아들일 수 없는 연산, 할당하지 못하는 기억장치 접근 

java에서는 java.lang 패키지에서 예외와 관련된 클래스를 제공

 

오답노트 

hap = 0 

for i in range(1, 11): 

    hap += i 

print(i) 

 

여기서 i도 출력이 된다. 

 

비트 연산자가 여러 개일 경우, ~ -> & -> ^ -> | 순으로 계산하라! 

예를 들어, d = a & b & ~b 가 주어지면, d = [3: {2: a & b} & (1: ~b)] 순으로 한다. 

 

버블정렬 : a[n] & a[n+1] 

선택정렬 : a[i] & a[j] 

728x90
반응형