반응형
SMALL

SQL 간만에 보니까 다 까먹었군요...기본 테이블인만큼 한줄씩 뜯어봅시다.

 

DDL: 데이터 정의어(Data Definition Language) : CREATE, ALTER, DROP, RENAME

DML : 데이터 조작어(Data Manipulation Language) : INSERT, SELECT, UPDATE, DELETE

DCL : 데이터 제어어(Data Control Language) : GRANT, REVOKE

 

 

▼ 전체보기

더보기

 뭐 이렇게 구성되어 있었는데 그중에 일부만 쓰자.

 

 



  
SET SCHEMA PUBLIC

 

현재 사용하고자 하는 기본 스키마(Schema)를 설정.

 

"앞으로 사용할 테이블들은 전부 PUBLIC이라는 폴더에 저장할 거야!"

 

🔍 SCHEMA란?

스키마는 데이터베이스 안에서 객체들(테이블, 뷰, 인덱스, 시퀀스 등)을 논리적으로 구분하는 공간 또는 폴더.

예를 들어 PUBLIC이라는 스키마 안에 여러 테이블들이 들어있는 것.

 

🧩 왜 SET SCHEMA PUBLIC을 하나요?

PUBLIC 스키마를 현재 SQL 실행의 기본 스키마로 설정해서, 앞으로 만들거나 조회할 테이블들이 이 PUBLIC 스키마 안에 속하게 된다.

만약 이걸 하지 않으면, 다른 스키마를 사용하는 경우 SQL 문이 원하는 테이블을 찾지 못할 수 있다.

 

 


  
SET DATABASE SQL SYNTAX ORA TRUE

 

SQL 문법을 오라클(Oracle) 스타일로 허용. (현재 HSQL로 하고 있지만 오라클 방식도 허용하겠다는 뜻)

 

"이 데이터베이스에서는 오라클(Oracle) 방식의 SQL 문법도 허용할게!"

 

HSQLDB는 표준 SQL 문법, 오라클 스타일, MySQL 스타일 등을 지원하는데, 그 중 오라클 DB의 문법을 활성화하겠다는 듯.

ex. DUAL(임시용도의 가상 테이블), SYSDATE(현재 날짜와 시간 반환)

 


  
CREATE MEMORY TABLE PUBLIC.EMP (
EMPNO VARCHAR(4) NOT NULL PRIMARY KEY,
ENAME VARCHAR(30),
JOB VARCHAR(9),
JOBSTATUS VARCHAR(9),
MGR VARCHAR(4),
HIREDATE VARCHAR(8),
SAL DOUBLE,
COMM DOUBLE,
DEPTNO VARCHAR(2),
LV INTEGER,
ORDERNUM INTEGER
)

 

 

EMP 테이블.

직원번호(EMPNO) 를 PK로 설정한 직원 정보 테이블을 만든다.

 

- MEMORY TABLE: 메모리에만 존재하는 테이블로, DB를 끄면 사라짐.

- PUBLIC: 맨 처음 설정한 스키마(테이블이 들어있는 폴더)의 이름.

- EMP: 만든 테이블 이름.

 

- EMPNO VARCHAR(4) NOT NULL PRIMARY KEY : 직원번호(EMPNO) 는 기본키(PRIMARY KEY)로, 중복되거나 비워져서는 안된다(NOT NULL)

- SAL DOUBLE, ORDERNUM INTEGER : INTEGER 는 정수, DOUBLE은 실수(소수점 가능) SAL은 급여 컬럼으로 소수점이 가능하나, ORDERNUM 은 정렬 순서로 정수만 나올 수 있음.

 


  
CREATE SEQUENCE AUTO_INCREMENT
AS INTEGER
START WITH 1
INCREMENT BY 1;

 

AUTO_INCREMENT라는 이름의 시퀀스를 생성.

정수(INTEGER) 타입이고, 1부터 시작해서 1씩 증가한다.

 

이 시퀀스는 주로 자동으로 증가하는 숫자를 생성할 때 사용한다.

ex) 테이블에 새로운 행을 삽입할 때 고유한 ID 값을 자동으로 생성하고 싶을 때

 

이 이후 Insert 할 때 


  
INSERT INTO EMP (회원번호, 이름)
VALUES (NEXT VALUE FOR AUTO_INCREMENT, '홍길동');

 

이렇게 하면 회원번호에 자동으로 1,2,3... 이렇게 들어간다.

 

시퀀스는 전체 테이블에 동작하는건 아니고,

원하는 테이블/컬럼에서 NEXT VALUE FOR 시퀀스명을 직접 사용해야만 동작한다.

 

-> 확인해보니 MOVIEINFO 테이블에 쓰려고 만든 것. 일반 EMP와 DEPT 테이블에서는 필요가 없다.

 

 


  
SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC

 

데이터베이스를 처음 열었을 때 사용할 기본 스키마를 PUBLIC으로 설정.

 

"앞으로 이 DB를 열면 자동으로 PUBLIC 스키마를 기본으로 사용하게 해!"

 

여러개 스키마를 쓸 수 있게 하는데 DB 열면 그냥 기본이 PUBLIC으로 하자.

스키마를 PUBLIC 한개만 만들어서 없어도 상관없긴하다.

 

하지만 스크립트를 이식할 때 다른 환경에서는 스키마가 여러개일 수 있으니 기본값을 정해놓은 것이다.

ex) 다른 스키마가 생길 수 있는 환경, 도구 연동, 이식성 대비

 

또한 HSQLDB에서 초기 접속 시점에 기본 스키마를 명확히 해주면, 접속한 유저나 설정에 따라 초기 스키마가 null, unknown일 경우 오류가 발생하지 않도록 해준다.

 


  
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.SQL_IDENTIFIER TO PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.YES_OR_NO TO PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.TIME_STAMP TO PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CARDINAL_NUMBER TO PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CHARACTER_DATA TO PUBLIC

 

INFORMATION_SCHEMA라는 특수한 스키마에 있는 도메인들(domain)에 대한 권한을 부여.

 

"DB 내부 구조(테이블명, 날짜, 숫자, 텍스트 등)에 관련된 기본 데이터 타입들에 대해,

모든 사용자(PUBLIC)가 사용할 수 있도록 허용해!"

 

이것도 꼭 필요한 구문은 아님. 

HSQLDB나 다른 RDB에서 내부적으로 자동으로 생성되는 초기 스크립트에 포함되어있는 경우로 그냥 자동 생성된거다.

 

