class ovr1 {
public static void main(String[] args) {
ovr1 a1 = new ovr1(); //부모가 부모를 낳은 형태 . 호출해도 오버라이드된 매서드 호출x
ovr2 a2 = new ovr2(); //내가 태어난 형태. 부모를 참조한다.
System.out.print(a1.san(3, 2) + a2.san(3, 2));
}
int san(int x, int y) {
return x + y;
}
}
class ovr2 extends ovr1 {
int san(int x, int y) {
return x - y + super.san(x, y);
}
}
a1.san(3, 2) -> 부모클래스의 return x + y 실행
a2.san(3, 2) -> 자식클래스의 return 호출 후 super에 의해 부모 호출.
<다시 풀어볼 것> -거만 x , 꼼꼼이, 출력형태.
26회 4 : Group by where (X) Where Group by(O) having (왜그해오)
18회 20 틀린건 아닌데, 한번 보기. (++1 :전위. 먼저 1 올려준다. 1++:후위.나중에 1 올린다.)
13회 20번 꼼꼼히 봐라. 3으로 나누어떨어져 나머지가 0이 되는 것은 3의 배수만 있는게 아니다! 0도!!! 있다는거.
11회 20 자세히 봐라!!! 11번
2021 기출 2회 3번: a가 계속 100으로 초기화 되는 이유는, a를 직접 변경하는 부분이 없기 때문이다. a= 이라고 재할당 하고 있지 않기 때무이다.
16번
2021기출 3회 1번,17번
2022년 기출 2회 17
<SQL>
cascade restrict까지 헷갈리냐..
cascade 무조건 삭제 restrict 봐주는거.
insert into 테이블명(...) ValueS();
create view 뷰이름 as 조회쿼리.
- 외부 조인(OUTER JOIN): 하나의 테이블에서 모든 행을 반환하고 일치하지 않는 경우 NULL 반환.
- 물리 조인: 조인 수행 방식 및 최적화 방법에 관련된 용어.(정렬병합 중첩반복 해시)
- 세타조인 : 조인하는 두 릴레이션의 속성 값을 비교 . 만족 튜플만 반환.
- 비동등 조인 : 조건이 '='가 아닌 경우 사용. A.value > B.value와 같은 비교 사용 가능.
- 이너조인(내부조인,동등 조인) : 조건이 '=' 등호로 일치하는 결과를 반환한다.(INNER)
- 자연조인 : 동등조인에 참여한 결과의 중복된 속성을 제거한 결과를 반환한다.
- 크로스 조인 : 두 테이블의 모든 조합을 반환
- 셀프조인 : 셀프 조인이란, 동일 데이블 사이의 조인
- 서브쿼리 조인: 한 쿼리 안에 포함된 서브쿼리를 사용하여 데이터를 조인하는 방식.
- 세미조인 : 자연 조인의 한쪽 테이블 속성만 반환, 기호로 리본 열려있는 쪽 속성 제거.
집합연산( UNION, INTERSECT, MINUS, UNION ALL)
일반집합연산자 카티션프로덕트 기호 -> x
순수관계연산자 디비전(나누기기호) : S의 모든 튜플과 관련있는 R의 튜플.
스케줄링 HRN의 우선순위 계산 : (대기시간 + 서비스(실행)시간) / 서비스(실행)시간 = 시스템 응답시간
<문제 끝까지 읽기>
<출력형태.>
파이썬 특히 조심 리스트로 뽑는지, 하나만 뽑는지 등등
<전위연산인지 후위연산인지>
<C언어 return을 print로 착각하지 않기!>
<검토 1번 꼭 하기!>
<답을 하나 쓰는건지 두개쓰는건지 명확히>
보기가 여러개라도 칸이 하나면 답이 하나 쓰는 것일 확률 높다
<아스키코드>
0:48
9:57
space:32
A:65
a:97
-------------------------------------
틀린건 아니지만 한번 보기
28회 20번, 35회 05번 비교.
MEC(Mobile Edge Cloud/Computing) : 무선 기지국에 분산 클라우드 컴퓨팅 기술을 적용하여 서비스와 캐싱 콘텐츠를 이용자 단말에가까이 전개함으로써 모바일 코어 망의 혼잡을 완화하는 기술.
MDE (Modification Detection Code) : 키를 사용하지 않는 변경 감지 코드로 메시지의 무결성을 보장
병행제어와 로킹 구분하기.
병행제어 : 상호작용을 제어(직렬화 기법만 있는게 아니다.)
로킹(병행제어 기법) : DB의 일관성, 무결성 유지 위해 순차적 진행을 보장 직렬화기법. 상호 배제.
프로토콜 구성요소는 구조의미타이밍이 아니고
구문의미타이밍
비대칭 키 알고리즘 정의 분명히 : 공개키는 누구나 알 수 있지만, 그에 대응하는 비밀키는 키의 소유자만이 알 수 있도록, 공개키와 비밀키를 사용하는 알고리즘..
요구사항 개발 프로세스 중
요구사항 도출 : 문제를 이해, 관련 정보를 식별/수집 방법 결정 ,요구사항을 구체적으로 표현.
소프트웨어 생명주기 모델 프로세스 중
설계 : 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정하는 단계
UI 개발 주요 기법 (3CSwot - 시사숍)
시나리오 플래닝: 불확실성이 높은 상황을 예측하여 다양한 시나리오를 설계하여 불확실성을 제거해 나가는 방법.
사용성 테스트 :사용자가 직접 제품을 사용하고 시나리오에 맞추어 과제를 수행하고 질문에 답하는 테스트.
블랙박스테스트
오류 추정 테스트 : 개발자가 범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트하는 기법.
★경험기반 테스트
오류 추정 테스트 : 개발자가범할 수 있는 실수를 추정하고 이에 따른 결함이 검출되도록 테스트 케이스를 설계하여 테스트하는 기법.
SQL 문법 순서
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
객체 지향 설계 원칙(SOLID)
인터페이스 분리의 원칙(interface): 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다는 원칙
의존성 역전의 원칙(dependency) :실제 사용 관계는 바뀌지 않음. 추상을 매개로 메시지를 주고받음. 관계를 느슨하게 만듬.
UI 화면 설계 산출물(와스프)
스토리보드, 프로토타입.
트러스트존 : arm 프로세서 탑재된 하드웨어 보안 기술 중 하나. 일반구역, 보안구역 나눔. 보안 강화 하드웨어 기반 보안 기술.
DRDOS(분산 반사 서비스 거부 공격) :
출발지 IP 주소를 공격대상 IP로 위조하여, 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부(DoS)가 되는 공격 기법.
IP 스푸핑 : 타깃 시스템의 정보를 빼내기 위해 침입자가 속여 자신의 패킷 헤더를 인증된 호스트의 ip 주소로 위조하여 타깃에 전송하는 공격기법
랜드어택 : DoS 공격 유형. 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격.
Hulk Dos (http get flooding과의 차이 명확히): 공격자가 공격 대상 웹사이트 주소(url)를 지속적으로 변경하면서 다량의 GET요청을 발생시킨다.
http get flooding : HTTP 캐시 옵션 조작(과도한 get메시지 이용) -> 캐싱 서버가 아닌 웹 서버가 직접 처리하도록 유도(서버 과부하) -> 자원소진.
회수할 때, CASCADE CONSTRAINTS ! "s" 빼지마.
소켓 : IP address 와 PORT 넘버가 합쳐진, 네트워크상에서 서버 프로그램과 클라이언트 프로그램이 데이터를 송수신하고 통신할 수도 있도록 해주는 교환 기술.
MAC : 일방향 암호 중 인증 시 키 사용
MDC : 일방향 암호 중 인증 시 키 사용 X.
고가용성 상상동 -> 동: 동시적접근(페일오버X)
물리적조인 정중해 -> 정령합병, 중첩반복, 해시
EAI 구성요소(플어브메비)
데이터베이스 특징(무일회보효)
데이터베이스 특성(실계동내) 동시공용
소프트웨어 아키텍처 비용 평가 모델 : SAAM(변경용이성, 기능성). ATAM(이해 상충관계까지 평가), CBAM(경제적 의사 결정에 대한 요구 충족 비용 평가), ADR(응집도평가), ARD(특정부분의 품질요소 평가)
NOsql : 전통적인 RDBMS와 다른 DBMS 지칭.
네가지 유형까지 알아두기.(키컬다그)
정적테스트 중
기술리뷰 : 정의된 계획 및 명세를 준수하고 있는지에 대한 검토를 수행하는 리뷰 변경 사항이 적절하게 구현되어 있는지를 평가하고, 여러 대안을 추천하거나 대안을 검토.
관리리뷰:프로젝트 진행 상황에 대한 전반적인 검토를 바탕으로 범위, 일정, 인력 등에 대한 통제 및 의사결정을 지원하는 리뷰.
배치프로그램유형 (이온정)
파밍 : 사용자가 자신의 웹 브라우저를 입력해도 가짜 웹 페이지로 접속하게 하여 개인 정보를 훔치는 공격. ex) 컴퓨터에 악성 코드 설치하게 한 뒤 은행 사이트 접속 시 자신들이 개설해 놓은 사이트로 강제로 접속하게 한 뒤 보안카드 번호를 입력 받아 돈을 빼간다.
Tripwire tcpdump
네트워크 보안 솔루션(NAC-단말기가 내부 네트워크에 접속 시도하는 것 제어 및 통제/ IDS-이벤트모니터링, 비인가 접근 탐지/ IPS-공격이나 침입 실시간 차단/ WPS-인가되지 않은 무선 단말기의 접속 탐지 차단/ UTM-보안장비 통합/ VPN/ SIEM-정보 빅데이터 보안 관제 솔루션/ ESM-이벤트 로그 통합 관리 분석 전사적 통합 보안 관리 시스템)
CPS :가상 물리 시스템.
디지털트윈 :물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델.
OLAP 연산 중 Pivoting : 차원 변경을 위해 사용되는 연산, Dicing : 고정된 다차원 값에 대한 연산.
UI 개발 주요 기법(3CSwot 시사숍) 중
시나리오 플래닝: 불확실성이 높은 상황을 예측하여 다양한 시나리오를 설계하여 불확실성을 제거해 나가는 방법.
사용성 테스트 :사용자가 직접 제품을 사용하고 시나리오에 맞추어 과제를 수행하고 질문에 답하는 테스트.
클라우드 컴퓨팅 유형(사공하)에서 공용 클라우드와 클라우드 컴퓨팅 유형(인플소)의 인프라형 서비스 헷갈리지 말기.
인프라형 서비스(IaaS) : 서버, 스토리지 같은 시스템 자원을 클라우드로 제공하는 서비스. +서버, 스토리지, 네트워크를 가상화 환경으로 만들어 필요에 따라 인프라 자원을 사용할 수 있게 제공하는 서비스 입니다.ex)AWS의 EC2, S3
공용 클라우드(public cloud) : 클라우드 서비스 제공 업체에서 다중 사용자를 위한 컴퓨팅 자원/서비스를 제공하는 클라우드
결합도 내공외제스자 내용결합도 공통결합도
소프트웨어 아키텍처 패턴 유형(계클패브모)
계층화 패턴/ 클라이언트-서버패턴(클래스 아님)/ 파이프-필터 패턴/ 브로커 패턴/ mvc 패턴.
소프트웨어 개발방법론 종류(구정 객컴 애제)
구조적 방법론/정보공학 방법론/객체지향 방법론/컴포넌트 기반 방법론/애자일 방법론/제품 계열 방법론.
럼바우 - 객동기 (객체모델링-ER다이어그램, 동적모델링-시간흐름에 따른 동적 행위, 기능모델링-자료흐름)
ITSM(it service management) SLA SLO
디스패치 : 준비 상태에 있는 프로세스 중 하나에 CPU할당하는 것.
문맥교환: 문맥 상태를 제어블록(PCB)에 저장했다 복원
이블트윈:무선 Wifi 피싱 기법. 공격자는 합법적인 Wifi 제공자처럼 행세하며 노트북이나 휴대전화로 핫스팟에 연결한 무선 사용자들의 정보를 탈취하는 무선 네트워크 공격 기법.
페이지 교체 : FIFO
비선점형 스케줄링 : FCFS
참샘휴일(일관성검사오라클)
ERM 기업 전사적 위험 관리
IAM ID PASSWD 종합관리 역할기반 사용자 계정관리.
데이터 마이닝: 데이터 속에 있는 변수 사이의 상호관계를 규명하여 일정한 패턴 찾기.
마이데이터 : 개인이 정보 주체가 되는 주체적 능동적.
SDDC(Software Defiedn Data Center): 모든 하드웨어가 가상화되어 가상 자원의 풀을 구성하고, 데이터 센터 전체를 운영하는 소프트웨어가 필요한 기능 및규모에 따라 동적으로 자원을 할당, 관리하는 역할을 수행하는 데이터센터
SDN:컨트롤 플레인(Control Plane)과 트래픽 전송을 수행하는 데이터 플레인(Data Plane)을 분리
인터페이스 감시도구 : 스카우터, 제니퍼.
빅데이터 수집 기술(빅척와 비스정 : 빅 척와 비(정형)스(쿱)정(정형))
스마트그리드: 전기 및 정보통신기술을 활용하여 전력망을 지능화, 고도화, 에너지 이용 효율을 극대화하는 전력망
시맨틱웹 : 정보와 자원 사이의 관계-의미 정보를 기계(컴퓨터)가 처리할 수 있는 온톨로지 형태로 표현하고, 이를 자동화한 컴퓨터가 처리하도록 하는 지능형 웹.
온톨로지 : 개념과 개념들의 속성, 그리고 개념 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 개념화 명세서.
단위모듈 구현 원리 : 독닉추분(정보은닉,분할과 정복,모듈독립성, 데이터 추상화)
소프트웨어 아키텍처 4+1(논배구프유)유스케이스,프로세스,배포뷰.
Slow Read Attack: Zero Wndow Packet 상태에서 다수의 HTTP 패킷 지속 전송 -> 자원소진
패스워드 크래킹 ( 무차별대입 + 사전대입 -> 패스워드 하이브리드/ 레인보우 테이블(패스워드별 해쉬값 생성))
인터페이스 구현 검증 도구(엑스피 엔셀웨)
- xUnit : 자바, C++, .Net(Nunit) 언어 지원
-STAF : 테스트 대상 분산 환경에 데몬을 사용하여
-FitNesse : 웹 기반 테스트 케이스 설계/실행/결과 확인
-NTAF: FitNesse + STAF
- Selenium : 테스트 스크립트 언어를 합습할 필요 없이 기능 만듦
- watir:루비
CEP (Complex Event Processing) ): IoT 센싱데이터, 로그, 음성 데이터 등 실시간 데이터의 처리 기술
CMMI(Capability Maturity Model Integration) : 소프트웨어 개발 능력/성숙도 평가 품질 개선 모델
CMMI 단계적 표현 모델의 성숙도 레벨 (초관 정관최)
요구사항 개발 프로세스 (도분명확)
사용자 요구사항 도출 세부 활동(페콘사유)콘셉트모델정의/사용자요구사항/UI컨셉션
요구사항 수집 주요 수집기법(더로워서 + ㄹ)
요구사항 명세 단계 주요기법(비정) 비정형 명세 기법-자연어 /비정형 명세 기법-수학적
ui 품질 요구사항.(기신사효유이)
UI 설계 원칙 (직유학유)유효성,유연성,직관성,학습성
UI 개발 주요 기법 (3CSwot - 시사숍) 시나리오 플래닝(불확실성 예측 시나리오 설계),사용성 테스트
UI 시나리오 문서 작성 요건 (완일이가 추수)
보안모델 (벨기비무)
OSI 7계층 - (아ap파pr서sess 티Trans내net다date 피phy)
병행제어 미보장 문제(갱현모연) 모순성-일관성결여문제.
API : 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
스테레오 타입 : UML의 기본적인 요소 이외의 새로운 요소를 만들어내기 위한 확장 매커니즘.
데이터베이스 무결성 (개참속사키) 개체무결성-한엔터티 내 같은 기본키 허용x, 기본키 속성 null 허용x/ 참조무결성: 외래키가 참조하는 다른 개체의 기본키 값 = 기본키 o or Null o/
WPA(Wifi Protected Access) : 물리 계층에서의 패킷 암호화 방식 > WEP
BSC(조직성과평가):재무적/고객 측면/내부 프로세스 측면/학습 및 성장 측면.
KPI : 기업 성과 달성 측정 지표
CoAP(constraint) : (M2M 노드들 사이)에서 이벤트에 대한 송수신을 (비동기적)으로 전송하는 (REST 기반)의 프로토콜. 멀티캐스트 지원과 같은 특수한 요건을 충족하면서도 부하가낮고, 단순한 특징이 있다.
XSS : 검증되지 않은 외부 웹페이지가 전송되어 열람함으로써 웹 페이지에 포함된 부적적한 스크립트가 실행되는 공격.
ipv4->ipv6 : 듀터주 듀얼스택 터널링 주소변환
블랙박스테스트기법(동경결상 유분페원비오)
동치분할-유무횻값/경계값분석/ 결정테이블-발생조건 나열 + 조합 t/ 상태 전이-전이 경우의 수/ 유스케이스-프로세스 흐름 기반 명세화 t/ 분류 트리-트리구조로 분석설계/ 원인결과그래프-그래프활용 관계에 미치는 영향 / 비교-같은 입력값 동일 결과?/오류추정-실수추정,결함 도출되게 테스트 설계 /
화이트박스테스트(구결조, 조변다, 기제데루)
구문-모든명령문한번은 수행/결정-전체 조건식 한번은 TF/조건-개별조건식 한번은 TF/조건결정-전체+개별 한번은 TF/변경조건결정-다른 개별조건식 영향 받지 않고 전체 조건식 독립정 영향 주므로써 조건결정커버리지 향상/다중조건-모든개별조건 조합 100%보장.
DB설계 절차(요개논물구) : 요구사항 분석-요구사항명세서작성/개념적설계-ER다이어그램/논리적설계-트랜잭션인터페이스설계/물리적설계-성능고려 저장구조 변환 과정, 명세테이블정의서/구현-SQL통해 DB생성.
요구사항분류: 기능적 -기능적요구/비기능적-비기능적요구.
테스트종류(단통시인알베회)통합- 인터페이스 간 시스템 정상 작동 검증/시스템-통합된 단위 시스템의 기능 정상 수행 검증/인수-요구사항만족여부/알바-개발자환경 개발자 함/베타-실제 사용자 환경 개발자 없이 피드백/회귀-오류 수정 삭제로 인한 변화 반복 테스트.
IPD(Inter Process Communication; 소세메공): 프로세스간 통신 기술 /// 소켓/세마포/메시지큐/공유메모리.
관계데이터모델구성요소(릴레 튜속카디차 스인) : 스키마-데이터베이스 구조 제약조건 기본구조/ 인스턴스-정의된 스키마에 의해 생성된테이블의 데이터 집합
데이터모델구성요소(구연제):연산/구조/제약조건
접근통제 유형 (임강역) : 임의-사용자or그룹의 신분(식별자)에 따라/강제-정보 허용 등급 기준/역할기반.
세션 하이재킹 : 세션 관리 취약점을 이용한 공격
UX: 사람의 감정/경험
UI: 사용자 인터페이스.
소프트웨어 아키텍처 패턴 유형 (계클파브모)
디자인 패턴 생구행 명확히!!!!!!!!!!!!!!!!!!!!!!!
행위-반복적 객체 상호작용 패턴화. 알고리즘이나 클래스 관련.
응집도:통신적-동일한 입력 출력을 사용하여 다른 기능을 수행하는 활동/순차적-모듈 내 한 활동에서 나온 출력 값을 다른 활동이 사용.
3A : accounting(계정관리), authorization(권한부여), authentification(인증)
네트워크계층 -단말간 전송 최적화 경로 제공
데이터링크계층 -오류수정, 직접 연결 두 노드 사이 데이터 전송.
전송계층 -신뢰성 있는 통신.
데이터 암호화 전송 기술.: IPSec, SSL/TLS (보안소켓계층) S-HTTP :웹상에서 네트워크 트래픽을 암호화하는 주요 방법
전송계층(혼잡,흐름,오류)
데이터링크계층 기법 (회선, 흐름, 오류)
TCP 핸드셰이킹 : 전송계층에서 신뢰성 있는 세그먼트 전송보장을 의해 TCP Flags 기반 동작
Go-Back-N ARQ는 sliding window 기반의 에러 제어 방식 중 하나
TCP 흐름제어
정지-대기: 손실된 프레임 1개를 전송, 응답 기다림. 한번에 프레임 1개만 전송할 수 있음.
슬라이딩 윈도우 : 윈도우 크기를 동적으로 조절하며, 네트워크의 혼잡 상황에 따라 윈도우 크기를 조절
원거리 통신망 연결 기술(전용회선패킷) 전용-계약체결자끼리. /회선-물리적 전용선,전달 경로 /
패킷교환방식 종류
- 가상회선 : 연결형
- 데이터그램 : 비연결
다중화기 종류: (시주코)TDM/FDM/CDM
광전송 기술 : -WDM(Wavelength Division Multiplexing) -파장 다른 광신호 동시 이용. 광섬유를 다중화. 간섭x. -DWDM(Dense Wavelength Division Multiplexing ) : 파장 대역이 조밀한 광전송 기술.
암호화 알고리즘(대비해)
대칭키 : DES,SEED,AES,ARIA,IDEA,선형 피드백 시프트 레지스터(LFSR) : 스트림 암호화
비대칭키:
해시 암호화 알고리즘: MD5(128), SHA-1(160), SHA-256/384/512(256), HAS-160 (MD5+ SHA-1)
QKD(Quantum Key Distribution; 양자 암호 키 분배)
배치프로그램(이온정)
CPS(CYBER-PHYSICAL SYSTEM) : 가상 물리 시스템
디지털 트윈 : 물리적인 사물과 컴퓨터에 동일하게 표현되는 가상 모델. 자산 운용 효율성 증대.
가상화 백업 : 하이퍼바이저가 관리하는 가상 서버의 상태를 '이미지 파일'로 백업
VTL( VTL: 가상의 테이프 라이브러리 )
하이퍼바이저: HW와 OS사이의 SW 가상화 플랫폼
도커 : 하이퍼바이저 없이 리눅스 컨테이너 기술을 바탕으로 가상화 솔루션
쿠버네티스 : 리눅스재단, 컨테이너화 된 애플리케이션의 자동 배포
데이터베이스 파일 접근 방법 구조(인순해)
순차-물리적순서=논리적순서
인덱스-<키값-주소>
해싱
하둡 (Hadoop) : 구글, 야후에 적용한 기술. 대량의 데이터를 저장하고 처리하기 위해 설계된 오픈소스 자바 소프트웨어 프레임워크.
하둡 분산 파일 시스템(HDFS; Hadoop Distributed File System) : 데이터를 분산 저장 파일 시스템
맵리듀스 (MapReduce) : 대량의 데이터 병렬로 처리 프로그래밍 모델
일정관리 모델: CPM (주 공정법)-제약사항배제/ PERT/ CCPM(주 연쇄 공정법)-자원제약사항고려
ITSM(IT Service Management) : 고객 중심의 it 서비스 관리 기법.
SLA(Service Level Agreement) : 서비스 수준 계약 관리.
소프트웨어 생명주기 모델 프로세스(요설구테유 분설구테유 ) 설계: 기능 수행 방법을 논리적으로 결정
요구사항 분석에 사용되는 기법(소자요)
테스트 레벨 종류 : 단통시인 알베회 : 회귀테스트(오류 반복 테스트)
단위모듈 구형 방법 (독닉추분)
소프트웨어 생명주기 모델 종류(폭프나반)반복적 개발
소프트웨어 개발방법론 종류(구정 객컴 애제) 구조적- 나씨슈나이더만/정보공학/
XP의 12가지 기본원리 : 공동 코드 소유- 누구든지 언제라도 수정 가능/ 메타포어(Metaphor): 공통적인 이름 체계로 고객과 개발자 간의 의사소통을 원활히 /테스트 기반 개발(TDD; Test Driven Develop):(선테 후코)/ 리팩토링(Refactoring): 프로그램의 기능을 바꾸지 않으면서 시스템 재구성
스크럼(Scrum): backlog를 바탕으로, 스프린트,번다운차트.
린(LEAN) :도요타
소프트웨어 개발 보안 용어(자위취위)
소프트웨어 개발 보안의 3대 요소 (기무가)
UML 구조적 다이어그램(클객컴배복패)
UML 행위적 다이어그램(유시활타상) 시퀀스다이어그램(메실생객)-객체간 메시지 전달/활동다이어그램- 흐름을 순서대로 표현/타이밍 다이어그램 -시간에 따른 객체의 상태 변화를 표현/ 상태 다이어그램: 객체의 상태 변화와 전이를 나타냄
GUI유형(CLI,GUI,NUI,OUI)
GUI-그래픽 기반, 전자펜, 마우스
CLI- 정적 텍스트 기반, 명령어(Command)
NUI-직관적 반응,신체부위,터치,음성(Natural)
OUI-유기적상호작용기반,현실 모든 사물.
RR : time slice를 기반으로 스케줄링한다.(시간 내 처리 못하면 큐 제일 끝으로 감.)
반환시간 = 실행시간 + 대기시간 - 도착시간(반=실+대-도)
평균 반환시간 = 총 실행시간 다 더하기(P1~P4) + 대기시간(P1~P4) / 프로세스 개수(4)
P4 총 실행시간 = P4 종료시점 앞부분 P1,P2,P3실행시간 다 더해준 뒤 - 도착시간.
선점 !SRT(남은 처리 시간) : 가장 짧은 시간 소요되는 프로세스 먼저 수행, 남은 처리 시간이 더 짧다고 판단되는 프로세스가 준비 큐에 생기면 언제라도 프로세스가 선점되는 스케줄링 알고리즘.
비선점 ! -SJF(Shortest Job First) :프로세스가 도착하는 시점에 따라 그 당시 가장 작은 서비스 시간을 갖는 프로세스가 종료시까지 자원을 점유하는 스케줄링 알고리즘. 기아현상 발생가능성 있음.
RAID0:스트라이핑
RAID1:미러링.
RAID2:ECC(오류정정부호),비트레벨스트라이핑,해밍코드패리티.
RAID3:드라이브고장허용
RAID4:
RAID5:패리티배분스트라이핑.-모든디스크 나눠저장.
RAID6:패리티배분스트라이핑-두번분산저장
a.remove(값)
list.insert(idx, 원소) <--list[idx] 위치에 원소를 넣겠다.
list.index(값)
시프트연산자.
29 << 2
29 = 11101 (2진수)
1110100 (왼쪽으로 두 비트 이동)
->116
마이너스 시프트연산자(2진수-> 0,1교환-> +1 ->시프트-> -1 ->0,1교환->10진수화)
-13 >> 2
13 2진수화 :00001101
1의 보수(0,1교환) : 11110010
2의 보수(+1) : 11110011
>>2 : 11111100
2의 보수(-1) : 11111011
1의 보수(0,1교환) : 00000100
--> 결과 : -4
-13 << 2
13 2진수화 :00001101
1의 보수(0,1교환) : 11110010
2의 보수(+1) : 11110011
<<2 : 11001100
2의 보수(-1) : 11001011
1의 보수(0,1교환) : 00110100
--> 결과 : -52
매개변수 String name = "hello" 가 부모 클래스에 정의되어 있고, 자식클래스엔 없다면,,, 자식클래스에서 System.out.print(this.name) 하면 부모클래스에 있는 매개변수를 참조하게 된다. 그 역은 성립 안됨.
// 부모 클래스 P public class P { String name = "Parent"; public P(){ System.out.print(this.name); } } // 자식 클래스 C public class C extends P { // P 클래스를 상속받음 // 생성자 public C(String name) { System.out.print(name); // this를 지움 } } // 실행 클래스 public class Soojebi { public static void main(String[] args){ C c = new C("Soojebi"); } } // 결과는 ParentSoojebi |
// 부모 클래스 P public class P { String name = "Parent"; public P(){ System.out.print(name); } } // 자식 클래스 C public class C extends P { // P 클래스를 상속받음 // 생성자 public C(String name) { System.out.print(this.name); } } // 실행 클래스 public class Soojebi { public static void main(String[] args){ C c = new C("Soojebi"); } } // 결과는 ParentParent |
// 부모 클래스 P
public class P {
String name = "Parent";
public P(){
Systehttp://m.out.print(name);
}
}
// 자식 클래스 C
// 자식 클래스 C
public class C extends P {
String name; // C 클래스의 name 변수 추가
// 생성자
public C(String name) {
super(); // 부모 클래스의 생성자 호출
this.name = name; // 매개변수를 클래스의 필드에 저장
System.out.print(this.name); // 자식 클래스의 name 출력
}
}
// 실행 클래스
public class Soojebi {
public static void main(String[] args){
C c = new C("Soojebi");
}
} // 결과는 ParentSoojebi
11회 11번
// modell:SUV, year: 2020 //생성자 호출 후에는 yyyy가 2021로 증가하지만, Car 객체의 yyyy는 이미 2020으로 고정된 상태 class Car { String model; String color; int yyyy; // 기본 생성자 Car() { this.model = "승용차"; this.color = "검정"; this.yyyy = 2020; System.out.print("model: " + model); } // 매개변수가 있는 생성자 Car(String model, String color, int yyyy) { this.model = model; // this는 현재 객체의 model 가리킴 this.color = color; // this는 현재 객체의 color을 가리킴 this.yyyy = yyyy; // 여기서 yyyy를 올바르게 할당 2020 System.out.print("modell: " + model); } } public class Soojebi { public static void main(String args[]) { int yyyy = 2020; // int yyyy는 2021로 업데이트 Car c = new Car("SUV", "흰색", yyyy++); // 후위 증가 연산자 사용 // 이 시점에서는 2020이 전달됨 System.out.print(", year: " + c.yyyy); // 출력 확인 } // c.yyyy는 생성자에서 받은 2020을 출력 } |
// modell:SUV, year: 2021 //생성자 호출 후에는 yyyy가 2021로 증가하였고, Car 객체의 yyyy도 전위연산에 의해 2021로 바 상태 class Car { String model; String color; int yyyy; // 기본 생성자 Car() { this.model = "승용차"; this.color = "검정"; this.yyyy = 2020; System.out.print("model: " + model); } // 매개변수가 있는 생성자 Car(String model, String color, int yyyy) { this.model = model; this.color = color; this.yyyy = yyyy; // 여기서 yyyy를 올바르게 할당 2021 System.out.print("modell: " + model); } } public class Soojebi { public static void main(String args[]) { int yyyy = 2020; //int yyyy는 2021로 업데이트 Car c = new Car("SUV", "흰색", ++yyyy); // 전위 증가 연산자 사용 // 이 시점에서는 2021이 전달됨 System.out.print(", year: " + c.yyyy); // 출력 확인 } // c.yyyy는 생성자에서 받은 2021을 출력 } |
//modell: SUV, year: 2020, updated year: 2021 class Car { String model; String color; int yyyy; // 매개변수가 있는 생성자 Car(String model, String color, int yyyy) { this.model = model; this.color = color; this.yyyy = yyyy; // 생성자 내부의 yyyy는 2020 Systehttp://m.out.print("modell: " + model); // 모델 출력 } } public class Soojebi { public static void main(String args[]) { int yyyy = 2020; // yyyy 값은 2020 Car c = new Car("SUV", "흰색", yyyy++); // 후위 증가 연산자 사용 -> c.yyyy에는 2020이 전달 Systehttp://m.out.print(", year: " + c.yyyy); // c.yyyy는 2020 Systehttp://m.out.print(", updated year: " + yyyy); // yyyy는 2021로 증가된 값 } } |
// modell: SUV, year: 2021 class Car { String model; String color; int yyyy; // 매개변수가 있는 생성자 Car(String model, String color, int yyyy) { this.model = model; this.color = color; this.yyyy = yyyy; // 생성자 내부의 yyyy는 2020 Systehttp://m.out.print("modell: " + model); // 모델 출력 } } public class Soojebi { public static void main(String args[]) { int yyyy = 2020; // yyyy 값은 2020 Car c = new Car("SUV", "흰색", yyyy++); // 후위 증가 연산자 사용 -> c.yyyy에는 2020이 전달 Systehttp://m.out.print(", year: " + yyyy); // c.yyyy는 2020, yyyy는 2021
|
public class Main {
public static void main(String[] args) {
int[][] arr = new int[][]{{4, 5, 6}, {7}};
// 두 번째 행의 내용을 출력
System.out.println(Arrays.toString(arr[0])); // 출력[4,5,6]
}
}
#include <stdio.h>
struct Soojebi {
char name[20];
int age;
int height;
int weight;
char greeting[20];
};
int main() {
// 배열 s[]를 두 개의 요소로 선언
struct Soojebi s[] = {{"하이", 28, 30, 40, "헬로"}, {"안녕", 25, 170, 60, "굿바이"}};
struct Soojebi *p;
p = s; // 첫 번째 구조체 요소를 가리킴
printf("Name: %s, Age: %d\n", p->name, p->age);
p++; // 두 번째 구조체 요소로 이동
printf("Name: %s, Age: %d\n", p->name, p->age);
return 0;
}
f-string
- name = "STR" result = f"R {name}"
- name = "STR" result = "R {}".format(name)
- name = "STR" result = "R %s" % name
print(result) # 출력: R STR
class Parent { int a; // 부모 클래스의 a 필드 public Parent(int a) { this.a = a; // 부모 클래스의 a 필드 초기화 } } class Child extends Parent { int a; // 자식 클래스의 a 필드 public Child(int a) { super(a); // 부모 클래스의 생성자 호출 this.a = a; // 자식 클래스의 a 필드 초기화 } public void printValues() { System.out.println("Parent a: " + super.a); // 부모 클래스의 a 필드 출력 System.out.println("Child a: " + this.a); // 자식 클래스의 a 필드 출력 } } public class Main { public static void main(String[] args) { Child obj = new Child(3); // Child 객체 생성 obj.a = 5; // 자식 클래스의 a 필드에 5 할당 // 값 출력 obj.printValues(); // Parent a: 3, Child a: 5 } } |
class Parent { int a; // 부모 클래스의 a 필드 public Parent(int a) { this.a = a; // 부모 클래스의 a 필드 초기화 } // Parent 클래스에 printValues() 메서드를 추가 public void printValues() { System.out.println("Parent a: " + this.a); // 부모 클래스의 a 필드 출력 } } class Child extends Parent { int a; // 자식 클래스의 a 필드 public Child(int a) { super(a); // 부모 클래스의 생성자 호출 this.a = a; // 자식 클래스의 a 필드 초기화 } @Override public void printValues() { super.printValues(); // 부모 클래스의 printValues() 호출 System.out.println("Child a: " + this.a); // 자식 클래스의 a 필드 출력 } } public class Main { public static void main(String[] args) { Parent obj = new Child(3); // Child 객체 생성 obj.a = 5; // 부모 클래스의 a 필드에 5 할당 // 값 출력 obj.printValues(); // Parent a: 5, Child a: 3 } } |
//재귀함수 stack 출력위치 잘보라.
class Main {
public static void main(String[] args) {
String str = "abacabcd";
boolean[] seen = new boolean[256];
System.out.print(calculFn(str, str.length()-1, seen));
}
public static String calculFn(String str, int index, boolean[] seen) {
if(index < 0) return ""; // 기저 사례
char c = str.charAt(index);
// 문자 c가 처음 등장하는 경우
if(!seen[c]) {
seen[c] = true; // 문자를 본 것으로 표시
return calculFn(str, index-1, seen) + c; // 뒤에 c를 추가해줌 ->순방향출력abcd
return c + calculFn(str, index-1, seen); //앞에 c를 추가해줌 -> 역순출력dcba
}
// 이미 본 문자라면, 다음 문자에 대해 재귀 호출
return calculFn(str, index-1, seen);
}
}
call by value 조심.
값을 바꾸고 싶으면, 호출할 때 주소값을 전달해줘야한다는 점.
#include <stdio.h> void swap(int a, int b) { int t = a; a = b; b = t; } int main() { int a = 11; int b = 19; swap(a, b); // swap 함수 호출 switch(a) { case 1: b += 1; case 11: b += 2; default: b += 3; break; } printf("%d", a-b); //-13 } |
#include <stdio.h> void swap(int *a, int *b) { int t = *a; // *a는 a의 값을 의미 *a = *b; // b의 값을 a에 할당 *b = t; // t(원래 a의 값)를 b에 할당 } int main() { int a = 11; int b = 19; swap(&a, &b); // swap 함수 호출 - 주소값을 전달 switch(a) { case 1: b += 1; break; case 11: b += 2; break; default: b += 3; break; } printf("%d", a - b); // 결과 출력 5 return 0; } |
//하이딩
//특징 static이 들어가 있다.
//static이 있을 땐 같은 이름의 매서드여도 오버라이딩이 아니라 하이딩! 이고,
//func1()을 각각 가지고 있는 형태가 된다.
class P{
public static void func1(){System.out.printIn("A");}
}
class C extends P{
public static void func1(){System.out.printIn("C");}
}
P p1 = new C(); //아버지가 날 낳은 형태.
p1.func1(); //static이 있으므로(하이딩 형태기 때문에) 부모가 가진것 출력한다. //A출력
//static없었으면(오버라이딩이면) C출력했을 것
C p2 = new C(); //내가 나를 낳은 형태
p2.func1(); //자식이 가진 func1()인 C를 출력하게 된다.
'자격증 > 정보처리기사' 카테고리의 다른 글
반정규화 vs 정규화 차이 방법 비교 예시 (0) | 2025.02.12 |
---|---|
[정처기] 정보처리기사 실기 독학 한 달 합격 후기 (0) | 2025.02.10 |
[C언어]scanf , 생성자 (0) | 2024.10.16 |
[서브넷마스크 계산] FLSM vs VLSM 차이 (0) | 2024.10.15 |
[서브넷 마스크] IPv4 범위 클래스 계산 이유 (0) | 2024.10.15 |