정보처리기사 실기 2023 비밀 요약 노트입니다.

목차

01. 요구사항 확인
  1. 소프트웨어 개발방법론
  2. 현행 시스템 분석
  3. 요구사항 확인
02. 화면 설계
  1. UI 요구사항 확인
  2. UI 설계
03. 데이터 입출력 구현
  1. 논리 데이터 저장소 확인
  2. 물리 데이터 저장소 설계
  3. 데이터베이스 기초 활용하기
04. 통합 구현
  1. 연계 데이터 구성
  2. 연계 메커니즘 구성
  3. 내외부 연계 모듈 구현
05. 인터페이스 구현
  1. 인터페이스 설계 확인
  2. 인터페이스 기능 구현
  3. 인터페이스 구현 검증
06. 프로그래밍 언어 활용
  1. 프로그래밍 기본
07. SQL 활용
  1. 데이터베이스 기본
  2. 응용 SQL 작성하기
  3. 절차형 SQL 활용하기
  4. 데이터 조작 프로시저 최적화
08. 서버 프로그램 구현
  1. 개발환경 구축
  2. 공통 모듈 구현
  3. 배치 프로그램 구현
  4. 객체지향 설계
09. 소프트웨어 개발 보안 구축
  1. 소프트웨어 개발 보안 설계
  2. 소프트웨어 개발 보안 구현
10. 애플리케이션 테스트 관리
  1. 애플리케이션 테스트 케이스 설계
  2. 애플리케이션 통합 테스트
  3. 애플리케이션 성능 개선
11. 응용 SW 기초 기술 활용
  1. 운영체제의 특징
  2. 네트워크 기초 활용하기
  3. 기본 개발환경 구축하기
12. 제품 소프트웨어 패키징
  1. 제품 소프트웨어 패키징하기
  2. 제품 소프트웨어 매뉴얼 작성 및 버전 등록
13. 신유형 용어 정리

 

"절대 기존 시중 수험서로만은 안됩니다!"

본 전자책은 정보처리기사의 최신 경향을 반영한 요약노트입니다.
아래 미리보기 처럼 용어와 설명을 따로 두어, 효율적으로 학습할 수 있습니다.

정보처리기사 시험은 2020년에 대폭 개정되었으며, 기존 실기 문제들은 실무 위주로 변경되었습니다. 또한, 기출문제를 많이 풀어보면 합격했던 이전과 달리 개념을 묻는 문제가 많이 나오며 이미 한번 출제된 문제는 나오지 않는 경향을 보입니다.

 

따라서 기출문제를 푸는 것도 중요하겠지만, 맹신하지말고 출제 트렌드를 알아보는 정도로만 가볍게 푸는 것이 좋고, 스스로 개념을 정리하여 체화시키는 것이 중요합니다.

예전처럼 기출문제만 달달 외우고 끝이 아니라 개념정리를 반드시 하셔야 합니다.

따라서 기출문제를 맹신하지말고 스스로 개념을 정리하여 체화시키는 것이 중요하며

본 수험서는 신유형에 맞춰 넣을 것은 넣고, 뺄것은 빼는 등 과감히 개념 요약을 단행하였습니다.

 

그리고 기존 정보처리기사 수험서와는 달리 개념이 나열된 것이 아니라, 용어가 설명 뒷부분에 있기 때문에 수험자 스스로 빈칸을 채워나가면서 효율적으로 공부할 수 있게 하였습니다.

 

 

* 비밀 요약노트 활용 방법

- 수험자가 개념을 아는지 확실히 체크할 수 있도록 용어는 바로 적지 않고 아래 적어 두었습니다.

- 답을 보지 않고 용어가 바로 떠오를 수 있을 정도로 반복 공부하시고, 다 안다 싶은 개념만 공란 에 적어 놓으시면 됩니다.

- 중요한 개념은 별표로 표시하였으므로 확실히 알아두어야 합니다.

 