DB 새로 만들 때

어떤 툴(DBeaver, HSQL Database Manager 등)을 통해 내보내기(export) 했을 때

시스템 테이블을 백업/초기화할 때

 

이런 경우 혹시 필요한 경우를 대비해 PUBLIC(모든 사용자)이 기본적인 메타 도메인 타입에 접근할 수 있도록 미리 권한을 주는 것이다.

 

식별자(SQL_IDENTIFIER), yes, no 같은 제한된 타입(YES_OR_NO), 타임스탬프(TIME_STAMP), 숫자(CARDINAL_NUMBER), 문자열(CHARACTER_DATA) 타입의 도메인을 모든 사용자가 사용할 수 있게 하용한다.

 


✅ 도메인(domain)이란?

 

도메인(Domain)은 데이터베이스 설계에서 데이터의 범위와 형식을 제한하는 방법으로, SQL에서는 컬럼에 대해 허용할 수 있는 값의 타입과 규칙을 정의하는 객체.

간단히 말하면, 특정 데이터 타입에 대해 제약 조건을 설정하는 것이다.

예를 들어, 날짜, 전화번호, 금액 등의 규격을 정의하고, 이를 여러 테이블에서 재사용할 수 있게 해준다.

도메인을 사용하면 중복 코드를 줄이고, 데이터의 일관성 및 무결성을 유지하는 데 유리하다.

 

일반적으로 SQL 데이터 타입(예: VARCHAR, INTEGER, DATE 등)과 유사하지만, 그것들을 특정 규칙과 함께 제한할 수 있다.

 

 

예를 들어, 날짜 데이터에서 생일은 미래일 수 없으니 과거 날짜만 가능하도록 하고 싶다면?


  
CREATE DOMAIN PastDate AS DATE
CHECK (VALUE <= CURRENT_DATE);

 

이렇게 PastDate 라는 이름의 도메인을 생성하고


  
CREATE TABLE EMPLOYEE (
EMP_ID INTEGER PRIMARY KEY,
NAME VARCHAR(100),
BIRTHDATE PastDate
);

 

이렇게 설정하면 생일 컬럼에 위 규칙을 추가할 수 있다.

 

예를 들어, 전화번호와 같은 특정 형식을 따라야하는 경우?


  
CREATE DOMAIN PhoneNumber AS VARCHAR(15)
CHECK (VALUE LIKE '(___)____-____' OR VALUE LIKE '(XXX)XXX-XXXX');

 

-을 포함한 11자리 숫자만 허용하는 도메인 생성.

 

INFORMATION_SCHEMA는 내가 생성한 스키마가 아니라 SQL 표준에 정의된 데이터 베이스의 메타데이터를 관리하는 스키마로, 그냥 기본 설정파일 같은거라고 보면 된다.

얘네의 기본 설정값을 최초에 정의한 스키마 PUBLIC에게 사용권한을 주는 명령어가 바로

GRANT USAGE ON DOMAIN 이다.


 


  
-- EMP 테이블에 한 행을 삽입
INSERT INTO EMP
VALUES
(
'3092', -- EMPNO: 직원 번호 (직원의 고유 번호, '3092'번 직원)
'JOHN', -- ENAME: 직원 이름 ('JOHN')
'CLERK', -- JOB: 직무 ('CLERK', 사무직)
'OD', -- JOBSTATUS: 직무 상태 ('OD', 직무 상태 코드, 예: "On Duty"일 수 있음)
'7782', -- MGR: 상사 직원 번호 (상사의 직원 번호, 이 직원의 상사는 '7782'번 직원)
'20160601', -- HIREDATE: 고용 날짜 ('20160601', 직원이 고용된 날짜, 'YYYYMMDD' 형식)
4300.0E0, -- SAL: 급여 (4300.0, 급여 금액, 'E0'는 지수 표기법으로 4300.0을 의미)
100.0E0, -- COMM: 커미션 (100.0, 커미션 금액, 'E0'는 지수 표기법으로 100.0을 의미)
'10', -- DEPTNO: 부서 번호 (부서 번호 '10'번 부서에 속한 직원)
3, -- LV: 직원 레벨 (3, 직원의 직급, 예를 들어, 3은 특정 직급을 나타냄)
14 -- ORDERNUM: 직원 순번 (부서 내에서 이 직원의 순번, 예를 들어, 14번째 직원)
);

 

EMP 테이블에 각각 해당하는 데이터를 넣는다.

 


  
-- DEPT 테이블에 한 행을 삽입
INSERT INTO DEPT
VALUES
(
'10', -- DEPTNO: 부서 번호 ('10', 부서 번호 10번)
'ACCOUNTING', -- DNAME: 부서 이름 ('ACCOUNTING', 회계 부서)
'NEWYORK' -- LOC: 부서 위치 ('NEWYORK', 부서의 위치)
);

 

DEPT 테이블에 각각 해당하는 데이터를 넣는다.

 

 

 

 


