C언어
문자열 배열과 포인터
#include
int main(){
char a[] = "Art";
char* p = NULL;
p = a;
printf("%s\n", a);
printf("%c\n", *p);
printf("%c\n", *a);
printf("%s\n", p);
for(int i = 0; a[i] != '\0'; i++)
printf("%c", a[i]);
}
포인터
#include
int main(){
char* a = "qwer";
char* b = "qwtety";
for(int i = 0; a[i] != '\0' ; i++){
for(int j = 0; b[j] != '\0'; j++){
if(a[i] == b[j]) printf("%c", a[i]);
}
}
}
이진수를 십진수로 변환
#include
int main() {
int input = 101110;
int di = 1;
int sum = 0;
while (1) {
if (input == 0) break;
else {
sum = sum + (input (a)(b)) * di;
di = di * 2;
input = input / 10;
}
}
printf("%d", sum);
return 0;
}
버블정렬코드
#include
void swap(int *a, int idx1, int idx2) {
int t= a[idx1];
a[idx1] = a[idx2];
a[( ① )] = t;
}
void Usort(int *a, int len) {
for(int i = 0; i < len - 1; i++)
for(int j = 0; j < len - 1 - i; j++)
if(a[j] > a[j+1])
swap(a,j,j+1);
}
void main(){
int a[] = {85, 75, 50, 100, 95};
int nx = 5;
Usort(a, ( ② ));
}
JAVA
STATIC의 이해
class Static{
public int a = 20;
static int b = 0;
}
public class Test{
public static void main(String[] args) {
int a = 10;
Static.b = a;
Static st = new Static();
System.out.println(Static.b++);
System.out.println(st.b);
System.out.println(a);
System.out.print(st.a);
}
}
생성자, 오버라이딩, 중복정의, 추상 클래스
abstact class Vehicle {
String name;
abstract public String getName(String val);
public String getName() {
return "Vehicle name: " + name;
}
}
class Car extends Vehicle {
public Car(String val) {
name=super.name=val;
}
public String getName(String val) {
return "Car name:" + val;
}
public String getName(byte val[]) {
return "Car name:" + val;
}
}
public class Main {
public static void main(String[] args) {
Vehicle obj = new Car("Spark");
System.out.println(obj.getName());
}
}
생성자와 상속
class Parent {
int x = 100;
Parent() {
this(500);
}
Parent(int x) {
this.x = x;
}
int getX() {
return x;
}
}
class Child extends Parent {
int x = 4000;
Child() {
this(5000);
}
Child(int x) {
this.x = x;
}
}
public class Main {
public static void main(String[] args) {
Child obj = new Child();
System.out.println(obj.getX());
}
}
Python
파이썬, 자료형, add, remove, update 메서드
a = {'한국', '중국', '일본'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update({'홍콩', '한국', '태국'})
print(a)
SQL
DELETE 문법
[학생] 테이블에서 학생 이름이 '민수'인 튜플을 삭제하는 쿼리를 작성하시오.
조건
- 컬럼의 값이 문자열일 경우 작은 따옴표 (' ')를 표시하시오.
- SQL 마지막에 세미콜론(;)은 표기하지 않아도 관계 없습니다.
SELECT 문
다음 성적 테이블에서 과목별 점수의 평균이 90점 이상인 '과목이름', '최소점수', '최대점수' 를 검색하고자 한다. [조건]을 참고하여 적합한 SQL문을 작성하시오.
[조건]
- WHERE사용하지 말아야 한다.
- SELECT절에 별칭을 사용하여 작성해야 한다.
- SQL 구문 마지막에 세미콜론(;)은 생락 가능하다.
- 반드시 GROUP BY와 HAVING 을 사용해야 한다.
- 집계 함수를 사용해야 한다.
개념
AJAX
( )은/는 비동기적인 웹 애플리케이션의 제작을 위해 JavaScript와 XML을 이용한 비동기적 정보 교환 기법이다.
( )은/는 필요한 데이터만을 웹서버에 요청해서 받은 후 클라이언트에서 데이터에 대한 처리를 할 수 있다.
보통 SOAP이나 XML 기반의 웹 서비스 프로토콜이 사용되며, 웹 서버의 응답을 처리하기 위해 클라이언트 쪽에서는 자바스크립트를 쓴다.
( )은/는 Google Map과 Google pages에서 사용한 기술에 기반하여 제작되었다.
가상회선과 데이터그램
|( )|
- 회선교환 방식과 데이터그램 방식의 장점을 결합한 통신 기술이다. - 처음 패킷으로 최적의 경로로 고정하면 고정되면 그 다음은 패킷으로 나누어 고속으로 전송할 수 있다.
- 통신기술에는 ATM이 있으며, 정해진 시간 안이나 다음의 데이터 연속으로 보낼 때 적합하다.
|( )|
- 패킷교환 방식으로 동작하면서 IP 주소를 사용하는 인터넷을 의미한다.
- 각 지점전송. 미리 정해진 경로 없이 독립적으로 처리하여 효율하는 방식이다.
- 높은 효율성이 고장 시 모든 패킷을 잃어버리는 가상회선과 달리, 그 경로를 피해 재전송할 수 있으므로 다중 신뢰가 가능하다.
- 짧은 메시지의 패킷으로 전송할 때 효과적이고 적절한 기능이 필요하다.
L2TP(VPN 연관 보안 프로토콜)
○ 2 계층(데이터링크 계층)에서 구현되는 터널링 기술 중 하나
○ L2F와 PPTP가 결합된 프로토콜로 VPN과 인터넷 서비스 제공자(ISP)가 이용
○ IPsec을 함께 사용하면 PPTP보다 훨씬 안전하지만 보안보다 익명화에 더 적합
SSH (원격 접속 및 파일 전송 프로토콜)
○ 다른 컴퓨터에 로그인, 원격 명령 실행, 파일 복사 등을 수행할 수 있도록 다양한 기능을 지원하는 프로토콜 또는 이를 이용한 응용 프로그램이다.
○ 데이터 암호화와 강력한 인증 방법으로 보안성이 낮은 네트워크에서도 안전하게 통신할 수 있다.
○ 키(Key)를 통한 인증 방법으로 사용하려면 사전에 클라이언트의 공개키를 서버에 등록해야 한다.
○기본적으로는 22번 포트를 사용한다.
악성코드 종류
|**(1)**|
- 감염된 컴퓨터 시스템에서 스스로 복제해 다른 컴퓨터로 복사본을 확산시킬 수 있는 악성 프로그램이다.
- 독자적으로 실행되며 다른 실행 프로그램이 필요하지 않으며, 파일 전송 기능을 착취하도록 설계된다.
- 자가 복제 및 네트워크를 통한 전파도 가능하다.
|**(2)**|
- 정상적인 프로그램으로 가장하여 사용자가 직접 컴퓨터에 설치하도록 위장하며, 백도어를 만들어 공격자가 침입할 수 있도록 만들거나 시스템을 파괴한다.
- 정상적인 프로그램으로 위장하여 시작부터 끝까지 램에 상주하며, 시스템 내부 정보를 저장하여 공격자에게 전달하는 프로그램이다.
- 좀비 PC처럼 내부정보 유출뿐만 아니라 컨트롤까지 가능한 종류가 있고, 단순히 내부 데이터만 유출할 수 있는 타입의 트로이 목마가 있다.
- 감염된 후엔 스스로를 복제하는 능력은 없다.
|**(3)**|
- 대상(정상파일)을 감염시키는 형태로 실행되며. 감염시킬 대상이 존재하지 않을 때에는 실행되지 않으며 다른 정상파일로의 자기 복제 기능이 있다.
- 컴퓨터 시스템에 침입해 프로그램에 기생하며 시스템을 변경하거나 사용할 수 없도록 만드는 악성코드
-
- 네트워크를 통해 전파되지 않으며 방식 및 위치에 따라 여러 형태로 나뉨
ICMP(프로토콜)
( )은/는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.
( ) 프로토콜은 보통 다른 호스트나 게이트웨이 와 연결된 네트웍에 문제가 있는지 확인하기 위한 목적으로 주로 사용된다.
( ) 을/를 이용한 공격에는 ( ) Flooding가 있는데 ping 명령어를 통한 ( ) 패킷을 연속적으로 계속 보내어 서버의 요청에 응답으로 인한 다른작업을 하지 못하도록 하는 공격이다.
proxy (디자인패턴)
( )은/는 복잡한 시스템을 개발하기 쉽도록 클래스나 객체을 조합하는 패턴에 속하며,
대리라는 이름으로도 불린다. 내부에서는 객체 간의 복잡한 관계를 단순하게 정리해 주고,
외부에서는 객체의 세부인 내용을 숨기는 역할을 한다.
릴레이션 용어
( )
릴레이션을 구성하는 각각의 행, 파일구조는 레코드
( )
데이터 개체를 구성하고 있는 속성들에 데이터 타입이 정의되어 구체적인 값을 가진 것으로, 실제 값을 가진 튜플을 의미
( )
튜플의 개수
○도메인 ○차수 ○속성 ○튜플
○디그리 ○카디널리티 ○릴레이션 스키마 ○릴레이션 인스턴스
스키마
|**(1) 스키마**|
- 사용자나 응용 프로그래머가 개념의 입장에서 필요한 데이터베이스의 논리적 구조를 정의한다.
- 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있기 때문에 서브 스키마라고도 한다.
- 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있다.
- 하나의 외부 스키마는 여러개의 응용 프로그램을 사용자 간 공유할 수 있다.
|**(2) 스키마**|
- 데이터베이스의 전체적인 논리적 구조로, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스로 하나만 존재한다.
- 개체 간의 관계(Relationship)와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의한다.
- 데이터베이스 파일에 저장되는 데이터의 형태를 나타내는 것이다.
- 기관이나 조직의 관점에서 데이터베이스를 정의한 것이다.
|**(3) 스키마**|
- 물리적 저장장치 입장에서 데이터가 저장되는 방법을 기술한 것이다.
- 실제 데이터베이스에 저장될 레코드의 물리적인 구조를 정의한다.
- 저장 데이터 항목의 표현방법, 내부 레코드의 물리적 순서, 인덱스 유무등을 나타낸다.
- 시스템 프로그래머나 시스템 설계자가 관리한다.
분기커버리지
다음 아래 제어 흐름 그래프가 분기 커버리지를 만족하기 위한 테스팅 순서를 쓰시오.
'일상 > 자기계발&자기개발' 카테고리의 다른 글
[#정보처리기사] 실기 분석 (0) | 2025.04.10 |
---|---|
[독서] 피터 드러커 자기경영노트 - 6장 (0) | 2025.04.10 |
[#정보처리기사] 23년 2회 문제 (0) | 2025.04.09 |
[#정보처리기사] 23년 3회 문제 (0) | 2025.04.09 |
[#정보처리기사] 24년 1회 문제 (0) | 2025.04.09 |