본문에 오류가 있을 수 있음을 감안하고 봐주시길 바랍니다.
# 문제 풀이 중 오답노트 하면서 나온 내용을 정리한 것
Java 클래스: 객체 생성을 위한 필드(속성)와 메서드(함수)를 정의하는 설계도로 Java는 아무리 작은 프로그램이라도 클래스를 만들어서 사용해야 한다.
class ClassA { // ClassA를 정의함
ClassA() {
System.out.print('A'); // ①
this.prn(); // ②
}
void prn() {
System.out.print('B');
}
}
class ClassB extends ClassA { // 상속 (Inheritance): extends 키워드를 사용하여 부모 클래스의 속성과 메서드를 자식 클래스가 물려받는다.
ClassB() {
super(); // 상속한 부모 클래스 가리키는 예약어, ①
System.out.print('D'); // ③
}
void prn() {
System.out.print('E'); // ②
}
void prn(int x) {
System.out.print(x); // ④
}
}
public class test {
public static void main(String[] args) {
int x = 7;
ClassB cal = new ClassB(); // 생성자(객체 변수를 생성하면서 초기화를 수행함)
cal.prn(x); // cal이라는 ClassB안의 prn을 수행함, AED7
}
}
- X == Y일 때, X와 Y가 String이라면 동일한 주소를 의미함
- X.equals(Y), X와 Y의 문자열만 비교해서 True or False 출력
추상 메서드: 부모 클래스에서 선언만 하고 자식 클래스에서 반드시 재정의(Overriding)하여 사용해야 하는 메서드다.
abstract class Animal { // 추상 클래스 Animal을 정의함
String a = " is animal";
abstract void look();
void show() {
System.out.println("Zoo"); // ③
}
}
class Chinken extends Animal {
Chicken() {
look(); // ①
} void look() { // ②
System.out.println("Chicken" + a);
} void display() {
System.out.println("two wings");
}
}
public class test {
public static void main(String[] args) {
Animal a = new Chicken(); // Chicken 클래스의 생성자를 이용해 Animal 클래스의 객체 변수 a를 선언함, Chicken is animal 출력
a.show(); // Zoo 출력
}
}
예외처리: 예외가 발생했을 때 프로그래머가 해당 문제에 대비해 작성해 놓은 처리 루틴이 수행되도록 하는 것이다. 일반적인 처리 루틴은 프로그램을 종료시키거나 로그(Log)를 남기는 것이다. # 문법 오류로 인해 발생한 것은 코드가 실행조차 안되서 예외 처리 안됨
- 예외 원인: 컴퓨터 하드웨어 문제, 운영체제의 설정 실수, 라이브러리 손상, 사용자의 입력 실수, 받아들일 수 없는 연산, 할당하지 못하는 기억장치 접근
- Java의 예외 처리: 자바는 예외를 객체로 취급하며 예외와 관련된 클래스를 java.lang 패키지에서 제공한다. try ~ catch 문을 이용해 예외처리를 수행한다.
try {
예외가 발생할 가능성이 있는 코드;
} catch(예외처리1 매개변수) {
예외처리1에 해당하는 예외발생 시 처리 코드;
}
...
finally {
예외의 발생 여부와 관계없이 무조건 처리되는 코드;
}
- Java의 주요 예외 처리
| 예외 객체 | 발생 원인 |
| ClassNotFoundException | 클래스를 찾지 못한 경우 |
| NoSuchMethodException | 메소드를 찾지 못한 경우 |
| FileNotFoundException | 파일을 찾지 못한 경우 |
| InterruptedIOException | 입·출력 처리가 중단된 경우 |
| ArithmeticException | 0으로 나누는 등의 산술 연산에 대한 예외가 발생한 경우 |
| IllegalArgumentException | 잘못된 인자를 전달한 경우 |
| NumberFormatException | 숫자 형식으로 변환할 수 없는 문자열을 숫자 형식으로 변환한 경우 |
| ArrayIndexOutOfBoundsException | 배열의 범위를 벗어난 접근을 시도한 경우 |
| NegativeArraySizeException | 0보다 작은 값으로 배열의 크기를 지정한 경우 |
| NullPointerException | 존재하지 않는 객체를 참조한 경우 |
Garbage Collector: JAVA에서 힙(Heap)에 남아있으나 변수가 가지고 있던 참조값을 잃거나 변수 자체가 없어짐으로써 더 이상 사용되지 않는 객체를 제거해주는 역할을 하는 모듈
Python: 귀도 반 로섬(Guido van Rossum)이 발표한 언어, 인터프리터 방식, 객체지향 기능을 지원하는 스크립트 언어로 다른 언어에 비해 문법이 간단하다(배우기 쉽다)는 장점 및 이식성이 좋은 특징이 있다. 변수의 자료형에 대한 선언이 없고 문장의 끝을 의미하는 세미콜론(;)을 사용할 필요가 없다. 코드 블록을 의미하는 중괄호({ }) 대신 콜론(:)과 여백으로 구분한다.
- 리스트 자료형 관련 주요 메서드
| 형식 | 내용 |
| pop(위치) | 리스트에서 '위치'에 있는 값을 출력하고 해당 요소를 삭제한다. |
| index(값) | 리스트에서 '값'이 지정된 요소의 위치를 반환한다. |
| count(값) | 리스트에서 '값'이 저장되어 있는 요소들의 개수를 반환한다. |
| extend(리스트) | 리스트의 끝에 새로운 '리스트'를 추가하여 확장한다. |
| reverse() | 리스트의 순서를 역순으로 뒤집는다. |
| sort() | 리스트를 정렬하면 기본값은 오름차순이다. sort(reverse=True) → 내림차순, sort(reverse=False) → 오름차순 |
| append(값) | 리스트의 맨 마지막에 새로운 요소를 하나 추가합니다. |
| insert(위치, 값) |
리스트의 지정한 '위치'에 특정 '값'을 삽입합니다. |
| remove(값) | 리스트에서 첫 번째로 나오는 특정 '값'을 찾아서 삭제합니다. |
- 세트 자료형 관련 주요 메서드( { ~ }, ~안에 중복값은 없다)
| 형식 | 내용 |
| pop() | 세트의 값을 출력하고 요소를 삭제한다. |
| add(값) | 세트에 '값'을 추가한다. |
| update(세트) | 세트에 새로운 '세트'를 추가하여 확장한다. |
| remove(값) | 세트에서 '값'을 찾아 해당 요소를 삭제한다. |
- 슬라이스(Slice): 문자열이나 리스트와 같은 순차형 객체에서 일부를 잘라 반환하는 기능이다.
형식
- 객체명[초기위치:최종위치] # 초기부터 최종위치 -1 까지 +1
- 객체명[초기위치:최종위치:증가값] # 초기위치에서 최종위치-1까지 +증가값
생략
- 객체명[:] 또는 객체명[::] # 전부
- 객체명[초기위치:] # 초기 위치부터 끝까지
- 객체명[:최종위치] # 처음부터 최종위치까지
- 객체명[::증가값] # 처음부터 끝까지 +증가값
- Range: 연속된 숫자를 생성하는 것으로 리스트나 반복문에서 많이 사용된다.
range(최종값) # 0~(최종값-1)
range(초기값, 최종값) # 초기값~(최종값-1)
range(초기값, 최종값, 증가값) #초기값 ~ (최종값-1)까지 +증가값
- 람다식: 어떤 문제를 해결하기 위한 과정을 수학식으로 표현한 것, 프로그래밍 언어에서 람다식은 수학적 연산을 수행하는 함수나 메서드를 간소화할 때 사용한다.
lambda 변수명 : 수학식
Python 데이터 타입
- 복소수(Complex) 타입: 복소수 형태의 값을 저장하기 위한 자료형
- 리스트(List) 타입: 여러 요소를 저장하는 자료형으로 대괄호[]를 이용하여 각 요소에 접근함
- 사전(Dict) 타입: 키(Key)와 값(Value)의 쌍으로 연겨로딘 요솔들로 이루어진 자료형
- 튜플(Tuple) 타입: 시퀀스(Sequence) 데이터 타입에 해당하며 다양한 데이터 타입들을 주어진 순서에 따라 저장할 수 있으나 저장된 내용을 변경할 수 없는 자료형
순차 파일: 레코드들이 순차적으로 처리되므로 대화식 처리보다 일괄 처리에 적합하다. 연속석적인 레코드이 저장에 의해 레코드 사이에 빈 공간이 존재하지 않으므로 기억 장치의 효율적인 이용이 가능하다. 매체 변환이 쉬워 어떠한 매체에도 적용할 수 있다. 필요한 레코드를 삽입, 삭제, 수정하는 경우 파일을 재구성해야 하므로 파일 전체를 복사해야 한다. SASD(Sequential Access Storage Device)를 사용하여 원하는 레코드에 접근하기 위해 처음부터 순서대로 접근한다.
'정보처리기사' 카테고리의 다른 글
| [정보처리기사 요약 11-2] 운영체제 기억장치 관리 전략 및 가상기억장치 정리 (0) | 2026.03.02 |
|---|---|
| [정보처리기사 요약 11-1] 운영체제(OS)의 개념과 종류 요약(Windows부터 iOS까지) (0) | 2026.03.02 |
| [정보처리기사 요약 10-1] C언어와 Java 입출력, 제어문, 포인터, 구조체 가이드 (0) | 2026.03.02 |
| [정보처리기사 요약 9-3] 인증/인가부터 방화벽, IDS, IPS 완벽 비교 (0) | 2026.03.01 |
| [정보처리기사 요약 9-2] 암호 알고리즘부터 네트워크 침해 공격까지 (1) | 2026.03.01 |