결론적으로 EMP/DEPT 테이블 기본 설정 끝!


  
SET SCHEMA PUBLIC
SET DATABASE SQL SYNTAX ORA TRUE
--테이블 생성
CREATE MEMORY TABLE PUBLIC.EMP(EMPNO VARCHAR(4) NOT NULL PRIMARY KEY,ENAME VARCHAR(30),JOB VARCHAR(9),JOBSTATUS VARCHAR(9),MGR VARCHAR(4),HIREDATE VARCHAR(8),SAL DOUBLE,COMM DOUBLE,DEPTNO VARCHAR(2), LV INTEGER, ORDERNUM INTEGER)
CREATE MEMORY TABLE PUBLIC.DEPT(DEPTNO VARCHAR(2) NOT NULL PRIMARY KEY,DNAME VARCHAR(14),LOC VARCHAR(13))
SET DATABASE DEFAULT INITIAL SCHEMA PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.SQL_IDENTIFIER TO PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.YES_OR_NO TO PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.TIME_STAMP TO PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CARDINAL_NUMBER TO PUBLIC
GRANT USAGE ON DOMAIN INFORMATION_SCHEMA.CHARACTER_DATA TO PUBLIC
--데이터 삽입
INSERT INTO EMP VALUES('3092','JOHN','CLERK','OD','7782','20160601',4300.0E0,100.0E0,'10', 3, 14)
INSERT INTO EMP VALUES('7499','ALLEN','SALESMAN','OD','7698','20130619',1600.0E0,300.0E0,'30', 3, 11)
INSERT INTO EMP VALUES('7521','WARD','SALESMAN','LV','7698','19810222',1250.0E0,500.0E0,'30', 3, 7)
INSERT INTO EMP VALUES('7566','JONES','MANAGER','OD','7839','19810402',2975.0E0,0.0E0,'20', 2, 2)
INSERT INTO EMP VALUES('7654','MARTIN','SALESMAN','OD','7698','19810928',1250.0E0,1400.0E0,'10', 3, 9)
INSERT INTO EMP VALUES('7698','BLAKE','MANAGER','LV','7839','19810501',2850.0E0,0.0E0,'30', 2, 6)
INSERT INTO EMP VALUES('7782','CLARK','MANAGER','OD','7839','19810609',2450.0E0,0.0E0,'10', 2, 12)
INSERT INTO EMP VALUES('7788','SCOTT','ANALYST','OD','7566','19870713',99999.0E0,0.0E0,'10', 3, 4)
INSERT INTO EMP VALUES('7839','KING','PRESIDENT','OD','','19811117',5000.0E0,0.0E0,'10', 1, 1)
INSERT INTO EMP VALUES('7844','TURNER','SALESMAN','OD','7698','19810908',1500.0E0,0.0E0,'30', 3, 8)
INSERT INTO EMP VALUES('7876','ADAMS','CLERK','RS','7788','19870713',1100.0E0,0.0E0,'20', 4, 5)
INSERT INTO EMP VALUES('7900','JAMES','CLERK','SB','7698','19811203',950.0E0,0.0E0,'30', 3, 10)
INSERT INTO EMP VALUES('7902','FORD','ANALYST','SB','7566','19811203',3000.0E0,100.0E0,'20', 3, 3)
INSERT INTO EMP VALUES('7934','MILLER','CLERK','LV','7782','19820123',1300.0E0,200.0E0,'10', 3, 13)
INSERT INTO DEPT VALUES('10','ACCOUNTING','NEWYORK')
INSERT INTO DEPT VALUES('20','RESEARCH','DALLAS')
INSERT INTO DEPT VALUES('30','SALES','CHICAGO')
INSERT INTO DEPT VALUES('40','OPERATIONS','BOSTON')
INSERT INTO DEPT VALUES('50','R&D','NEWYORK')
INSERT INTO DEPT VALUES('60','TECH SUPPORT','DALLAS')
INSERT INTO DEPT VALUES('70','MARKETING','CHICAGO')
INSERT INTO DEPT VALUES('80','DESIGN','BOSTON')
INSERT INTO DEPT VALUES('90','FACTORY1','NEWYORK')
INSERT INTO DEPT VALUES('91','FACTORY2','CHICAGO')

 

 

 

반응형
LIST
반응형
SMALL

간단하게 남겨보는 정보처리기사 필기 후기.

과목은 총 5개이다.

 

1. 소프트웨어설계

2. 소프트웨어개발

3. 데이터베이스구축

4. 프로그래밍언어활용

5. 정보시스템구축관리

 

2024년 정보처리기사는 서울 지역 기준 수많은 "컴퓨터학원" 등에서 시행된다. 

이전과 같이 종이에 문제를 푸는 식이 아니기 때문에, 컴퓨터용 싸인펜이 필요없고 점수와 합격 여부도 바로 나온다.

물론 이 점수가 확정은 아니다. 문제의 오류 여부에 따라 수정될 가능성이 있긴 하지만....확률은 거의 희박하다.

어쨌든 점수가 바로 나와서 합격 여부를 알 수 있다는 점이 좋다.

 

개인적으로 수학도 집합부분 열심히 공부했던 사람으로써ㅋㅋㅋㅋ 1과목은 80점대로 높은 점수를 얻어 평균을 올린 점이 합격에 도움을 주지 않았나 싶다. 3,5 과목은 확실히 소홀했던 것 같고... 나머지  2과목의 계산문제(정렬, 트리순회 알고리즘), 4과목의 코딩문제에 힘을 쏟았는데 이 전략이 잘 맞았다 생각한다. 오히려  무조건 맞을 수 있는 문제가 이러한 연산 문제인 것 같음....말장난이 제일 헷갈리고 어려웠다ㅜㅜ

 

같은 날 친구랑 함께 시험을 봤는데, 시험 이후 문제에 대해 이야기를 나누니 겹치는 문제가 없었다(?)
이말인 즉슨, 컴퓨터로 보기 때문에 시험 문제를 문제은행 식으로 여러 버전을 랜덤으로 보는 것 같음.

처음에는 문제 순서를 바꾼 줄 알았는데 아예 내가 푼 문제를 보지 못했다는 걸 듣고 버전이 여러개 일 수 있겠다는 생각을 했다.

 

 특히나 4과목이 SQL, Java, Python, C언어 문제 등 여러가지 언어 문제가 있는데, 친구는 대부분 Python 문제로 나왔고, 나는 한개정도만 나오고 대부분 C 아니면 Java 였다... 어떤식으로 나올지 모르니 잘 봐두는게 좋겠다.

나느 5과목이 점수가 잘 안나왔는데 헷갈리는 문제가 너무 많았다. 단어를 영문으로 표기하거나, "안", "못" 이런 글자 하나로 갈리는 문제가 꽤 있어서 풀이하는 데에 오래 걸렸음. 5과목 때문에 끝까지 남아서 풀었다.

 

 

시간은 150분으로 넉넉했고, 화면 우측 상단에 남은 시간이 써있어서 좋았다.

화면은 우측에 OMR처럼 체크가 되는 부분이 있고, 좌측에 문제가 나온다. 문제도 격자를 두어 한 페이지에 많이 볼지, 아니면 한문제씩 볼지 등 설정할 수 있고, 글자 크기도 확대 축소 등이 가능하다. 문제푸는 사람에 따라 눈이 나쁠수도 있을텐데 여러모로 고려를 했다는 점이 좋았다.

 

마지막에 답 제출버튼 클릭하면 "제출하시겠습니까?" 문구가 총 2번 뜬다.

여러번 확인 후 [예] 버튼을 두번 눌러 제출했다.

제출하고 바로 점수가 나와서 그런지 나가시는 분들의 여러모로의 탄성과 한숨을 들을 수 있던 것이 킬포...

 

이 다음 실기도 준비 잘 해보고도록 해야지.

반응형
LIST
반응형
SMALL