본 정보처리기사 실기 요약집은 PDF 102페이지로 구성하였으며 구매를 원할 시 입금 후 아래 주소로 메일을 주시면 PDF 파일을 워터마크와 함께 전송해 드립니다.

 

현재 시중에 19500원에 판매되고 있으며, 직접 연락 시 18,000원에 드립니다.

입금하실 계좌번호: 우리은행 1002-546-920918 정**

도서 가격: 19,500원 -> 18,000원

연락 주실 곳

  카카오 오픈채팅방 : https://open.kakao.com/o/sJxCUJbf

  이메일 : koc88342@gmail.com


도서명 : 2주 만에 끝내는 정보처리기사 실기 2023 비밀 요약 노트

페이지 수 : 102p

등록일 : 2023-03-25

 

 

 

 

 

write set 인 wfds를 출력으로하는 select 문 예제

#include <stdio.h>
#include <unistd.h>
#include <sys/time.h>
#include <sys/select.h>

#define BUF_SIZE 30

int main(int argc, char *argv[])
{
	fd_set reads, temps, wset; //fd선언
	int result, str_len;
	char buf[BUF_SIZE];
	struct timeval timeout;

	FD_ZERO(&wset); // fd배열을모두 0값으로 초기화
	//FD_SET(0, &reads); // 0 is standard input(console)
  FD_SET(1, &wset);

  
	/*
	timeout.tv_sec=5;
	timeout.tv_usec=5000;
	*/

	while(1)
	{
		temps=wset;
		timeout.tv_sec=5;
		timeout.tv_usec=0;
    //printf("select 직전 \n");
		result=select(9, 0, &wset, 0, &timeout);
		if(result==-1)
		{
			puts("select() error!");
			break;
		}
		else if(result==0)
		{
			puts("Time-out!");
		}
		else 
		{
			if(FD_ISSET(1, &wset)) 
			{
				//str_len=read(0, buf, BUF_SIZE);
				//buf[str_len]=0;
				//printf("message from console:");
        sleep(5);
			}
		}
    printf("끝\n");
	}
  //printf("끝\n");
	return 0;
}

구조체안의 멤버를 처리 해본다.

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

struct tagAddress
{
	char name[6];		// 이름
	char phone[20];		// 전화
	char address[72+1];	// 주소
	char detail[200];	// 디테일
};

