void main{ field {{0,1,0,1},{0,0,0,1},{1,1,1,0},{0,1,1,1}}; mines {{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}}; int w = 4, h = 4; for(y=0; y<h; y++) { for(x=0; x<w; x++) { if(field[y][x] == 0) continue; for(i=y-1; i<=y+1; i++) { for(j=x-1; j<=x+1; j++) { if(calculate(w,h,j,i) == 1) { mines[i][j] += 1; } } } } } for(y=0; y<h; y++){ for(x=0; x<w; x++) printf("%d", mines[y][x]); printf("\n"); } } int calculate(w,h,j,i) { if (i >= 0 && i < h && j >= 0 && j < w) return 1; return 0; }
지뢰찾기문제임
지뢰지도
{0,1,0,1}
{0,0,0,1}
{1,1,1,0}
{0,1,1,1}
생성될지도
1 1 3 2
3 4 5 3
3 5 6 3
2 5 5 3


합집합 : U
차집합 : -
카디션 프로덕트 : 나비넥타이
프로젝트 : 파이
조인 : 시그마

카티션 프로덕트는 나비넥타이가아니고 X임
조인은 시그마가아니고 나비넥타이임

풀이 : 기능을 변경없이 확장하는것으로보아 구조 패턴임 , 기존시스템 변경없이 추가하는것으로보아 데코레이터패턴 혹은 브리지 패턴임 , 보기에 브리지 패턴이 써있으므로 정답 : bridge 아닐까??
풀이 : 이것또한 구조 패턴일 것임 , 옵저버 패턴에 관한 이야기임

✅ 해설 2: Observer 패턴
🔍 핵심 개념
한 객체의 상태 변화가 의존 객체들에게 자동으로 전달되도록 하는 행위 패턴
void main{ int []result = int[5]; int []arr = [77,32,10,99,50]; for(int i = 0; i < 5; i++) { result[i] = 1; for(int j = 0; j < 5; j++) { if(arr[i] <arr[j]) result[i]++; } } for(int k = 0; k < 5; k++) { printf(result[k]); } }
예상 정답 : [ 2, 4, 5, 1, 3 ]



🔹 FLSM (Fixed Length Subnet Mask) 이란?
모든 서브넷이 동일한 크기로 나눠지는 방식
✅ VLSM (Variable Length Subnet Mask)
서브넷마다 필요한 만큼만 IP를 나눠 쓰는 방식
→ 말 그대로 "가변 길이 서브넷 마스크"
✅ 쉽게 말하면?
구분 설명
FLSM 모든 서브넷 크기를 똑같이 나눔
VLSM 서브넷마다 필요한 크기만큼 다르게 나눔




부서테이블
부서코드는 기본키
부서코드는 외래키 직원테이블의 부서코드 참조
ON DELETE CASCADE가 뭔지 정확하게 모르겠으나
대소문자 포함해서 중복제거인가??
직원 테이블
기본키는 직원코드
외래키는 부서테이블의 부서코드참조
직원 테이블에서 부서코드가 20인것
중복제거하고 카운트 하면 1
부서테이블에서 부서코드가 20인것 제거 (기획부)
직원 테이블에서 직원코드를 중복없이 카운트
참조하고있던 20이 사라지면 직원테이블에 있던
기존의 20들도 사라지는가?? 사라진다고 했을경우
10과 30만 남으므로 중복없이 카운트하면 2 예상

✅ 개념 설명: ON DELETE CASCADE
🔹 ON DELETE CASCADE란?
부모 테이블(여기선 부서)의 행이 삭제되면,
해당 키를 참조하던 자식 테이블(직원)의 관련 행들도 자동 삭제됨
📌 즉, 부서코드 = 20을 삭제하면 →
직원 테이블에서 부서코드가 20인 직원들 전부 삭제됨!
✅ (1)번 문제 해설
SELECT DISTINCT COUNT(직원코드) FROM 직원 WHERE 부서코드 = '20';
부서코드 = 20인 직원들:
3000, 4000, 5000
중복된 직원코드 없음
→ DISTINCT COUNT(직원코드)는 그냥 COUNT(직원코드)와 같음
정답: 3
✅ (2)번 문제 해설
DELETE FROM 부서 WHERE 부서코드 = '20'; SELECT DISTINCT COUNT(직원코드) FROM 직원;
부서코드 = 20 삭제 →
→ 직원 테이블에서 부서코드 20인 직원들(3명) 자동 삭제됨
남은 직원:
1000, 2000 (부서 10)
6000, 7000 (부서 30)
모두 직원코드가 중복 없이 다름
✅ 정답: 4