1. 소프트웨어 생명주기(SDLC)

-> 소프트웨어 설계 및 구축 개발할 때 효율적일 수 있도록 다양한 방법을 사용함.

 

1) 폭포수모델

- 계속해서 다음단계가 떨어지는 모양새
- 이전단계로 돌아갈 수 없음.
- 각 단계를 그만큼 확실하게 진행하고 검토하고 승인한 뒤 다음단계로 넘어가야함.
- 가장 전통적인 방법(고전적 생명주기 모형)
- 두개 이상의 과정을 병행하지 않고 한번에 하나씩만.
- 순서 : 타당성 검토-계획-요구분석-설계-구현-시험-유지보수(타계요설구시유)
- 선형적 방식일 때, 요구사항이 아주 명확할 때 사용


2) 프로토 타입

- 사용자의 요구사항에 정확히 맞추기 위해 시제품(prototype)으 만들어서 최종 결과물 예측함.
- 폭포수 모델 단점 보완(폭포수 모델로 개발이 완료되고 오류가 발생한 경우)
- 순서 : 요구 수집-빠른설계-프로토타입 구축-고객평가-조정-구현(요설프고조구)


3) 나선형 모형

- 폭포수+프로토타입+위험분석 기능 추가
- 나선형처럼 여러번 개발 과정을 거쳐서 점진적으로 결과 완성
- 위험 관리 및 최소화 가능
- 추가되는 요구사항 반영 가능.
- 순서 : 계획-위험분석-개발-평가 를 반복함
- 문제는 관리가 어렵다


4) 애자일 모형

- 민첩하게 고객의 요구사항 변화에 대응한다. 일정한 주기를 가지고 반복 개발
- 고객과의 소통
- 스프린트 단위의 개발 주기 반복
- 고객의 우선순위애 따라 개발진행
- 애자일 기반 소프트웨어 개발 모형
  * 스크럼(Scrum) - 팀 중심으로 백로그(backlog)라는 요구사항 우선순위에 따라 계속해서 스프린트끝나면 회고하고 회의하고 함.
  * XP(eXtreame Programming) - 고객이 적극 참여해서 단위별 릴리즈를 하고, 특정 기능을 위한 스파이크 테스트를 하여 조금씩 배포. 

    중요가치 : 의사소통, 단순성, 용기. 존중, 피드백

    방법 : 짝프로그래밍, 공동코드소유, 테스트주도개발. 전체팀, 계속적통합, 디자인개선/리팩토링, 소규모릴리즈)
 

 *칸반(Kanban), Lean, 크리스탈(Crystal), ASD(Adaptive Software Development), FDD(Feature Driven Development),DSDM(Dynamic System Development),DAD(Disciplined Agile Delivery) 등


2. 시스템 파악

-> 시스템의 개발 범위와 개괄적 틀


- 구성(업무 시스템별 기능 및 담당)
- 기능(어떤걸 만들어야하는지)
- 인터페이스(규약-프로토콜, 데이터형식 등)
- 아키텍쳐(구조-주요업무를 기준으로 각시스템 동작원리 및 구성)
- 소프트웨어
- 하드웨어
- 네트워크(구성 및 물리적 위치 구성도 작성하면 유지보수에 활용됨)

 

 

 

3. 개발기술 환경 파악

- OS(운영체제 - 주변기기가 지원되는지?)
- DBMS(DB관리시스템 - 상호호환성)
- WAS(웹 어플리케이션 서버-미들웨어)

선택 시 고려할 점)가성비기오
가용성(가능?), 성능, 기술지원, 비용, 오픈소스

 

4. 요구사항

원하는 서비스에 대한 설명 및 운영에 필요한 제약조건을 쓴다. 기능은 뭐고, 품질이나 제약사항은 어떻고, 사용자랑 개발자 사이의 합의 내용을 작성


1) 순서

도출-분석-명세-확인
요구사항 수집 후 분석해서 내용정리, 문서화한 뒤 고객한테 검토 요청함
이 때 확인 시 프로토타입을 주기도 하고, 모델을 논리적으로 검증하거나 테스트를 하기도 함.


2) 요구사항 분석

- 자료 흐름도 (DFD: Data Flow Diagram)
요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법

자료 사전 (DD: Data Dictionary)
자료 흐름도에 있는 자료를 더 자세히 정의하고 기록한 것

= 자료의 정의: is composed of
+ 자료의 연결: and
( ) 자료의 생략: Optional
[ | ] 자료의 선택: or
{ } 자료의 반복: Iteration of
* * 자료의 설명: Commant



자동화도구 CASE 종류
SADT (Structured Analysis and Design Technique)
SREM (Software Requirements Engineering Methodology) = RSL/REVS
PSL (Problem Statement Language)
PSA (Problem Statement Analyzer)
TAGS (Technology for Automated Generation of Systems)

문서화도구 HIPO (Hierarchy Input Process Output)
트리 구조로 된 하양식 계층을 보여주는 도표이다. 
가시적(visual,목차)

총체적(overView,개요)

세부적(detail,내용)


3) 요구사항 검증

- 워크 스루(Walk Through) : 검토회의 전에 요구사항 명세서를 미리 배포하여 사전 검토한 후 짧은 검토 회의를 통해 오류를 조기에 검출하는데 목적을 두는 요구사항 검토 방법
- 인스펙션(Inspection) : 전문가 또는 팀이 검사하여 오류를 찾아내는 검토 방법
- 동료검토(Peer Review) : 2~3명 리뷰

 

 


5. UML(Unified Modeling Language)

객체지향 모델링 언어로 시스템 분석, 설계 시 고객과 대화하기 위해 만들어짐. 그림으로 되어있음.


1) 전체요소

사물(노드), 관계(선), 다이어그램(도형)


[관계 관련]