void main(void)
{
	struct tagAddress ad1; //일반 구조체변수 선언
	struct tagAddress* pad1; //포인터 구조체변수 선언
	//포인터 구조체를 선언하면 일반 구조체변수를 포인터 구조체에 저장 해야한다.
	pad1 = &ad1;

	struct tagAddress ad2; //일반 구조체변수 선언
	struct tagAddress* pad2; //포인터 구조체변수 선언
	//포인터 구조체를 선언하면 일반 구조체변수를 포인터 구조체에 저장 해야한다.
	pad2 = &ad2;

	struct tagAddress ad3; //일반 구조체변수 선언
	struct tagAddress* pad3; //포인터 구조체변수 선언
	//포인터 구조체를 선언하면 일반 구조체변수를 포인터 구조체에 저장 해야한다.
	pad3 = &ad3;

	//구조체에 각각 값넣기
	strcpy(ad1.name, "name1");
	strcpy(ad1.phone, "phoneNumber1");
	strcpy(ad1.address, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa72");

	strcpy(ad2.name, "name2");
	strcpy(ad2.phone, "phoneNumber2");
	strcpy(ad2.address, "abcdefghijklmbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb22");

	strcpy(ad3.name, "name3");
	strcpy(ad3.phone, "phoneNumber3");
	strcpy(ad3.address, "abcdefghijklmcccccccccccccccccccccccccccccccccccccccc33");
	strcpy(ad3.detail, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa72_sssdddsd__");

	printf("이름1 : %s \n", ad1.name);
	printf("전화1 : %s \n", ad1.phone);
	printf("주소1 : %s \n\n", ad1.address);

	printf("이름2 : %s \n", ad2.name);
	printf("전화2 : %s \n", ad2.phone);
	printf("주소2 : %s \n", ad2.address);

	printf("이름3 : %s \n", ad3.name);
	printf("전화3 : %s \n", ad3.phone);
	printf("주소3 : %s \n\n", ad3.address);
	printf("디테일3 : %s \n", ad3.detail);

	//2구조체의 이름을 1에 복사
	//(*pad1).name = &pad2 -> name;
	
	//첫번째 네임의 1열부분에 두번째 네임 복사.
	//memcpy(&ad1.name[1], pad2->name, sizeof(ad1.name)-1);

	//100열에 해당하는 어드레스를 5열 네임에 해당하는 5바이트로 짤라서 네임에 저장
	//memcpy(ad1.name, ad2.address, sizeof(ad1.name)-1);  //스트링의 마지막은 0이어야 하므로 마지막 0을 제외한것을 잘라줘야함
	//memcpy(pad1->name, pad2->address, sizeof(ad1.name) - 1);
	
	//strncpy(ad1.name, ad2.address, sizeof(ad1.name)-1); //배열 마지막에 0이 들어가야하므로 -1

	//아드레스2의 5열부터 복사해서 디테일3에 저장. 즉 아드레스2열의 0~4열까진 버림 // +1은 1부터시작이고 [1]는 0부터시작임 즉 +156은 앞에 156자리수를 버리고 157부터 처리
	//memcpy(pad3->detail, pad2->address+5, sizeof(ad2.address));

	/********중요*************/
	// 헤더와 전문이 같이 있는 디테일3을 앞에 72자리를 자른 뒤73바이트 길이를 가진 아드레스1에 넣는다.
	//memcpy(pad1->address+0, pad3->detail + 72, sizeof(ad1.address)); //+로 쓰는 문장
	//memcpy(pad1->address, &ad3.detail[72], sizeof(ad1.address)); //배열로 쓰는 문장
	//memcpy(ad1.address, &ad3.detail[72], sizeof(ad1.address)); //0번배열부터 쓴다면 [0]은 생략해도 된다
	//memcpy(&ad1.address, &ad3.detail+72, sizeof(ad1.address)); 
	
	//포인터 꺽쇠는 가르키는 것이라 +로만 써야한다. 배열로 쓰려면


	//printf("사이즈 sizeof(ad1.name) : %d \n", sizeof(ad1.name));
	printf("\n======포인터 구조체 적용====\n\n");


	printf("이름1 : %s \n", ad1.name);
	printf("전화1 : %s \n", ad1.phone);
	printf("주소1 : %s \n", ad1.address);

	printf("이름2 : %s \n", ad2.name);
	printf("전화2 : %s \n", ad2.phone);
	printf("주소2 : %s \n", ad2.address);

	printf("이름3 : %s \n", ad3.name);
	printf("전화3 : %s \n", ad3.phone);
	printf("주소3 : %s \n\n", ad3.address);
	printf("디테일3 : %s \n", ad3.detail);

	//값 입력
	//strcpy((*pad1).name, "홍길2");
	//strcpy((*pad1).phone, "02-1234-5672");
	//strcpy((*pad1).address, "서울시 양천구 목동아파트 2단지");

	//printf("이름 : %s \n", pad->name);
	//printf("전화 : %s \n", pad->phone);
	//printf("주소 : %s \n", pad->address);
}

 

 

'C언어' 카테고리의 다른 글

select 함수  (0) 2023.03.10
4. 구조체를 함수에서 사용하기  (0) 2022.08.15
3. 구조체 포인터  (0) 2022.08.15
2. 문자포인터와 정수 포인터  (0) 2022.08.15
1. C언어 콘솔 찍기  (0) 2022.05.31

+ Recent posts