사람을 속여 비밀 정보를 획득하는 기법 , 사회공학?? 이런거였던 것같음
빅데이터와 비슷 , 죽은데이터 , 저장공강만 차지 , 데드어쩌구였던것 같은데 데드데이터는 아닐탠데...

다크데이터를 빅데이터로 활용이가능할까??
| 산업 | 다크 데이터 예시 | 활용 방법 |
|---|---|---|
| 제조 | 설비 로그, 유지보수 기록 | 고장 예측, 예지 정비 |
| 금융 | 콜센터 녹취, 채팅 기록 | 민원 분석, 리스크 예측 |
| 의료 | CT·MRI 영상, 의사 메모 | 질병 예측, 진단 보조 |
| 유통 | 고객 이메일, 반품 이유 | 고객 행동 예측, 상품 개선 |
TestList = [1,2,3,4,5] TestList = list(map(lambda num : num + 100, TestList))) print(TestList)


풀이 : 관제쪽에서 사용하는 기술같음 , ML을사용한 보안 솔루션이라는데 흠.. 모니터링인가??

✅ 문제 핵심 키워드 해석
머신러닝을 이용해 로그를 통합·분석 → 지능형 자동 분석
보안 이벤트를 중앙에서 수집 → 통합 관제 기능
이상 징후 감지, 알림 제공 → 위협 탐지 및 대응
조건 기반 상관관계 분석 → 이벤트 간 연결 관계 파악
✅ SIEM이란?
SIEM = 보안 로그 통합 + 이상 탐지 + 실시간 분석 + 경보 시스템
Security Information Management (SIM) 보안 로그 수집 및 저장
Security Event Management (SEM) 이벤트 실시간 분석 및 경고 발생
머신러닝 기반의 이상 징후 탐지 ✅ SIEM은 AI/ML 접목 가능

예상 정답 : CVS,SVN,GIT
다른 보기
ATM 모르겠음 (프로토콜 예상)
OLAP 모르겠음
DDOS는 바이러스이고
Cyber Kill Chain 사이버 공격 같음
OLTP는 프로토콜 같고
나머지 보기들은 무슨역할인지모르겠음
CVS (Concurrent Versions System) : 예전 형상관리 도구 (버전관리 도구의 초기 형태)
SVN (Subversion) : 중앙집중형 버전관리 도구
GIT : 분산형 버전관리 도구, 현재 가장 널리 쓰임 (GitHub 등)
| 항목 | 설명 | 분야 |
|---|---|---|
| ATM (Asynchronous Transfer Mode) | 고속 네트워크 전송 기술 (패킷 전송 방식) | 통신 프로토콜 |
| OLAP (Online Analytical Processing) | 데이터 분석을 위한 시스템 (다차원 분석, 피봇 테이블 등) | 데이터 분석 시스템 |
| DDOS (Distributed Denial of Service) | 여러 대의 컴퓨터로 공격하는 방식, 서비스 마비 유발 | 보안 공격 |
| Cyber Kill Chain | 사이버 공격의 단계별 모델 (탐지·침투·공격 등) | 보안 전략 모델 |
| OLTP (Online Transaction Processing) | 빠른 거래 처리를 위한 시스템 (은행, POS 등) | 데이터 처리 시스템 |


✅ 1번 SQL
SELECT DEPT FROM STUDENT;
🔍 의미
DEPT 컬럼의 전체 값을 불러오기
중복 포함, 조건 없음
결과: 총 학생 수인 200개 튜플
✅ 2번 SQL
SELECT DISTINCT DEPT FROM STUDENT;
🔍 의미
DEPT 컬럼에서 중복을 제거한 값들만 출력
📦 DEPT에는 세 가지 값만 존재:
컴퓨터과
전기과
인터넷과
결과: 중복 제거 → 3개
✅ 3번 SQL
SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '인터넷과';
🔍 의미
먼저 조건: WHERE DEPT = '인터넷과' → 인터넷과 학생만 남음
그 후 DISTINCT DEPT → DEPT는 모두 '인터넷과'니까, 중복 제거해도 1개만 존재
결과: 1
int n; int k; int s; int el = 0; for(n=6; n<=30; n++){ s=0; k=n/2; for(int j=1; j<=k; j++){ if(n%j==0){ s=s+j; } } if(s==n){ el++; } } printf("%d", el);
| 순번 | 완전수 |
|---|---|
| 1 | 6 |
| 2 | 28 |
| 3 | 496 |
| 4 | 8,128 |
| 5 | 33,550,336 |