연관(사람→집)
집합(컴퓨터◇—프린터)
포함(문◆— 키)
일반화(커피◁— 아메리카노)
의존(등급⇢할인율)
실체화(비행기(…▷날수있는) 수행해!
스트레오타입(<<>>) 추가기능 표현


[다이어그램 관련]

- 구조적 다이어그램(정적모델링) - 클객컴배복패
클래스(클래스 사이의 관계와 속성, 제약조건 표시)
객체(특정 시점의 객체간의 관계 표시)
컴포넌트(기능을 하는 한 컴포넌트간의 관계 표시)
배치(결과물의 위치를 어떻게둘지 표시)
복합체구조(여러개 섞여있으면 내부는 어떤지 표시)
패키지(이 모든 것들을 그룹해서 그들간의 관계 표시)

- 행위 다이어그램(동적모델링) - 유시커상활상타
유스케이스(사용자관점에서 사용 사례를 기준으로 작성한 것, 요구사항 분석 시 사용)
시퀀스/순차(시간의 흐름에 따라 객체들끼리 메시지 주고받는거 표시)
커뮤니케이션(시퀀스가 메시지만 쓴다면 얘는 메시지와 관계까지 포함)
상태(변화에 따라 어떻게 바뀌는지 표시)
활동(시스템이 어떤 기능 수행할 때 조건이나 처리흐름 표시)
상호작용 개요(상호작용할 때 제어 흐름 표시)
타이밍(언제 하는지 시간제약 표시)


 * 럼바우 객체지향 분석 기법(객체, 상태 다이어그램 사용함)
 * E-R다이어그램(개체, 관계, 속성)


6. UI(사용자 인터페이스)

-> 사용자와 시스템 간의 소통을 도와주는 장치

 

1) 분야

제어(정보 제공과 전달을 위한 물리적 제어)
구성(콘텐츠의 상세적인 표현과 전체적인 구성)
기능(모든 사용자가 편리하고 간편하게 사용하도록 하는 기능)


2) 특징

- 편리하고 가독성 좋고, 시간 단축, 이해도 상승, 오류 줄여줌.

- 하지만 소프트웨어 아키텍쳐를 반드시 숙지해야함.


3) 구분

- CLI(커맨드-텍스트로(cmd 같은거))
- GUI(그래픽)
- NUI(네추럴-말이나 행동으로)
- VUI(보이스)
- OUI(오가닉-상호작용으로 조작 IOT같은거)


4) 기본원칙(직유학유)

- 직관성 : 누구나 쉽게 이해하고 사용 가능해야 함
- 유효성 : 사용자의 목적을 정확하고 완벽하게 달성해야 함
- 학습성 : 누구나 쉽게 배우고 익힐 수 있어야 함
- 유연성 : 사용자의 요구사항을 최대한 수용하고 실수 최소화 해야 함


5) 한국 웹 컨텐츠 접근성 지침(KWCAG)

=> 웹 접근성 : 장애인도 비장애인과 동등하게 접근할 수 있게끔 하는 접근성 지침

- 인식의 용이성 : 대체 텍스트, 멀티미디어 대체 수단, 명료성

- 운용의 용이성 : 광과민성 발작 예방(빛조심), 쉬운 내비게이션

- 이해의 용이성 : 가독성

- 견고성 : 문법 준수, 접근성

- 네비게이션 필요(사이트맵, 메뉴바 등)


6) UI 설계 도구

- 와이어프레임(Wireframe) : 화면 단위로 대략적인 레이아웃을 구성 -> 더 실체화되면 그게 목업
- 목업(Mockup) : 실제화면과 유사한 형태로 만드는 단계, 껍데기, 기능 x
- 스토리보드(Story Board) : 와이어프레임에 콘텐츠의 이동경로 작성, 메뉴얼(작업 지침서)
- 프로토타입(Prototype) : 가라 데이터 넣고 테스트
- 유스케이스(Use Case) : 사람 도형 다이어그램에 사용자 요구사항 표시 및 내용 작성

 

7) 소프트웨어 품질 요구사항(기신사효유이)

- 기능   적절한 기능이 정확하게 + 호환, 보안 (적절,정확,호환,상호운용,보안,간결)
- 신뢰   고장이 나도 상관없어! (성숙,회복,고장허용)
- 사용   얼마나 쉽고 편한지 (이해,학습,운용,친밀)
- 효율   한정된 시간, 자원으로 많은 일처리 (시간, 자원)
- 유지보수   개선 및 확장에 관계된 부분 (분석,변경,시험,안정)
- 이식 : 서로 다른 환경에서 SW가 정상적으로 작동하는지(적용,설치,대체,공존)

 

*** 국제표준 ISO/IEC 9126 또는 25010 / 테스트절차 포함 ISO/IEC 12119

 

8) 감성공학

- HCI   사람이 더 편하게 시스템을 사용할 수 있게 하는 학문. 최적의 UX(사용자경험)이 목표.

- 감성공학은 인간친화적인 시스템 개발 목표


7. 소프트웨어 아키텍처

->소프트웨어 기본구조 및 구성요소들 간의 관계 표현

 

1) 기본 원리

- 모듈화 : 부품별

- 추상화 : 각 요소 공통부분을 묶는거   *** 제과자 (제어, 과정, 자료)

- 단계적 분해 : 추상화 반복할수록 뭉탱이로 분해 가능

- 정보은닉 : 캡슐안에 뭐가 있는지 모르는 것처럼 정보 은닉 가능

 

2) 설계 단계

설계 목표 설정 - 시스템 타입 결정(대화형, 이벤트형 등) - 아키텍처 패턴 적용 - 서브시스템 구체화 - 검토

 

3) 품질 속성

- 시스템 측면(성능, 보안, 가용성, 기능성, 사용성, 변경용이, 확장성 : 성보가기사변확)

        -> 빠르고, 안전하고, 오류 없이 사용가능하고, 기능 다 있고, 사용하기 쉽고, 다른데에서도 쓸 수 있고, 용량 확장 가능함

- 비지니스 측면(시간적시성, 비용, 수명 : 시비수)

        -> 시간 맞춰서 출시하고, 비용 적게 들고, 오래 쓸 수 있고

- 아키텍쳐 측면(개념적 무결성, 정확성, 구축가능성 : 개정구)

        -> 시스템의 일관성이 있고, 요구사항 충족하고, 잘 쪼개져있어서 시스템 분배해서 유연하게 일정변경 가능함.\

 

8. 아키텍처 패턴

-> 설계 시 전형적인 해결방식 및 예제, 템플릿. 이거 쓰면 시간 단축, 품질 향상, 검증편리, 유지보수 편함

 

1) 레이어(계층) 패턴

계층 구분되서 마주보는 상위-하위 두 계층만 상호작용함. 특정 레이어만 교체할 수 있어서 좋음.

ex) OSI 참조모델

 

2) 클라이언트-서버 패턴

서버 1개에 다수의 클라이언트가 있어서 클라이언트가 서버에 서비스 요청하면 응답해줌. 서버는 계속 대기해야함.

ex) 이메일

 

3) 마스터 슬레이브 패턴

조별과제 팀장(마스터)이 팀원들한테 똑같은 업무를 나눠서 지시하고 결과 합쳐서 최종본 만드는 것.

몇명 일 안해도 괜춘ㅋㅋ

ex) 장애허용시스템, 컴퓨터 메모리 같은거

 

4) 파이프 필터 패턴

데이터 스트림(흐름)에 따라 각 필터 단계마다 캡슐화 후 파이프로 데이터 전송함. 필터나 조건 추가 용이

ex) 유닉스의 Shell

 

5) 브로커 패턴

브로커가 컴포넌트 간의 통신을 조정함. 서버가 기능을 이것저것 제공해주면 브로커가 필요한것만 줌.

ex) 필요한 메시지만 띄우는 시스템, 원격서비스 

 

6) 피어투피어 패턴

피어(각 컴포넌트)는 클라이언트가 될수도 있고 서버가 될 수도 있음. 즉, 양방향으로 서로 서비스 제공함.

ex) P2P 사이트, 토렌트 등의 파일공유 시스템

 

7) 이벤트버스 패턴

이벤트 내용(source)을 이벤트 실행도구(bus)를 통해 이벤트 채널(channel)에 발행하면, 각각 채널 구독자(listener)가 구독한 채널의 알람을 받는다.  

ex) 알람서비스

 

8) 모델뷰컨트롤러 패턴

MVC로 불리며, 뇌(컨트롤러)가 order 하면 기능과 데이터(모델)가 화면(뷰)에 표시되는 것. 정보가 다 분리되고 중요한건 암호화되고, 따로 뇌만 빼서 쓴다던지, 디자인만 빼서 쓴다던지 재사용이 용이함.

ex) 대부분 웹 애플리케이션

 

9) 블랙보드 패턴

패턴추출 모델같은거임. 블랙보드에 정보(지식소스) 쌓아놓고 원하는 정보를 찾으면 컨트롤러가 빼감.

ex) 음성인식, 차량식별 등의 학습 프로그램들

 

10) 인터프리터 패턴

특정 언어로 작성된걸 해석하는 컴포넌트 설계할 때 사용.

ex) SQL 같은 DB쿼리 언어, 통신 프로토콜 정의 언어

 

 

9. 객체지향(OOP)

-> 각 객체를 조립해서 사용함. 빠르고 재사용성 좋고 유지보수 편하다. 하지만 절차형에 비해 속도는 느림

 

1) 기법

- 객체 = 이름, 상태, 관계에 따라 하나로 묶는거(데이터 + 함수)

- 클래스 = 객체의 집합, 공통속성끼리 묶고 인스턴스화 라고 부름

 

- 캡슐화(정보은닉, 관련된거 묶음)

- 다형성(각각 일하는게 아니라 통합객체에 다양한 타입이 모여서 각자응답함, 오버라이딩, 오버로딩)

- 상속성(부모-자식 형태로 자식이 부모꺼 다 갖다씀)

- 연관성(상호참조해서 씀/연관화, 분류화, 집단화, 일반화, 특수화)

 

2) 방법론

- Rumbaugh (럼바우) 방법론 : 객체(다이어그램)-동적(상태표시)-기능(자료흐름도 DFD) 로 나누어서 수행(객동기)

   이게 바로 객체 모델링 기법(OMT)

- 부치(Booch) 방법론 : 미시적-거시적 프로세스 모두 사용

- 자콥슨(Jacobson)방법론 : 유스케이스 강조해서 사용자 중심으로

- 코드와 여돈(coad & yourdon)방법론 : E-R 다이어그램 사용해서 객체의 행위를 모델링

- 와프스브록(Wirfs-Brocks) 방법론 : 분석 설계를 함께 연속적으로 한다. 고객 명세의 평가로 시작해서 설계로 끝난다.

 

3) 객체지향 설계원칙

- 단일 책임의 원칙 (SRP) (Single Responsibility Principle) - 하나의 클래스는 하나의 목적만을 위해 생성(1객체 1책임, 응집up 결합 down)

- 개방 폐쇄 원칙 (OCP) (Open Close Principle) - 확장 열려있고 변경은 닫혀있다(기능추가가능,하지만 캡슐화)

- 리스코프 치환의 원칙 (LSP) (Liskov Subsitution) - 상속 가능

- 인터페이스 분리의 원칙 (ISP) (Interface Segregation Principle) - 사용 안하는 메서드와 관계 없어야함.(독립성)

- 의존성 역전의 원칙 (DIP) (Dependency Inversion Principle) - 추상화에 의존해야지 구체화에 의존하면 안됨. 고수준 모듈이 저수준 모듈에 영향을 많이 받으면 안됨. 저수준 모듈은 빈번히 바뀌니까.

 

10. 모듈

-> 기능별로 쪼갬. 재사용, 유지보수 가능함. 독립성이 강해야함.

 

1) 품질을 높이려면

독립성 ↑ = 결합도↓ + 응집도↑

 

- 결합도 : 상호의존의 정도 / 약해야 품질이 좋아짐(자스제외공내)

자료 → 스탬프 → 제어 → 외부 → 공유 → 내용 (약한순 ~ 강한순)

- 응집도 : 강할수록 품질이 좋아짐(기순교절시논우)

기능 → 순차 → 통신 → 절차 → 시간 → 논리 → 우연 (강한순 ~ 약한순)

 

2) 제어신호

시스템 복잡도  인↑  + 아웃↓ 

 

- 팬-인 : 내가 제어(모듈로 들어오는 신호, 화살표가 들어옴)

- 팬-아웃 : 제어당함(모듈로 나가는 신호, 화살표가 나감)

 

복잡도를 낮추려면 다 나한테 들어와서 내가 관리하는게 낫지.

 

3) 공통모듈

-> 로그인 기능처럼 자주쓰는 것들

 

- 명세기법) 정확성(필요), 명확성, 완전성, 일관성(충돌방지), 추적성(출처)

 

11. 코드

-> 모듈이나 컴포넌트 식별 기능

 

- 기본기능 :  식별, 분류, 배열(나열), 표준화, 간소화

- 종류 : 순차(차례대로), 블록(조직도처럼), 10진(도서관처럼), 그룹분류(책 일련번호처럼), 연상(Mac_Air12), 표의숫자(가구치수(1200x600)처럼)

 

12. 디자인패턴(GoF : Gang of Four)