풀이 : 명칭을 모르겠음. 보안구역 이런건가??
풀이 : 도메인 하이재킹 아닐까요??

ARM 프로세서에서 제공하는 하드웨어 보안 기술로,
하나의 CPU 안에 보안 영역(Secure World)과 일반 영역(Normal World)을 나눠서
민감한 연산/데이터를 별도로 보호함.
💡 왜 중요한가?
스마트폰, IoT 디바이스, 스마트카드에서 지문, 인증서, 결제 정보 같은 민감한 데이터 보호에 사용됨
소프트웨어 보안보다 더 깊은 하드웨어 레벨 보안 제공
유명한 도메인 주소에서 철자 하나만 바꿔서
사람들이 실수로 접속한 틈을 노려 만든 사기 수법
Pharming (파밍)
정상적인 웹사이트 주소로 접속했는데,
악성 코드나 DNS 조작으로 가짜 사이트로 유도되는 공격
Spoofing (스푸핑)
신분을 위조하여 속이는 행위
메일, IP, MAC 주소 등을 진짜처럼 가장해서 신뢰를 유도
Smishing (스미싱)
SMS(문자 메시지) + Phishing
문자로 악성 링크를 보내 개인정보를 탈취하거나 앱 설치 유도

풀이 : OAuth에 대한 설명인가??? , 구글 로그인하면 다른곳도 접속가능하잖아 , meta같은곳에 접속하면 다른 사이트에도 접속가능한 비슷한것같은데

“OAuth?”라고 의심한 점 👍 매우 좋은 접근 (왜냐하면 OAuth도 인증 관련 기술이니까!)
“구글 로그인하면 다른 사이트 접속 가능” 비유
✅ 실제로는 OAuth + SSO 개념이 섞인 사례야
즉, 네가 인식한 메커니즘은 맞았고,
단지 그 기술의 이름을 SSO가 아닌 OAuth로 착각한 거야. 아주 흔한 실수야! 😊
✅ 위 설명에서 강조된 내용은?
✔️ "한 번 로그인 → 여러 사이트 자동 접속" → SSO의 핵심 개념
✔️ "하나의 사용자 정보를 기반으로" → 통합 인증 (SSO)
❌ OAuth의 핵심 키워드인 ‘권한 위임’, ‘액세스 토큰’, ‘API 접근’은 없음
📦 OAuth의 기본 구성
[사용자] → [인증서버] → (access token) → [제3자 앱]
사용자: "구글 로그인으로 접속할래요!"
인증 서버: "좋아, 이 사람 인증했으니 access token 줄게"
제3자 앱: "이 토큰으로 로그인 상태 확인, 데이터 접근 가능!"
✅ 이게 OAuth의 기본 흐름 (권한 위임)
💡 그런데 이걸 SSO처럼 쓰면 어떻게 되냐?
한 번 로그인해서 받은 토큰을 다른 서비스에도 동일하게 사용
즉, 한 번 인증하면 여러 서비스에서 토큰만으로 로그인 유지
✅ 바로 이게 OAuth 기반 SSO 또는 SSO with OAuth 구조야!

풀이 : HRN VS SRT 인데 비선점형은 HRN 인것으로 알고있음
풀이 : 라운드로빈 RR에 관한 설명
풀이 : SRT로 알고 있음

| 스케줄링 | 선점 여부 | 기준 | 특징 |
|---|---|---|---|
| SJF | ❌ 비선점 | 전체 실행 시간이 가장 짧은 순 | 효율적이나 긴 작업은 지연됨 |
| RR | ✅ 선점 | 타임 퀀텀 순환 | 공평성 중심, 시스템 응답성↑ |
| SRT | ✅ 선점 | 남은 실행 시간이 가장 짧음 | 실시간 시스템에 적합 |
| 이름 | 설명 |
|---|---|
| MLFQ | 큐를 여러 단계로 나누고 짧은 애부터 우선, 시간 지날수록 아래로 피드백 , RR + 우선순위 + 피드백 |
| HRN | 응답 비율이 가장 높은 프로세스를 먼저 선택 (SJF 개선형, 비선점형) , 응답 비율 = (대기시간 + 서비스시간) / 서비스시간 |