-> 설계 후 세부 구현 방안의 전형적인 예제. 비용을 줄일 수 있고, 객체지향에만 적합함.

 

- 생성(추빌백프싱) / 구조(어브컴데플프)  / 행동(메스체커인이메옵스템비)

 

  • 생성 패턴
    추상 팩토리 (Abstract Factory) 상위 클래스의 객체 생성코드를 하위클래스가 상속받는다 (상위변경 = 하위자동변경)
    빌더 (Builder) 분리된 인스턴스를 조합하여 객체 생성. 같은 객체를 생성해도 다른 결과를 도출할 수 있음
    팩토리 메소드 (Factory Method) 상위 클래스는 객체를 생성하는 인터페이스만 제공하고, 하위 클래스에서 인스턴스 생성
    프로토타입 (Prototype) Prototype 먼저 생성하고, 인스턴스를 복제하여 사용, 비용 저렴
    플라이웨이트 다수의 유사 객체 생성이 필요할 때 최대한 공유해서 사용, 메모리 절약
    싱글톤 (Singleton) 클래스 내 생성되는 인스턴스가 하나만 필요할 때 사용(동시참조X)

 

  • 구조 패턴
    어댑터(Adapter) 일치하지 않는 인터페이스 변환(전류 어댑터와 같은 역할) 기존에 구현되어 있는 클래스에 기능 발생 시 기존 클래스를 재사용할 수 있도록 중간에서 맞춰주는 역할
    브릿지(Bridge) 추상층(기능)과 구현층(구체화)을 분리하여 서로 독립적 확장 가능
    합성(Composite) 단일/복합 객체를 하나로 다루기 위해  트리구조로 구성
    데코레이터(Decorator) 클래스에 기능을 추가하기 위해 다른 객체를 덧붙이는 형태
    프록시(Proxy) 접근이 어려운 객체에 접근할 수 있도록 인터페이스 역할 수행

 

  • 행동 패턴
    중재자(Mediator) 객체간의 통제와 지시의 역할을 하는 중재자를 두어 객체지향 목표 달성하게 해줌 (상호작용을 캡슐화하여 결합도를 낮추기위해 사용)
    상태(State) 이벤트를 객체 상태에 따라 다르게 처리해야할 때 사용. 카톡 알림설정 같은 느낌
    책임 연쇄(Chain of Responsibility) 요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴. 각 객체들이 고리(Chain)으로 묶여있어 요청이 해결될 때까지 고리를 따라 책임이 넘어간다.
    커맨드(Command) 명령어를 캡슐화하여 재사용하거나 취소할 수 있도록 필요한 정보를 로그에 남기는 형태
    인터프리터(Interpreter) 언어에 문법 표현을 정의하는 패턴
    반복자(Iterator) 접근이 잦은 객체는 동일한 인터페이스를 사용하도록 하는 패턴
    메멘토(Memento) 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴이다. Ctrl+Z 기능이 이 패턴의 대표적 기능
    옵저버(Observer) 이벤트 발행과 구독, 상태 변화 전달. 한 객체의 상태가 변화하면 객체에 상속되어있는 다른 객체들에게 변화된 상태를 전달하는 패턴. 카톡의 읽음표시 같은 느낌
    전략(Strategy) 동일 계열 알고리즘 상호 교환, 독립적 사용
    템플릿 메소드(Template Method) 상위에서 인터페이스를 정의하고 하위에서 구체화시킴 (유지보수 쉬워짐)
    방문자(Visitor) 처리 기능을 별도의 클래스로 구성. 분리된 처리 기능은 각 클래스를 방문(Visit)하여 수행한다.

 

13. 시스템 인터페이스

-> 독립적으로 떨어져있는 시스템 간의 상호작용에 대한 접속방법이나 규칙을 의미.

 

1) 요구사항 분석 절차

선별 - 자료준비 - 분류 - 분석 및 명세서 구체화 - 검토

 

2) 요구사항 검증 방법

- 동료검토(peer Review) : 내가 설명해볼께! 태클 ㄱㄱ

- 워크스루(work Through) : 미리 배포할테니 봐보셈ㅇㅇ

- 인스펙션(Inspection) : 전문가님, 좀 봐주셈

- CASE 도구 활용(Computer Aided Software Engineering) : 일관성 분석을 통해 확인

 

3) 미들웨어

- 하드웨어, 프로토콜, 통신 환경 등을 연결하는 중간연결 소프트웨어

- 위치 투명성을 제공(시스템의 논리적인 명칭만으로 access가능)

 

종류) DB(데이터베이스:ODBC), REC(프로시저), MOM(메시지), TP-Monitor(트랜잭션, 빠른 속도 감시), ORB(브로커, 코바(CORBA) 표준), WAS(동적인 웹 구현)

반응형
LIST
반응형
SMALL

정보처리기사 실기 준비를 위해 개정된 2020년도부터 2022년까지의 코딩문제를 집중적으로 보기로 했다.

그 첫번째로 SQL 문제들을 가져와봤다.

문제 출처 : https://chobopark.tistory.com/291


[2022-2회] 3. H회사의 전체 제품 단가 보다 큰 제품 출력을 하고자 한다. 괄호안에 들어갈 알맞는 용어를 작성하시오.

[제품테이블]

SELECT 제조사, 제품명, 단가
FROM 제품
WHERE 단가 > (           ) (SELECT 단가 FROM 제품 WHERE 제조사='H')

▼ 정답

 

[2022-2회] 4. 다음 SQL 결과에 알맞는 답을 작성하시오.

[TABLE]



SELECT count(col2)
FROM TABLE
WHERE col1 in(2,3) or col2 in(3,5);

▼ 정답

 

[2022-2회] 12. 다음 테이블에서 πTTL(employee)에 대한 연산 결과 값을 작성하시오.

[employee테이블]

▼ 정답

더보기

1. TTL
2. 부장
3. 대리
4. 과장
5. 차장

 

[2022-1회] 4. 다음 SQL 결과에 알맞는 쿼리을 작성하시오.

SELECT name, score FROM 성적 ( 1 ) BY ( 2 ) ( 3 )

▼ 정답

더보기

1. ORDER
2. score
3. DESC

 

[2021-3회] 3. Grant의 기능에 대해 간략하게 약술하시오.

▼ 정답

더보기

사용자(User)에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어

Grant는 사용자에게 접속권한, 오브젝트 생성권한, DBA 권한 등을 부여할 수 있는 명령어이며,
Revoke는 사용자에게 부여한 권한을 다시 회수하는 명령어입니다.

 

[2021-3회] 13. 다음은, 테이블에서 조건값을 실행한 화면이다. 이에 대한 알맞는 결과값을 작성하시오. 

▼ 정답

더보기

4

cross join은 join을 해서 나올 수 있는 모든 행의 조합을 보여주는 것으로 각 결과를 곱해주면 됩니다.
즉, S로 시작하는 A.NAME의 개수는 2개, T를 포함하는 A.NAME의 개수 또한 2개이므로 2*2 = 4가 됩니다.

 

[2021-2회] 5. 다음은 테이블을 수정할때의 상황입니다. SQL 보기에서 괄호안에 알맞는 문장을 작성하시오.

(    1   ) 테이블명  (     2    )  컬럼 = 값 WHRE 점수 >= 90;

▼ 정답

더보기

1. UPDATE

2. SET

 

[2021-2회] 6. 다음 SQL 보기에서 JOIN할 경우 괄호안에 알맞는 문장을 작성하시오.

SELECT .... FROM 학생정보 a JOIN 학과정보 b (   1   ) a.학과 = b.(   2   )

▼ 정답

더보기

1. ON

2. 학과

 

[2021-2회] 10. SQL문에서 괄호안에 알맞은 답안을 작성하시오. (실제 시험에는 결과 이미지가 있습니다.)

('이름'이란 컬럼에 '이'로 시작하는 문자열을 '내림차순'하는 쿼리 결과 내용입니다.)

SELECT .... FROM ... WHERE 이름 LIKE (   1   )  ORDER BY  (    2    )

▼ 정답

더보기

1. 이%

2. DESC

 

[2021-1회] 6. 다음 SQL 실행 결과를 숫자만 쓰시오.

EMPNO SAL
100 1000
200 3000
300 1500

SELECT COUNT(*) FROM 급여
WHERE EMPNO > 100 AND SAL >= 3000 OR EMPNO = 200;

▼ 정답

 

[2020-4회] 16. 다음 조건을 만족하면서 학과별로 튜플 수가 얼마인지 구하는 SQL문을 작성하시오.

- 대소문자를 구분하지 않는다.
- WHERE 구문을 사용하지 않는다.
- GROUP BY 를 사용한다.
- 세미콜론(;)은 생략 가능하다.
- 별칭(AS)을 사용해야 한다. (별칭 사용 시 별칭은 작은 따옴표를 써야 함)
- 집계 함수를 사용해야 한다.

[학생]

학과 학생
전기 이순신
컴퓨터 안중근
컴퓨터 윤봉길
전자 이봉창
전자 강우규

[결과]

학과 학과별튜플수
전기 1
컴퓨터 2
전자 2

▼ 정답

더보기

SELECT 학과, COUNT(학과) AS 학과별튜플수 FROM 학생 GROUP BY 학과;

 

[2020-3회] 8. 다음 조건을 만족하면서, 과목별 점수의 평균이 90이 상인 과목이름, 최소점수, 최대점수를 구하는 SQL문을 작성하시오. 

- 대소문자를 구분하지 않는다.

- WHERE 구분을 사용하지 않는다.

- GROUP BY, HAVING구문을 반드시 사용한다.

- 세미콜론(;)은 생략 가능하다.

- 별칭(AS)을 사용해야 한다.

[성적]

과목코드 과목이름 학점 점수
1000 컴퓨터과학 A+ 95
2000 운영체제 B+ 85
1000 컴퓨터과학 B+ 85
2000 운영체제 B 80

[결과]

과목이름 최소점수 최대점수
컴퓨터과학 85 95

▼ 정답

더보기

SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적 

GROUP BY 과목이름 HAVING AVG(점수) >= 90;

 

[2020-3회] 9. 학생 테이블에서 이름이 민수인 튜플을 삭제하는 SQL문을 작성하시오

[학생]

학번 이름 점수 과목이름
1000 김정미 90 알고리즘
2000 강은미 95 데이터베이스
3000 홍길동 90 전산수학
4000 민수 95 운영체제

▼ 정답

더보기

DELETE FROM 학생 WHERE 이름 = '민수';

 

[2020-3회] 20. 학생 테이블에 주소 속성을 추가하는 SQL문을 작성하시오.

(    1.   ) TABLE 학생   (   2.  ) 주소 VARCHAR(20);

▼ 정답

더보기

1.ALTER

2.ADD

 

[2020-2회] 6. 학생 테이블은 학번, 이름, 학년, 수강과목, 점수, 연락처를 속성으로 가진다. 아래 조건을 만족하는 SQL문을 작성하시오.

1) 학생 테이블에서 3,4학년인 학번, 이름을 조회한다.

2) IN 연산자 사용해야 한다.

[학생]

학번 이름 학년 수강과목 점수 연락처
1000 김이름 1 수학 90 010-1111-2222
2000 장이름 2 과학 95 010-2222-2222
3000 허이름 3 미술 90 010-3333-3333
4000 조이름 4 음악 95 010-4444-4444

▼ 정답

더보기

SELECT 학번, 이름 FROM 학생 WHERE 학번 IN (3,4);

 

[2020-2회] 12. 학생 테이블의 name속성에 IDX_NAME 이름으로 인덱스 생성하는 SQL문을 작성하시오.

 STID NAME SCORE DEPTID
1000 김이름 90 1
2000 허이름 95 2
3000 조이름 90 3
4000 장이름 95 4

▼ 정답

더보기

CREATE INDEX IDX_NAME ON 학생(NAME);

 

[2020-2회] 14. SQL Injection이 무엇인지 서술하시오.

▼ 정답

더보기

응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법

 

[2020-2회] 14. SQL Injection이 무엇인지 서술하시오.

▼ 정답

더보기

응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시켜서 데이터베이스의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격 기법

 

[2020-1회] 6. STUDENT 테이블에서 컴퓨터과 학생 50명, 인터넷과 학생 100명, 사무자동화과 학생 50명의 정보가 저장되어 있을 때, 다음 SQL문의 실행 결과에 따른 튜플의 수는? (단, DEPT 칼럼은 학과명이다.)

1) SELECT DERP FROM STUDENT;

2) SELECT DISTINCT DEPT FROM STUDENT;

3) SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT = '컴퓨터과';

▼ 정답

더보기

1. 200
2. 3
3. 1

 

반응형
LIST
반응형
SMALL

+ Recent posts

반응형
LIST