언어모델링
사물??( 사물인터넷을말하는건가 ) , 다이어그램 , 그리고하나는뭘까..
( ) 다이어그램은 객체타입을 정의 , 정적인 관계를 표현한 다이어그램 , 정적인 클래스다이어그램 아닐까?? 아니면 유즈케이스는 동적인 것 같은데..
( ) 는 클래스와 같은 기타 모델 요소 또는 컴포넌트가 구현해야 하는 오퍼레이션 세트
클래스 혹은 컴포넌트를 만들때 사용하는 오퍼레이션세트?? , 인터페이스인가
예상되는 답 : ??? , 클래스다이어그램 , 인터페이스

🔹 (1) 관계
UML의 3대 구성 요소:
사물 (Things), 관계 (Relationships), 다이어그램 (Diagrams)
사물: 클래스, 객체, 인터페이스 등 실제 모델 요소
관계: 연결(Association), 상속(Generalization), 의존(Dependency) 등
다이어그램: 시각적으로 표현하는 도구
따라서, 빈칸에는 관계가 들어가야 자연스러워
🔹 (2) 클래스 다이어그램
"객체 타입 정의" + "정적인 관계 표현"
→ UML 구조 다이어그램 중 대표적인 게 바로 클래스 다이어그램
클래스, 속성, 메서드 등 정의
클래스 간 관계(상속, 연관 등) 표현
🔹 (3) 인터페이스
"클래스 또는 컴포넌트가 구현해야 하는 오퍼레이션 세트"
→ 정의만 있고, 실제 구현은 없는 구조
여러 클래스에서 동일한 기능을 구현해야 할 때 사용
자바나 C# 등 객체지향 언어에서 많이 사용

개체와 관계를 연결함 ㄷ 예상
개채 집합과의연결?? 이것도 ㄷ 같음 혹은 ㅂ
관계 - 관계집합 속성 연결 , 관계집합의 속성은 DATA이므로 ㄹ 예상
두 개체집합 관계에서 생성되는 값을 저장 , 관계의 속성을말하는 것 같음 ㄴ
같은 속성을 공유하는 개체들의 모임 , ㄱ 테이블안에 속성들이 모여있음

개체(사각형)와 관계(마름모)는 보통 실선으로 연결
학생과 과목이 참여하는 관계를 "수강"이라고 할 때,
그 관계를 실선으로 연결한 것
✅ 정답: ㄷ
여기서 말하는 "연결"은 개체와 관계의 참여를 의미
그림에서 관계 중심 마름모가 바로 관계집합
✅ 정답: ㅂ
관계에서 파생된 속성은 관계집합에 부속되며, 점선으로 연결됨
여기선 DATA라는 속성이 관계집합에 붙은 관계 속성
✅ 정답: ㄹ
학생과 과목의 관계에서만 의미가 있는 속성
예: 성적, 수강일, 평가결과 등
✅ 정답: ㄴ
예: 학생 → 이름, 성별, 나이 등 속성을 공유하는 하나의 집합
✅ 정답: ㄱ
public class Main { static int[] MakeArray(){ int[] tempArr = new int[4]; for(int i=0; i<tempArr.Length;i++){ tempArr[i] = i; } return tempArr; } public static void main(String[] args){ int[] intArr; intArr = MakeArray(); for(int i=0; i < intArr.Length; i++) System.out.print(intArr[i]); } }
intArr 배열생성
MakeArray 메서드 호출
MakeArray 메서드 안에서 tempArr 배열을만듬
변수 i 를사용하여 tempArr을 채운다음 반환 , intArr에전달
intArr출력
int[4]의 크기를 정확하게 모르겠으나 아마도 정수형 4칸아닐까 예상 그래서 출력값은 1 2 3 4

✅ 문제 코드 요약
static int[] MakeArray(){ int[] tempArr = new int[4]; // ① 크기 4짜리 배열 생성 for(int i=0; i<tempArr.Length;i++){ tempArr[i] = i; // ② 0,1,2,3 채움 } return tempArr; // ③ 배열 반환 }
✅ 자바에서 new int[4]란?
크기가 4인 정수형 배열 생성.
초기값은 모두 0 → 이후 tempArr[i] = i로 채움
결과:
tempArr = {0, 1, 2, 3}
public class Exam { public static void main(String[] args){ int a = 0; for(int i=1; i<999; i++){ if(i%3==0 && i%2!=0) a = i; } System.out.print(a); } }
