use schemaTestDB;
create schema schema_A;
create schema schema_B;
create table schema_A.TBL_A(no int);
create table schema_B.TBL_B(id int);
create table schema_A.TBL_AA(code int);
SELECT * from schema_A.TBL_A;
Create table department(deptNo int not null,
deptName nvarchar(20),
location nchar(20))
select * into departmentNew from department Where 1=0;--무조건 거짓,테이블 구조만 복사
create sequence dept_seq
start with 10
increment by 10;--시퀀스를 넣어서 번호 자동 생성
insert departmentNew values(next value for dept_Seq,'경기부','서울');
insert departmentNew values(next value for dept_Seq,'인사부','인천');
insert departmentNew values(next value for dept_Seq,'전산부','수원');
insert departmentNew values(next value for dept_Seq,'영업부','대전');
select * from departmentNew;
--시퀀스현재값
select current_value from sys.sequences where name='dept_seq';
--시퀀스의 시작값을 다시 수정하기 위한 구문
alter sequence dept_seq restart with 15;
insert departmentNew values(next value for dept_Seq,'생산부','안산');
insert departmentNew values(next value for dept_Seq,'회계부','광주');
select * from departmentNew;
alter sequence dept_seq restart with 35 increment by 5;
insert departmentNew values(next value for dept_Seq,'회계부1','광주');
insert departmentNew values(next value for dept_Seq,'회계부2','광주');
select * from departmentNew;
--시퀀스의 반복
create sequence dept_seq1
start with 100 increment by 100
minvalue 100
maxvalue 500
cycle; --반복설정
insert departmentNew values(next value for dept_Seq1,'생산부1','서울');
insert departmentNew values(next value for dept_Seq1,'인사부1','인천');
insert departmentNew values(next value for dept_Seq1,'전산부1','수원');
insert departmentNew values(next value for dept_Seq1,'영업부1','대전');
insert departmentNew values(next value for dept_Seq1,'영업부2','대전');
insert departmentNew values(next value for dept_Seq1,'영업부3','대전');
select * from departmentNew;
--테이블 생성시에 시퀀스 활용법
create sequence auto_seq
start with 1
increment by 1;

create table seqTest(no int default(next value for auto_seq), name nchar(30));

insert seqTest(name) values('김동길');
insert seqTest(name) values('김말길');
insert seqTest(name) values('김동말');
select * from seqTest

--변수선언
/* 변수선언형식:
Declare @변수명 데이터형식;
변수에 값대입:
@변수명 = 값;
변수의값출력:
select @변수이름;
*/

Declare @aaa int;
declare @bbb smallint, @ccc decimal(4,2);
declare @ddd nchar(20);
set @aaa=10;
set @bbb =5;
set @ccc=10.33;
set @ddd = '이름:';
select @aaa;
select @bbb + @ccc;
select @aaa,* from departmentNew;
select top(@bbb) deptName,* from departmentNew;

--if 문

declare @var1 int;
set @var1 = 10;
if @var1 = 10
begin
print '@var1이 10이다'
end
else
begin
print '@var1이 10이아니다'
end;

--변수 초기화
declare @var2 int =100;
select @var2;

declare @score int =78,@res nchar(1)
if @score >= 90
set @res = 'A'
else if @score >= 80
set @res='B'
else if @score >= 70
set @res='C'
else if @score >= 60
set @res='D'
else
set @res='F'
print '점수:' + cast(@score as nchar(30));
print N'학점:' + @res; --한글이기때문에 N을 넣어야함.

--case
declare @score int = 100,@res  nchar(1);
set @res =
case 
when(@score >= 90) then 'A'
when(@score >= 80) then 'B'
when(@score >= 70) then 'C'
when(@score >= 60) then 'D'
else 'F'
end
print '점수:' + cast(@score as nchar(30));
print N'학점:' + @res; --한글이기때문에 N을 넣어야함.


select name,price,case 
when (amount >=80) then '최고인기상품'
when (amount >=50) then '인기상품'
when (amount >= 30) then '추천상품'
else '보통상품'
end as '상품등급'
from products;

--반복문 : while / break / continue / return
/*
while 조건
begin
SQL명령문
end
*/
declare @i int = 0 ,@sum int =0
while(@i<=100)
begin
set @sum += @i
set @i += 1
end

select @sum;


declare @i int = 1,@sum int =0;

while(@i <=100)
begin
if(@i % 3 =0)
begin
print '3의배수:' + cast(@i as char(3))
set @i += 1
continue --while end문으로 이동
end
set @sum  += @i --3의배수시 실행않됨
if(@sum>2000) break --3의배수시 실행않됨,while문을 빠져나옴
set @i += 1 --3의배수시 실행않됨
end;

print '합계:' + cast(@sum as char(10))



--goto : 제한적으로사용,지정한위치로 이동

declare @i int = 1,@sum int =0;

while(@i <=100)
begin
if(@i % 3 =0)
begin
print '3의배수:' + cast(@i as char(3))
set @i += 1
continue --while end문으로 이동
end
set @sum  += @i --3의배수시 실행않됨
if(@sum>2000) goto aa --3의배수시 실행않
set @i += 1 --3의배수시 실행않됨
end

aa:

print '합계:' + cast(@sum as char(10))

--waitfor 실행을 잠시 멈추고 기다림
--waitfor time,waitfor delay

begin 
waitfor delay '00:00:03'
print '3초간 일시정지후 실행합니다..'
end
begin 
waitfor time '12:30'
print '정해진시간에 실행합니다...'
end
--예외 처리(try catch문)
/*
begin try
sql 명령
end try
begin
catch
오류시실행될 명령
end
catch
*/
begin try
insert departmentNew values('테스트','','');
print '정상처리되었습니다..'
end try

begin catch
print '오류발생'
print '오류번호:'
print error_number()
print '오류메세지'
print error_message()
print '오류라인'
print error_line() 
end catch
--오류발생시 사용할 함수 제공
/*
.error_number():오류번호
.error_message():오류메세지
.error_serverity():오류심각성
.error_state():오류 상태
.error_line():오류라인
.error_procesude():오류발생 프로시저나 트리거 이름을 알려줌.
*/

--오류를 강제로 발생시키는 함수
--raiserror,throw
--오류의 심각도(0~18까지,기본값은 16)
--raiserror(메세지,심각도,상태)
--throw(메세지,상태)

raiserror('오류발생',16,1);
throw 50000,'오류발생',1;--예외번호는 50000이상

--execute(exec),스파이스열,임시테이블
--exec, execute:SQL문을 실행시키는 명령어
declare @sql varchar(100);
set @sql = 'select * from departmentnew where deptno = 10' 
exec(@sql);

--테이블의 명칭 : tbl_04_12,tbl_04_13,동적으로 테이블을 만들어서 사용가능

declare @todayDate Date
declare @Month varchar(2)
declare @day varchar(2)
declare @sql varchar(100)
set @todayDate = getDate()
set @Month = month(@todayDate)
set @day = day(@todayDate);
set @sql = 'create table test_' + @Month + '_' + @day
set @sql += '(no int,name char(10))'
exec(@sql);

--스파스열 : null값이 많이 들어가는 열의 저장공간을 낭비하지 않게 하기위해서 지정하는 열
--키워드 : sparse   5만건 기준으로 약 1/5수준으로 저장공간을 사용

create table aaa(
no int identity,
name char(100) null
);
go
create table sparseTbl(
no int identity,
name char(100) sparse null
);

declare @i int =0
while @i<10000
begin
insert aaa values(null);
insert aaa values(null);
insert aaa values(null);
insert aaa values(null);
insert aaa values(REPLICATE('s',100));
--sparse테이블
insert sparseTbl values(null);
insert sparseTbl values(null);
insert sparseTbl values(null);
insert sparseTbl values(null);
insert sparseTbl values(REPLICATE('s',100));
set @i += 1;
end


--임시테이블
--#테이블명 하나 사용 : 생성한 사용자만 사용가능 --쿼리차이 닫히면 사라짐.
--##테이블명 두개 사용 : 모든 사용자가 사용가능  --쿼리창이 닫히고 사용자가 없으면 사라짐.

create table #tempTbl1 
(
no int,name nchar(10)
);
create table ##tempTbl2(
no int,name nchar(10)
);

insert #tempTbl1 values(1,'테이블#1');
insert ##tempTbl2 values(1,'테이블#2');

select * from #tempTbl1
select * from ##tempTbl2
--뷰테이블
select * into copy_departmentnew from departmentnew --테이블 복사
select * from copy_departmentnew
select deptNo,DeptName,location from departmentNew
create view depart_View as 
select deptNo,DeptName,location from departmentNew 
where location ='서울'
select * from depart_View
exec sp_helptext depart_View; --뷰에 정의된 내용을 보수 있음.
Insert depart_View values(1100,'회계부','서울') --뷰를 통해서도 저장이됨.

--복잡한 쿼리문을 단순화해서 사용하기 위해서도 뷰를 사용
select deptNo,DeptName,location from departmentNew
create table emp(no int default(next value for auto_seq), name nchar(30),deptNo int);
insert emp(name,deptNo) values('김동길1','10');
insert emp(name,deptNo) values('김동길2','20');
insert emp(name,deptNo) values('김동길3','30');
insert emp(name,deptNo) values('김동길4','40');
insert emp(name,deptNo) values('김동길5','50');
insert emp(name,deptNo) values('김동길6','60');
insert emp(name,deptNo) values('김동길7','70');
insert emp(name,deptNo) values('김동길8','80');
insert emp(name,deptNo) values('김동길11','100');
insert emp(name,deptNo) values('김동길12','15');
insert emp(name,deptNo) values('김동길13','25');
insert emp(name,deptNo) values('김동길14','35');
insert emp(name,deptNo) values('김동길15','40');
insert emp(name,deptNo) values('김동길16','100');
insert emp(name,deptNo) values('김동길17','300');
insert emp(name,deptNo) values('김동길18','400');

select e.no,e.name,d.deptNo,d.deptName,d.location from emp e, departmentNew d where e.deptNo = d.deptNo

create view emp_dept_view as
select e.no,e.name,d.deptNo,d.deptName,d.location from emp e, departmentNew d 
where e.deptNo = d.deptNo and d.deptName = '영업부'

select * from emp_dept_view
exec sp_helptext emp_dept_view; --뷰에 정의된 내용을 보수 있음.
exec sp_help emp_dept_view;--뷰에 구조를 보여줌
create view emp_enc with encryption as
select e.no,e.name,d.deptNo,d.deptName,d.location from emp e, departmentNew d 
where e.deptNo = d.deptNo and d.deptName = '영업부'
exec sp_helptext emp_enc; --암호화 되어있어 뷰를 볼 수 없음.
exec sp_help emp_enc; --암호화되어있어도 구조는 확인가능
drop view emp_dept_view--뷰삭제
select * from sys.sql_modules --정의된 모든 뷰를 볼수 있음,테이블이름이 않나옴..
select object_name(object_id) as emp_dept_view,definition,* from sys.sql_modules --테이블명까지 나오나 암호화되어있은 뷰는 못 봄.

--뷰를 수정
alter view emp_dept_view as
select * from emp Where deptNo=40 with check Option; --40번에 해당하는 건만 수정,저장 가능.

--인덱스 : 데이터의 변경 작업이 자주 일어날 경우에는 성능이 나빠질 수 있다.
--Page,extent
/*
페이지 : 데이터를 저장하는 기본단위(8kb)
헤더,Data rows,Row Offset으로 구성

헤더:이전페이지와 가음페이지의 정보가 포함.
Data rows:실제 데이터가 저장되는 영역
Row Offset: 각행의 첫 번째 바이트가 페이지의 시작에서 얼마나 떨어져 있는지에 대한 정보를 포함하고 있다.

페이지 종류
.데이터 페이지 : 데이터를 저장하기 위한 페이지
.인덱스 페이지 : 인데스를 저장하는 페이지

익스텐트(extent)
:테이블이나 인덱스가 저장되는 기본단위, 8개의 페이지가 모여서 하나의 익스텐트를 이룬다.

단일 익스텐트 : 하나의 개체만 할당된 익스텐트
혼합 익스텐트 : 하나 이상의 개체의 페이지가 들어 있는 익스텐트

--인덱스의 구조
:인덱스는 기본적으로 정렬 되어있다.
인덱스는 B-tree구조로 구성되어 있다.
*/
--인덱스 유형

--clustered 인덱스(물리적으로 데이터를 정렬 시킴)
/*
:원하는 컬럼에 클러스터드 인덱스를 만들게 되면 기본적으로 데이터를 정렬을 시킨다.(오름차순으로 정렬)
.한테이블에 하나의 클러스터드 인덱스만 만들수있다.
.기본키를 만들게 되면 기본키에 클러스터드 인덱스가 만들어진다.
(기본키에는 넌클러스터드 인덱스를 만들 수 도 있다.)
.수정삭제 발생시 논클러스터드 보다 느리다.(데이터 재정렬 때문)
*/

--non clustered 인데스(논리적으로 데이터를 정렬 시킴)
/*
:원하는 컬럼에 넌클러스터드 인덱스를 만들게 되면, 데이터 페이지의 위치정보를 인덱스로 구성하게된다.
.한테이블에 만들 수 있는 넌 클러스터드 인덱스는 여러개가 가능
.기본적으로 클러스터드 인덱스 보다 검색 속도가 느리다.
*/
create table tbl01(aa int primary key, bb int, cc int);
--인덱스 정보확인 프로시져
exec sp_helpIndex tbl01

create table tbl02(aa int primary key, bb int unique, cc int unique,dd int);
exec sp_helpIndex tbl02 --aa는 클러스터드 인덱스,bb,cc는 넌 클러스터드 인덱스가 자동으로 생성

--기본키에도 넌 클러스터드 인덱스 설정 가능
create table tbl03(aa int primary key nonclustered,bb int unique,cc int unique,dd int);
exec sp_helpindex tbl03;

create table tbl04(aa int primary key nonclustered,bb int unique clustered,cc int unique,dd int)
exec sp_helpindex tbl04;

create table clusteredTbl(
id char(8) not null,
name NVARCHAR(10) not null);

insert clusteredTbl values('LL','김말똥');
insert clusteredTbl values('FF','홍길동');
insert clusteredTbl values('AA','김말똥2');
insert clusteredTbl values('BB','김말똥3');
insert clusteredTbl values('DD','김말똥4');
insert clusteredTbl values('HH','김말똥5');
insert clusteredTbl values('MM','김말똥6');
insert clusteredTbl values('OO','김말똥7');
insert clusteredTbl values('JJ','김말똥8');
insert clusteredTbl values('BB','김말똥9');
insert clusteredTbl values('II','김말똥10');
delete from clusteredTbl where name = '김말똥9'
select * from clusteredTbl

Alter table clusteredTbl
add constraint PK_clu_id primary key(id);
select * from clusteredTbl

create table noncluTbl(
id char(8) not null,
name nVarchar(8) not null
)

insert noncluTbl values('LL','김말똥');
insert noncluTbl values('FF','홍길동');
insert noncluTbl values('AA','김말똥2');
insert noncluTbl values('BB','김말똥3');
insert noncluTbl values('DD','김말똥4');
insert noncluTbl values('HH','김말똥5');
insert noncluTbl values('MM','김말똥6');
insert noncluTbl values('OO','김말똥7');
insert noncluTbl values('JJ','김말똥8');
insert noncluTbl values('KK','김말똥9');
insert noncluTbl values('II','김말똥10');
select * from noncluTbl
alter table noncluTbl
add constraint UK_non_id unique(id)
insert clusteredTbl values('gg','조관우')
insert clusteredTbl values('HA','김장비')
select * from clusteredTbl
insert noncluTbl values('gg','조관우')
insert noncluTbl values('HA','김장비')
select * from noncluTbl


create table ccc(
id char(8) not null,
name nvarchar(10) not null,
address nchar(10)
)

insert ccc values('LL','김말똥'  ,'서울 강서구1' );
insert ccc values('FF','홍길동'  ,'서울 강서구2' );
insert ccc values('AA','김말똥2'  ,'서울 강서구3');
insert ccc values('BB','김말똥3'  ,'서울 강서구4');
insert ccc values('DD','김말똥4'  ,'서울 강서구5');
insert ccc values('HH','김말똥5'  ,'서울 강서구6');
insert ccc values('MM','김말똥6'  ,'서울 강서구7');
insert ccc values('OO','김말똥7'  ,'서울 강서구8');
insert ccc values('JJ','김말똥8'  ,'서울 강서구9');
insert ccc values('KK','김말똥9'  ,'서울 강서구10');
insert ccc values('II','김말똥10' ,'서울 강서구11');
select * from ccc 
alter table ccc
add constraint PK_mix_id
primary key(id)

alter table ccc 
add constraint UK_mix_name
unique(name)
exec sp_helpindex ccc


select address from ccc where name = '김말똥'

--알아두어야할 용어
/*
Table scan : 데이터페이지를 처음부터 끝까지 검색하는 방식
인덱스가 없을 경우에 주로 사용하는 방식
Index seek : 넌클러스터드 인덱스에서 데이터를 찾는 방식

RID lookup : 넌클러스터드 인덱스에서 키를 검색 한 후, 실제 데이터 페이지를 찾는 다라는 의미

Clustered Index seek : 클러스터드 인덱스에서 데이터를 찾는 방식

Key lookup : 넌 클러스터드 인덱스에서 키를 검색한 후 클러스터드 인덱스에서 데이터를 찾는 방식

Clustered Index Scan : table scan방식과 비슷한 개념으로 전체를 찾아본다는 의미
 
*/

select * from ccc where id = 'aa'
select * from ccc

--인덱스를 직접 생성하는 방법
/*
create [unique][clustered | nonclustered] index 인덱스명 
on 테이블명(column [asc | desc]) 

PAD_INDEX : 기본값은 OFF,ON으로 설정되면 FILLFACTOR에 페이지 여유분을 설정할 수 있다.
FILLFACTOR : 페이지의 여유분을 설정한다.

예>with fillfactor 80 ->페이지에 20%의 여유분을 두겠다는 의미

    .sort_in_tempDB : 기본값은 OFF,ON설정하면 디스크의 분리효과가 생긴다.
.online : 기본값은 OFF,ON 설정시 인덱스 생성중에서 기본 테이블에 쿼리가 가능하도록 하는 옵션


*/
--인덱스를 변경하는 방법
/*
alter index [인덱스 명 | all] on 테이블명 rebuild 옵션:인덱스를 삭제하고 다시 생성하는 옵션
예> alter index all on ccc
rebuild
with (online = on)

reorganize : 인덱스를 다시 구성하는 옵션(삭제하지 않고, 즉 조각모음)
*/

--인덱스 삭제
/*
delete index 테이블명.인덱스명
.primary key, unique 제약조건으로 자동생성된 인덱스는 drop index로 제거 할 수 없다.
이경우에는 alter table 구문으로 제약조건을 삭제하면 인덱스가 삭제된다.
.시스템 테이블의 인덱스는 drop index구문으로 삭제 할 수없다.
.혼합형 테이블에서 인덱스를 제거할 경우에는 넌클러스터드 인덱스를 제거하는 것이 좋다.
*/
select * from ccc

exec sp_helpindex ccc;

alter table ccc
drop UK_mix_name;--인덱스 삭제

create index idx_name on ccc(name)
exec sp_helpindex ccc;

create unique index idx_name on ccc(name); --네임에 유니크를 추가

--트랜잭션 : 하나의 논리적인 작업단위로 여러명령의 묶음.
--여러명령의 묶음 : insert/update/delete 명령들의 묶음이라도 봐도 된다.

--예
begin transaction --자동으로 sql server에서 붙인다.
update ccc set address='경기도 시흥' where id = 'aaa';
commit transaction --자동으로 sql server에서 붙인다.

--commit : 데이터베이스에 반영을 하겠다는 명령 


--예
begin transaction --사용자가 명시
update ccc set address='경기도 시흥1' where id = 'aaa';
update ccc set address='경기도 시흥2' where id = 'bbb';
update ccc set address='경기도 시흥3' where id = 'ddd';
commit transaction --사용자가 명시
--commit : 데이터베이스에 반영을 하겠다는 명령

create table cccc(
number int 
);

insert cccc values(10);
insert cccc values(20);
insert cccc values(30);

begin tran 
Update cccc set number =10 where number=100;
Update cccc set number =20 where number=200;
Update cccc set number =30 where number=300;
commit tran

select * from cccc

--현재 실행 중인 트랜잭션의 갯수를 알아보기위한 함수
--시스템 함수 @@trancount
select @@TRANCOUNT

--다른 쿼리창에서 select * from cccc 실행해도 트랜잭션이 진행중일 경우 않보임
--트랜잭션 중일 경우에는 해당 테이블에 Lock을 발생시킴.
--따라서 다른 사용자가 접근 할 수 없게 된다.
--ctrl + alt + del키를 누른다.
--만약 LOCK을 해제하면 볼수 있는데 해제하는 방법은 
--alter database sampleDB set allow_snapshot_isolation on;
--set transaction isolation level snapshot;
--원상태는
--alter database sampleDB set allow_snapshot_isolation off;

--구문형식
/*
begin tran
SQL 명령...
Commit tran(=commit work)

.commit tran : 트랜잭션의 이름을 지정해서 commit을 시킬 수 있다.
.commit work : 현재 실행중인 트랜잭션 중에서 가장 가까운 트랜잭션만을 커밋 시킨다.
.rollback tran: 트랜잭션을 취소
트랜잭션의 내용이 길 경우 중간에 위치를 지정해서
그 지점까지의 저장 할 수 있다.
.save tran 저장지점
*/

--트랜잭션의 종류
/*
자동 커밋 트랜재션 : 자동적으로 begin tran 과 commit tran을 명시하는 방식
SQL Server에서는 자동 커밋을 디폴트로 사용한다.
명시적 트랜잭션 : 사용자가 직접 begin tran과 commit tran,rollback tran을 명시하는 방식.
묵시적(암시적(트랜잭션):쿼리문을 실행했을 때 자동으로 begin tran을 명시하지만, commit tran,rollback tran은
자동으로 명시하지 않는 방식(사용자가 직접 commit tran을 결정하는 방식)

설정방법 : set implict transaction on 

alter table, fetch, revoke, create, grant, select, delete, insert,update,truncate table,drop,open
암시적 트랜잭션이 한번이 수행되면,commit이나 rollback명령이 수행되기 전까지는 암시적트랜잭션이 중복되어 시작되지 않는다.
*/

create table tran_ex2(
name varchar(10),
money int,

constraint CK_money check(money >= 0)
);

INSERT tran_ex2 values('유비',1000);
INSERT tran_ex2 values('장비',2000);

select * from tran_ex2

--유비가 장비에게 500원을 송금하는 예
begin
update tran_ex2 set money=money-500 where name='유비';
commit tran

begin
update tran_ex2 set money=money + 500 where name='장비';
commit tran
--유비가 장비에게 800원을 송급처리
begin
update tran_ex2 set money = money - 800 where name='유비';
update tran_ex2 set money = money + 800 where name='장비';
commit tran

--check 조건:money >=0 ->논리적인 오류 rollback이 실행되지 않는다.
--이러한 논리적인 오류가 발생했을 경우에는 
--예외 처리를 한다. begin try ~end try begin catch ~ end catch를 이용한다.
begin try 
begin tran
update tran_ex2 set money = money - 500 where name='유비';
update tran_ex2 set money = money + 500 where name='장비';
commit tran
print '송금처리가 되었습니다.'
end try
begin catch
rollback tran
print '잔액이 부족합니다.'
end catch
-------이상 5강------------
--단순한 레코드 증가용 테이블
create table tran_ex3(
no int identity 
);
--트랜잭션의 갯수를 저장하는 테이블
create table tran_ex4(
no int,
tranCnt int
);


--트리거 만들기
CREATE TRIGGER trancnt
on tran_ex3
for insert
as
declare @no int;
select @no = no from inserted;
insert tran_ex4 values(@no,@@TranCount);

insert tran_ex3 default values;

SELECT * from tran_ex3
SELECT * from tran_ex4

begin tran
begin tran
print '트랜잭션의수:' + cast(@@tranCount as char(3));
commit tran
print '트랜잭션의 수:' + cast(@@trancount as nchar(3));
commit tran

print '트랜잭션의 수:' + cast(@@trancount as nchar(3));



CREATE TABLE TRAN_ROLLback_EX1(
NO INT
);
INSERT TRAN_ROLLBACK_EX1 VALUES(10);

BEGIN TRAN --모든 TRAN 롤백
UPDATE TRAN_ROLLBACK_EX1 SET NO = 100;
BEGIN TRAN
UPDATE TRAN_ROLLBACK_EX1 SET NO =200;
SELECT * FROM TRAN_ROLLBACK_EX1;
ROLLBACK TRAN
SELECT * FROM TRAN_ROLLBACK_EX1;
ROLLBACK TRAN
SELECT * FROM TRAN_ROLLbACK_EX1;

--SAVA TRAN 문응용 : TRAN별로 롤백
BEGIN TRAN
UPDATE TRAN_ROLLback_EX1 SET NO =100;
SAVE TRAN [POS1]
BEGIN TRAN
UPDATE TRAN_ROLLBACK_EX1 SET NO = 200;
SELECT * FROM TRAN_ROLLback_EX1;
ROLLBACK TRAN[POS1]
SELECT * FROM TRAN_ROLLback_EX1;
ROLLBACK TRAN
SELECT * FROM TRAN_ROLLback_EX1
--이상6강

SET  IMPLICIT_transactions on;

CREATE table Tran_tbl( --암시적트랜잭션이 시작되는 지점
no int
);
go

insert Tran_tbl values(10);
insert Tran_tbl values(20);

select * from Tran_tbl --create부터 같이 실행시 다른쿼리창에서 select문이 실행이 않됨.
rollback tran

SELECT @@TRANCOUNT;
SELECT * FROM Tran_tbl;

begin tran
INSERT Tran_tbl values(10)
select @@TRANCOUNT;
commit tran;
begin tran
INSERT Tran_tbl values(20)
select @@TRANCOUNT;
rollback tran; --위의 tran까지 취소

SELECT @@TRANCOUNT;

set implicit_transactions off;

--이상 7강
/*
CREATE PROCEDURE 프로시져이름
as
SQL ..

프로시져 실행
exe 프로시져명

프로시져 수정/삭제
alter procedure /drop procedure 

매개변수 : 프로시저를 생성할때 매개변수를 지정한다.

입력매개변수 지정
@입력 매개 변수이름 데이터 형식

입력매개변수가 있는 프로시저 실행
execute 프로시져명 [매개변수에 전달 될 값]

출력매개변수 지정
@출력변수이름 데이터형식 output

출력매개변수가 있는 프로시저를 실행
execute 프로시저명 @변수명 output
*/


SELECT * FROM seqTest

--프로시저 생성
create procedure pr_1
@empName nvarchar(10)

as
SELECT * FROM seqTest ;

--프로시저 수정
alter procedure pr_1
@empName nvarchar(10)

as
SELECT * FROM seqTest WHERE name like @empName;

exec pr_1 ''

create procedure pr_4
@text nchar(10),
@outNum int Output
as
insert pr_Tbl values(@text);
select @outNum = IDENT_CURRENT('pr_tbl'); --pr_Tbl의 현재 identity 값

create table pr_tbl(
no int identity,
text char(10)
);

declare @n int;

exec pr_4 'number 1', @n output

SELECT * from pr_Tbl

--이상 8강




'IT' 카테고리의 다른 글

Mobile software development lifecycle  (0) 2019.08.01
모바일 소프트웨어 개발 수명 주기  (0) 2019.07.31
What is Xamarin?  (0) 2019.07.25
Xamarin이란?  (0) 2019.07.25
갤럭시노트10 5G 사전예약 출시 알림 신청  (0) 2019.07.15

출처 - 마이크로 소프트

What is Xamarin?

Building mobile apps can be as easy as opening up the IDE, writing and testing an app, and submitting to an App Store – all done in an afternoon. Or it can be an extremely involved process that involves rigorous up-front design, usability testing, QA testing on thousands of devices, a full beta lifecycle, and then deployment a number of different ways.

This document introduces the Xamarin platform. To learn more about the process of building mobile applications from design through to testing, see Introduction to the Mobile Software Development Lifecycle.

See system requirements to confirm your system.

Introduction to Xamarin

When considering how to build Android and iOS applications, many people think that the native languages, Objective-C, Swift, Java, and Kotlin, are the only choice.

Xamarin allows you develop in C#, with a class library and runtime that works across all many platforms, including iOS, Android, and Windows, while still compiling native (non-interpreted) applications that are performant enough even for demanding games.

Xamarin combines all of the abilities of the native platforms and adds a number of powerful features of its own, including:

  1. Complete Binding for the underlying SDKs – Xamarin contains bindings for nearly the entire underlying platform SDKs in both iOS and Android. Additionally, these bindings are strongly-typed, which means that they’re easy to navigate and use, and provide robust compile-time type checking and during development. This leads to fewer runtime errors and higher-quality apps.
  2. Objective-C, Java, C, and C++ Interop – Xamarin provides facilities for directly invoking Objective-C, Java, C, and C++ libraries, giving you the power to use a wide array of 3rd party code that has already been created. This lets you take advantage of existing iOS and Android libraries written in Objective-C, Java, or C/C++. Additionally, Xamarin offers binding projects that allow you to easily bind native Objective-C and Java libraries using a declarative syntax.
  3. Modern Language Constructs – Xamarin applications are written in C#, a modern language that includes significant improvements over Objective-C and Java such as *Dynamic Language Features, Functional Constructs such as *Lambdas, *LINQ,Parallel Programming features, sophisticated *Generics, and more.
  4. Amazing Base Class Library (BCL) – Xamarin applications use the .NET BCL, a large collection of classes that have comprehensive and streamlined features such as powerful XML, Database, Serialization, IO, String, and Networking support, and more. Existing C# code can be compiled for use in an app, which provides access to thousands of libraries that allow you do things that aren’t covered in the BCL.
  5. Modern Integrated Development Environment (IDE) – Xamarin uses Visual Studio for Mac on macOS and Visual Studio on Windows. These are both modern IDEs that include features such as code auto completion, a sophisticated Project and Solution management system, a comprehensive project template library, integrated source control, and many others.
  6. Mobile Cross Platform Support – Xamarin offers sophisticated cross-platform support for the three major mobile platforms of iOS, Android, and Windows. Applications can be written to share up to 90% of their code, and our Xamarin.Mobile library offers a unified API to access common resources across all three platforms. This can significantly reduce both development costs and time to market for mobile developers that target the three most popular mobile platforms.

Because of Xamarin’s powerful and comprehensive feature set, it fills a void for application developers that want to use a modern language and platform to develop cross-platform mobile applications.

 참고

This Get Started series focuses on getting started building iOS and Android applications. Microsoft offers information about Universal Windows Platform (UWP) development for tablets and desktops. To learn more about cross-platform development with Xamarin (including UWP apps for Windows), read the Building Cross-Platform Applications guide.

How does Xamarin work?

Xamarin offers two commercial products: Xamarin.iOS and Xamarin.Android. They’re both built on top of Mono, an open-source version of the .NET Framework based on the published .NET ECMA standards. Mono has been around almost as long as the .NET framework itself, and runs on nearly every imaginable platform including Linux, Unix, FreeBSD, and macOS.

On iOS, Xamarin’s Ahead-of-Time ( AOT) Compiler compiles Xamarin.iOS applications directly to native ARM assembly code. On Android, Xamarin’s compiler compiles down to Intermediate Language ( IL), which is then Just-in-Time ( JIT) compiled to native assembly when the application launches.

In both cases, Xamarin applications utilize a runtime that automatically handles things such as memory allocation, garbage collection, underlying platform interop, etc.

Xamarin.iOS.dll and Mono.Android.dll

Xamarin applications are built against a subset of the .NET BCL known as the Xamarin Mobile Profile. This profile has been created specifically for mobile applications and packaged in the Xamarin.iOS.dll and Mono.Android.dll (for iOS and Android respectively). This is much like the way Silverlight (and Moonlight) applications are built against the Silverlight/Moonlight .NET Profile. In fact, the Xamarin Mobile profile is equivalent to the Silverlight 4.0 profile with a bunch of BCL classes added back in.

For a full list of available assemblies and classes, see the Xamarin.iOS Assembly List and the Xamarin.Android Assembly List

In addition to the BCL, these .dlls include wrappers for nearly the entire iOS SDK and Android SDK that allows the underlying SDK APIs to be invoked directly from C#.

Application output

When Xamarin applications are compiled, the result is an Application Package, either an .app file in iOS, or .apk file in Android. These files are indistinguishable from application packages built with the platform's default IDEs and are deployable in the exact same way.

Next steps

Now you've learned a little about how Xamarin works, the next step is to start building an app using one of these guides:

출처 - 마이크로 소프트

Xamarin이란?

모바일 앱 빌드는 IDE를 열고, 앱을 작성 및 테스트하고, 앱 스토어에 제출하는 것처럼 쉽게 수행할 수 있습니다. 모든 작업이 그 날 완료됩니다. 또는 엄격한 사전 설계, 유용성 테스트, 수천 대의 디바이스에서 QA 테스트, 전체 베타 주기 및 여러 가지 다른 방식의 배포가 포함된 매우 복잡한 프로세스일 수 있습니다.

이 문서에서는 Xamarin 플랫폼을 소개합니다. 설계부터 테스트에 이르는 모바일 애플리케이션을 빌드하는 프로세스에 대한 자세한 내용은 모바일 소프트웨어 개발 수명 주기 소개를 참조하세요.

시스템을 확인하려면 시스템 요구 사항을 참조하세요.

Xamarin 소개

Android 및 iOS 애플리케이션을 빌드하는 방법을 고려할 때, 많은 사람은 Objective-C, Swift, Java 및 Kotlin와 같은 기본 언어가 유일한 선택이라고 생각합니다.

Xamarin을 사용하면 까다로운 게임을 실행할 만큼 충분한 성능을 갖춘 네이티브(해석되지 않은) 애플리케이션을 계속 컴파일하면서, iOS, Android 및 Windows를 비롯한 많은 플랫폼에서 작동하는 클래스 라이브러리 및 런타임을 사용하여 C#으로 개발을 진행할 수 있습니다.

Xamarin은 네이티브 플랫폼의 모든 기능을 결합하고 다음과 같은 강력한 여러 기능을 추가적으로 제공합니다.

  1. 기본 SDK에 대한 전체적인 바인딩 - Xamarin에는 iOS 및 Android에서 거의 모든 기본 플랫폼 SDK에 대한 바인딩이 포함되어 있습니다. 또한 이러한 바인딩은 강력한 형식이므로 탐색 및 사용하기 쉽고 개발 중에도 강력한 컴파일 시간 형식 확인을 제공합니다. 이로 인해 런타임 오류가 줄어들고 앱의 품질이 향상됩니다.
  2. Objective-C, Java, C 및 C++ Interop - Xamarin은 Objective-C, Java, C 및 C++ 라이브러리를 직접 호출할 수 있는 기능을 제공하므로 이미 생성된 다양한 타사 코드를 사용할 수 있습니다. 이를 통해 Objective-C, Java 또는 C/C++로 작성된 기존 iOS 및 Android 라이브러리를 활용할 수 있습니다. 또한 Xamarin은 선언적 구문을 사용하여 네이티브 Objective-C 및 Java 라이브러리를 쉽게 바인딩할 수 있는 바인딩 프로젝트를 제공합니다.
  3. 현대적인 언어 구문 - Xamarin 애플리케이션은 *Lambdas, *LINQ, 병렬 프로그래밍 기능, 정교한 *제네릭과 같은 기능적 구문, *동적 언어 기능과 같은 Objective-C 및 Java보다 크게 향상된 기능을 포함하는 현대적인 언어인 C#으로 작성됩니다.
  4. 뛰어난 BCL(기본 클래스 라이브러리) - Xamarin 애플리케이션은 강력한 XML, 데이터베이스, 직렬화, IO, 문자열 및 네트워킹 지원 등과 같은 포괄적이고 간소화된 기능을 갖춘 방대한 클래스의 컬렉션인 .NET BCL을 사용합니다. 기존 C# 코드를 앱에서 사용할 수 있도록 컴파일할 수 있으며 수천 개의 라이브러리에 액세스할 수 있으므로 BCL에서 다루지 않은 것도 수행할 수 있습니다.
  5. 현대적인 IDE(통합 개발 환경) - Xamarin은 MacOS에서 Mac용 Visual Studio를 사용하고 Windows에서 Visual Studio를 사용합니다. 코드 자동 완성, 정교한 프로젝트 및 솔루션 관리 시스템, 포괄적인 프로젝트 템플릿 라이브러리, 통합 소스 제어 및 기타 여러 기능을 포함하는 현대적인 IDE입니다.
  6. 모바일 플랫폼 간 지원 - Xamarin은 iOS, Android 및 Windows의 세 가지 주요 모바일 플랫폼에 대해 정교한 플랫폼 간 지원을 제공합니다. 애플리케이션은 코드의 최대 90%를 공유하도록 작성할 수 있으며 Xamarin.Mobile 라이브러리는 세 가지 모든 플랫폼 간에 공통의 리소스에 액세스할 수있는 통합 API를 제공합니다. 이를 통해 가장 널리 사용되는 세 가지 모바일 플랫폼을 대상으로 하는 모바일 개발자의 개발 비용과 출시 시간을 크게 줄일 수 있습니다.

Xamarin의 강력하고 포괄적인 기능 집합으로 인해, 플랫폼 간 모바일 애플리케이션을 개발하기 위해 현대적인 언어 및 플랫폼을 사용하려는 애플리케이션 개발자에게 도움이 됩니다.

 참고

이 시작 시리즈에서는 iOS 및 Android 애플리케이션 빌드를 시작하는 데 중점을 둡니다. Microsoft는 태블릿 및 데스크톱용 UWP(유니버설 Windows 플랫폼) 개발에 대한 정보를 제공합니다. Xamarin(Windows용 UWP 앱 포함)을 사용한 플랫폼 간 개발에 대한 자세한 내용은 플랫폼 간 애플리케이션 빌드 가이드를 읽어 보세요.

Xamarin 작동 방식

Xamarin은 Xamarin.iOS 및 Xamarin.Android라는 두 가지 상업용 제품을 제공합니다. 둘 다 게시된 .NET ECMA 표준을 기반으로 한 .NET Framework의 오픈 소스 버전인 Mono를 기반으로 합니다. Mono는 .NET Framework만큼 오래되었으며 Linux, Unix, FreeBSD, MacOS 등 떠올릴 수 있는 거의 모든 플랫폼에서 실행됩니다.

iOS, Xamarin의 AOT(Ahead-of-Time) 컴파일러는 Xamarin.iOS 애플리케이션을 네이티브 ARM 어셈블리 코드로 직접 컴파일합니다.Android에서는 Xamarin의 컴파일러가 IL(중간 언어)로 컴파일한 후 애플리케이션이 시작될 때 네이티브 어셈블리로 JIT(Just in Time) 컴파일됩니다.

두 경우 모두, Xamarin 애플리케이션은 메모리 할당, 가비지 수집, 기본 플랫폼 상호 운용 등을 자동으로 처리하는 런타임을 활용합니다.

Xamarin.iOS.dll 및 Mono.Android.dll

Xamarin 애플리케이션은 Xamarin Mobile Profile로 알려진 .NET BCL의 하위 집합에 대해 빌드됩니다. 이 프로필은 모바일 애플리케이션에 맞게 특별히 작성되어 Xamarin.iOS.dll 및 Mono.Android.dll(각각 iOS 및 Android용)에 패키지됩니다 이 방식은 Silverlight/Moonlight .NET 프로필에 대해 Silverlight(및 Moonlight) 애플리케이션이 빌드된 방식과 매우 유사합니다. 사실, Xamarin Mobile Profile은 BCL 클래스가 다시 추가된 Silverlight 4.0 프로필과 동일합니다.

사용 가능한 어셈블리 및 클래스의 전체 목록은 Xamarin.iOS 어셈블리 목록  Xamarin.Android 어셈블리 목록을 참조하세요.

BCL 외에도, 이러한 .dll에는 C#에서 기본 SDK API를 직접 호출할 수 있는 거의 모든 iOS SDK 및 Android SDK용 래퍼가 포함되어 있습니다.

애플리케이션 출력

Xamarin 애플리케이션이 컴파일되면 결과는 애플리케이션 패키지(iOS에서는 .app 파일, Android에서는 .apk 파일)로 생성됩니다. 이러한 파일은 플랫폼의 기본 IDE로 작성된 애플리케이션 패키지와 구별할 수 없으며 동일한 방식으로 배포할 수 있습니다.

갤럭시노트10 5G 사전예약 출시 알림 신청 이벤트

https://appfing.com/5870291

 

갤럭시노트10 5G 사전예약 출시 알림 신청 이벤트

엠엔프라이스 X GALAXY NOTE10 프로모션을 빠르게 만나보는 방법 엠엔프라이스(mnprice.com) 사전예약 출시 알림 신청시 스타벅스 텀블러와 음료쿠폰을 쏩니다. ■ 갤럭시노트10 5G 사전예약 출시 증정/지원 혜택 - 25% 즉시결제 할인 + 22개월 무이자 혜택 (선착순 100명) - 엠엔프라이스만의 더 특별한 사은품 혜택 (추후 공개) - 제조사. 통신사 특별 증정 사은품 (추후 공개) - IPTV+인터넷 바꾸면 최대 40만원 +@ 혜택

appfing.com

 

홍보 가이드

엠엔프라이스 X GALAXY NOTE10 프로모션을 빠르게 만나보는 방법
엠엔프라이스(mnprice.com) 사전예약 출시 알림 신청시 스타벅스 텀블러와 음료쿠폰을 쏩니다.

■ 갤럭시노트10 5G 사전예약 출시 증정/지원 혜택
- 25% 즉시결제 할인 + 22개월 무이자 혜택 (선착순 100명)
- 엠엔프라이스만의 더 특별한 사은품 혜택 (추후 공개)
- 제조사. 통신사 특별 증정 사은품 (추후 공개)
- IPTV+인터넷 바꾸면 최대 40만원 +@ 혜택
- 갤럭시노트10 구입시 제휴카드 할인 120만원 추가 할인

▶ 자세한 내용은 엠엔프라이스(mnprice.com) 갤럭시노트10 사전예약 페이지 확인 가능합니다.

 

연도별 지원이력 현황

  선 그래프  막대 그래프 

해당 지원사업의 연도별 지원기업 수

 

2012년 2013년 2014년 2015년 2016년 2017년 2018년
지원기업 수(개) 1,095 670 773 906 920 1,134 1,717
    • 지원기업 수(개)

 

  • 평균 지원금액(만원)

지원기업 현황

지원기업 경영성과 현황


사업개요

4차 산업혁명 분야 창업기업의 사업화 성공률 제고를 위하여 R&D 및 IP전략(IP-R&D) 컨설팅을 패키지 형태로 지원해 드리는 사업입니다.
 
☞ 중소기업기본법 제2조에 의한 중소기업 중 창업 후  3년 이상 7년 이하 인 창업기업
 
☞ 기술개발 비용 및 기업 맞춤형ㆍ밀착형 지식재산권 전략 수립 컨설팅 지원

지원분야 및 대상

ㅇ 신청자격 : 「중소기업기본법」 제2조에 의한 중소기업 중 다음의 신청유형에 해당하는 창업 후  3년 이상 7년 이하* 인 창업기업
  * ① 창업 및 업력 산정기준 : 「중소기업창업 지원법」 제2조의 규정 적용하며 과제 접수 마감일 기준으로 판단. 하단의 [첨부파일] 창업여부 확인 참고자료 참조
  * ② 「중소기업창업 지원법」 제3조(적용범위), 동법 시행령 제4조(창업에서 제외되는 업종)의 일반유흥주점업, 무도유흥주점업, 기타 사행시설 관리 및 운영업 등 중소벤처기업부령으로 정하는 업종 제외

 

ㅇ 지원대상 : IP전략(IP-R&D) 관련 온라인 교육(2시간)*을 이수한 창업기업
  * IP-R&D 종합포탈(biz.kista.re.kr/iprnd/)에서 제공되는 「IP-R&D 전략수립 방법론」교육(주관기관 대표 및 과제책임자 필수 이수)
※ 신청 유형 입증을 위한 증빙 서류는 접수 마감일까지만 접수하며, 신청ㆍ접수 시 증빙자료가 제출되지 않은 기업은 요건 제외

지원조건 및 내용

ㅇ 지원규모 : 총 87.1억원(2차 : 38.5억원, 22개 과제 내외)
- 연간 지원규모 및 일정

 

  

1

2

신청접수

3

6

지원방식

품목

품목

혁신형 창업과제

(R&D+IP전략)

예산(중기부+특허청)

48.6억원

38.5억원*

과제수

44 과제

22 과제

22 과제

※ 참고 ① 각 차수별 별도 공고 예정이며, 총 지원 규모내에서 차수별 지원규모 변동 가능. ② 2차 예산은 '19년도 당해기준 예산임

 

ㅇ 지원유형 : 품목지정형

 

ㅇ 지원분야 : 중소기업 전략기술로드맵에 기반한「중소기업의 4차 산업혁명 분야」20대 전략분야, 152개 전략품목 내에서 기술개발과제를 품목지정 방식으로 제안
- 4차 산업혁명 분야 20대 전략분야 : ① 인공지능, ② 빅데이터, ③ 클라우드, ④ 사물인터넷, ⑤ 5G, ⑥ 3D프린팅, ⑦ 블록체인, ⑧ 지능형반도체, ⑨ 첨단소재, ⑩ 스마트헬스케어, ⑪ ARㆍVR, ⑫ 드론, ⑬ 스마트공장, ⑭ 스마트팜, ⑮ 지능형로봇, ⑯ 자율주행차, ⑰ O2O, ⑱ 신재생에너지, ⑲ 스마트시티, ⑳ 핀테크
※ 중소기업 전략기술로드맵 4차 산업혁명 분야 내역 : 하단의 [첨부파일] 참조

 

ㅇ 지원방식 : 선정과제를 대상으로 기술개발 비용을 지원(중기부)하고, IP전략(IP-R&D)컨설팅(특허청)은 한국특허전략개발원이 기업 맞춤형ㆍ밀착형 지식재산권 전략 수립을 지원

 

ㅇ 정부출연금 지원기준 및 기술료 징수기준
- 중기부 : 중소기업 기술개발(R&D)사업
ㆍ 정부출연금 : 총 사업비의 80%이내에서 최대 2년, 4억원 이내 지원*
  * 연간 2억원 이내
ㆍ 민간부담금 : 총 사업비의 20% 이상을 부담*
  * 민간부담금의 50% 이상은 현금으로 부담
- 특허청 : IP전략(IP-R&D)컨설팅 
ㆍ 정부출연금 : 총 사업비의 80%이내에서 최대 5개월, 컨설팅 분야에 따라 0.48억원 또는 0.8억원 이내 차등 지원
ㆍ 민간부담금 : 총 사업비의 20% 이상을 부담*
  * 민간부담금의 70% 이상은 현금으로 부담

 

R&D

IP 전략 (IP-R&D) 컨설팅

(하기 유형  1)

신기술신사업 IP전략

R&D수행전략

지원한도

4억원 이내

0.8억원 이내

0.48억원 이내

지원기간

최대 2

5개월

3개월

정부출연비율

 사업비 80% 이내

민간부담비율

총사업비의 20%이상부담

(부담금의 50% 이상은 현금 부담)

 사업비의 20% 이상 부담

(부담금의 70% 이상은 현금 부담)

※ IP 전략(IP-R&D) 컨설팅에 대한 정부출연금 및 민간부담금은 IP-R&D 전략 수립을 위한 컨설팅 비용으로 활용

지원절차

ㅇ 중소기업 기술개발(R&D)사업

사업공고 / 신청접수

대면평가

현장조사

선정결과 통보

중소기업 기술정보진흥원 협약

혁신R&D 과제 지원

 

 

ㅇ IP전략(IP-R&D)컨설팅

사업공고 / 신청접수

대면평가

현장조사

선정결과 통보

IP전략(IP-R&D) 과제 신청

한국특허전략개발원 협약

특허정보 분석기관 선정

IP 전략(IP-R&D) 과제 지원

신청방법 및 서류

ㅇ 신청 방법 : 온라인 접수
- 중소기업기술개발사업 종합관리시스템(www.smtech.go.kr)
 
ㅇ 신청 서류 : 사업계획서, 신용상태 조회동의서, 사업비 비목별 소요명세 등

가점우대제도

ㅇ 해당없음

주관기관 담당부서 및 담당자

주관기관담당부서전화번호홈페이지URL담당자명

중소기업기술정보진흥원 세부사업별 담당기관
하단의 문의처 참조 http://www.tipa.or.kr/
사업담당자

접수기관 담당부서 및 담당자

접수기관담당부서전화번호홈페이지URL담당자명

중소기업기술정보진흥원 세부사업별 담당기관
하단의 문의처 참조 http://www.tipa.or.kr/
사업담당자

기타사항

※ 자세한 사항은 중소벤처기업부(www.mss.go.kr) → 알림소식 → 법령정보 → 훈령ㆍ예규ㆍ고시ㆍ공고 참조(☞바로가기)

문의처

ㅇ 사업문의처 

담당기관(부서)

문의사항

 

R&D

사업총괄

중소벤처기업부

(기술개발과)

시행계획 공고

통합콜센터

(국번없이)1357

중소기업기술정보진흥원

042-388-0114

(내선2)

관리기관

지방중소벤처기업청

진도점검최종점검

전문기관

중소기업기술정보진흥원

(창업기술평가실)

신청접수, 사업계획 작성,

과제평가, 유의사항 

IP-R&D전략

컨설팅

시행부처

특허청

(산업재산창출전략팀)

시행계획 공고

02-3287-

4339, 4371

전문기관

한국특허전략개발원

(중소기업팀)

IP 전략(IP-R&D)컨설팅,

특허정보 분석기관 선정절차 

IP전략(IP-R&D) 온라인 교육

02-3287-4229

사업개요

국내 클라우드 인프라 성장 촉진 및 글로벌 클라우드 기업에 대응하는 플랫폼 경쟁력 확보를 위하여 대중소기업 협업 클라우드 서비스 개발을 지원해 드리는 사업입니다.
 
☞ 대ㆍ중견 클라우드(IaaS) 기업 및 중소 ICT 기업 컨소시엄
 
☞ 국고보조금 1,500백만원 이내 지원

지원분야 및 대상

ㅇ 지원대상 : 대ㆍ중견 클라우드(IaaS) 기업 및 중소 ICT 기업 컨소시엄(1개)
※ 주관기관과 참여기관의 규모를 특정하진 않으며, 컨소시엄내 환경과 제안된 세부 연구과제 특성에 따라 컨소시엄 구성 가능

지원조건 및 내용

ㅇ 사업내용 : 국내 대ㆍ중견기업 IaaS에 인공지능ㆍ빅데이터ㆍ블록체인 등 신기술을 융합한 신규 API 개발 및 신규 API를 활용한 중소기업의 클라우드 서비스 개발 지원

 

ㅇ 공모 방식 : 자유공모

 

ㅇ 지원기간 : 협약일 ~ 2020년 2월 28일까지 
※ 수행(협약)기간(예정) : 2019.8.1. ~ 2020.2.28. (7개월)

 

ㅇ 지원예산 : 국고보조금 1,500백만원 이내
※ 국고보조금의 지급 비율 
※ 현금 및 현물 부담 기준은 ‘정보통신ㆍ방송 연구개발 관리규정 제28조 별표3’ 참조

 

ㅇ 선정 과제수 : 대ㆍ중소 ICT 기업 컨소시엄 1개

 

ㅇ 세부 추진내용
- 국내 클라우드 인프라(IaaS 등) 기능 강화를 위한 API 개발(5개 이상)
ㆍ AIㆍ 빅데이터ㆍ블록체인 등과 클라우드 인프라 연계 및 ICT 기술을 접목하여 신규 API 개발
  *  실효성 있는 과제 추진을 위하여 클라우드 기업의 기존 서비스 분석 및 기술 로드맵 기획, 신규 API 개발 계획 및 향후 활용방안 등 세부적으로 기술  
  * 주관기관 및 참여기관별 지정된 역할 구분은 없으며, 클라우드 인프라(IaaS 등) 기업 자체 인력으로 개발 또는 기술력 있는 중소 ICT 기업과 협업을 통한 API 개발 등 모두 가능
※ 본 과업 목표치 안에서 API의 카테고리, 과업 내용 및 방법 등 자유롭게 제안 가능
※ (예) AI의 안면인식 API, 이미지 처리 API 각 1개, IoT의 미디어 처리 API 3개 등 총 5개
- 신규 API 기반의 중소ICT기업 서비스 개발 지원(3개 이상) 
ㆍ 기존 중소ICT 기업의 서비스를 대ㆍ중견 IaaS 기업의 신규 개발된 API를 활용하여 고도화 또는 클라우드 서비스로 전환 개발 등 추진
  * 각 분야(고도화/전환개발)별 전후 비교가 가능하도록 기존 서비스에 대한 내용* 상세 기재 및 개발 완료 후 기존 서비스 대비 기대성과 등 작성 필요 
※ 서비스명, 활용 기술, 서비스 내용, 수요처, 실적 등
- 신규 API 및 클라우드 서비스 활용 방안 제시 
ㆍ 최종 개발 완료된 신규 API 및 이를 활용한 클라우드 서비스의 지속적인 대중소 협업 및 상품 개발을 위한 방안 또는 전략 제시
  * 상용화 방안, 업그레이드 계획, 인접한 추가 서비스 개발 계획 등

 

ㅇ 대중소기업 협업 클라우드 경쟁력 강화 사업설명회 개최
- 일시 : 2019. 7. 1.(월) 14:00 예정
- 장소 : 스타트업캠퍼스 1동 4층 K-ICT 클라우드혁신센터 
ㆍ 주소 : 성남시 분당구 판교로 289번길 20  
- 사전신청 : 참석 인원 수 사전 확인을 위하여 사업 담당자에게 메일 발신 요망
ㆍ 마감/이메일 : 6월 28일(금) 17:00 / jej1616@nipa.kr
ㆍ 메일내용 : 참석자 소속, 이름, 직책 
※ 사업설명회 참석시, 사업안내서 등 관련자료 지참요망 (당일 배포자료 없음) 
※ 참석인원에 따라 스타트업캠퍼스 내 다른 장소에서 개최 가능하며, 당일 현장에서 안내 예정

 

ㅇ 스마트시스템 활용 매뉴얼 PDF(☞다운받기)

지원절차

공고  접수

사전검토

선정평가

선정통보

이의신청

심의위원회

협약체결

신청방법 및 서류

ㅇ 신청 방법 : 온라인 접수
- 정보통신산업진흥원 사업성과관리시스템(smart.nipa.kr)

 

ㅇ 신청 서류 : 사업수행계획서, 참여의사확인서, 기관(기관장) 정보수집이용제공동의서 등

가점우대제도

ㅇ 해당없음

주관기관 담당부서 및 담당자

주관기관담당부서전화번호홈페이지URL담당자명담당자 이메일

정보통신산업진흥원 클라우드산업팀
043-931-5772 http://www.nipa.kr/
정은주
jej1616@nipa.kr

접수기관 담당부서 및 담당자

접수기관담당부서전화번호홈페이지URL담당자명담당자 이메일

정보통신산업진흥원 클라우드산업팀
043-931-5772 http://www.nipa.kr/
정은주
jej1616@nipa.kr

기타사항

※ 자세한 사항은 정보통신산업진흥원(www.nipa.kr) → 사업안내 → 사업공고 참조(☞바로가기)

문의처

ㅇ 정보통신산업진흥원 

구분

담당부서

 

연락처

사업문의

클라우드산업팀

정은주 책임

043-931-5772, jej1616@nipa.kr

전산 접수 관련 문의

정보보호팀

070-5151-8239, smart@nipa.kr

사업개요

다양한 핵심기술 국산화, 사람중심 협업공장 및 고도화기술 기반 공장구축을 통한 한국형 첨단스마트공장 모델 구현을 위하여 스마트공장협업패키지기술개발 과제를 지원해 드리는 사업입니다.
 
☞ 기업부설연구소를 보유하고 있는 법인사업자 등 대상
 
☞ 6.5억원 지원

지원분야 및 대상

ㅇ 신청자격
- 주관기관
ㆍ 해당 품목의 기술개발이 가능한 비영리기관 또는 기업 등
  * 주관기관이 기업일 경우 접수마감일 현재 법인사업자이어야 하며, 평가위원회(본 사업계획서 평가) 개최일 이전에 기업부설연구소를 보유하고 있어야 함
- 참여기관
ㆍ 주관기관과 공동으로 사업을 수행하는 기관으로서 기업, 대학, 연구기관, 연구조합, 사업자단체, 의료기관 등 산업기술혁신촉진법 제11조 제2항 및 같은 법 시행령 제11조, 산업기술혁신사업 공통 운영요령 제2조제1항제3호, 제4호 및 제4의2호, 9의2부터 9의4에 해당하는 기관
  * 외국 소재 기관(기업, 대학 및 연구소 등)의 경우 참여기관으로 사업 참여 가능함

지원조건 및 내용

ㅇ 지원대상 분야 : 스마트공장 협업패키지 기술개발 - 고도화 스마트공장 협업기술개발

 

ㅇ 사업비 지원 규모 및 기간

구분

지원 규모  기간

세부사업

스마트공장협업패키지기술개발

공고예산

6.5억원

대상과제

1

지원규모

사업 안내문  과제제안요구서(RFP) 참조

지원기간

3 이내

- 총 수행기간이 3년 미만 과제로 일괄협약*을 체결을 원칙으로 함
  *‘일괄협약’ : 총 수행기간에 대하여 일괄로 체결하는 협약을 말함

 

ㅇ 지원대상 과제목록

세부사업

순번

과제명

주관기관

기술료

과제유형

비고

스마트공장 협업패키지 기술개발

1

산업현장의 작업공정 연계형 작업자 HSE 기술개발

제한없음

징수

일반

혁신제품

품목

  * 과제제안요구서(RFP) 내용의 총사업비 및 총수행기간은 평가위원회에서 조정 가능함
  * 신청시, 과제의 1차년도 개발기간은 9개월(’19.9.1∼‘20.5.31)로 작성
  * 각 사업별 상세 안내문과 안내문 내에 제시된 RFP자료를 반드시 확인하시기 바랍니다.

지원절차

공고

전담기관 사전 검토 

평가위원회 사전 서면검토

사업계획서 평가

평가결과 통보  이의신청

신규과제 확정

협약체결  정부출연금 지원

신청방법 및 서류

ㅇ 신청 방법 : 온라인 접수
- 한국산업기술평가관리원 산업기술 R&D 정보포털(itech.keit.re.kr)
 
ㅇ 신청 서류 : 온라인 제출 최종 확인서, 사업계획서, 사업자등록증 등

가점우대제도

ㅇ 사업재편승인기업

ㅇ 성과공유제 도입기업 확인서

ㅇ 상생협력우수기업 
ㅇ 동반성장지수 우수기업

주관기관 담당부서 및 담당자

주관기관담당부서전화번호홈페이지URL담당자명

한국산업기술평가관리원 융합신산업팀
053-718-8455 http://www.keit.re.kr/
사업담당자

접수기관 담당부서 및 담당자

접수기관담당부서전화번호홈페이지URL담당자명

한국산업기술평가관리원 융합신산업팀
053-718-8455 http://www.keit.re.kr/
사업담당자

기타사항

※ 자세한 사항은 산업통상자원부(www.motie.go.kr) → 예산ㆍ법령 → 고시ㆍ공고 → 공고 참조(☞바로가기)

문의처

ㅇ 한국산업기술평가관리원
- 신청서류 온라인 제출 관련 : R&D상담콜센터(1544-6633)
- 공고 및 평가일정 관련 : 융합신산업팀(053-718-8455)

회사 보안 위험 테스트

이 중 하나라도 체크하셨다면, 귀사에는 오피스키퍼가 필요합니다.

오피스키퍼란?

오피스키퍼는 PC에 저장된 문서를 안전하게 보호하고 내부자에 의해 외부로 유출되는 것을 방지하는
통합PC보안이 가능한 정보유출방지 솔루션입니다.

웹 기반의 사용자 친화적인 UI에 쉬운 용어를 사용하여
IT 비전문가라도 손 쉽게 정책을 설정하고 모니터링 할 수 있습니다.

 

 

 

https://app.ac/53f9eMJ03

 

통합PC보안이 가능한 정보유출방지 솔루션, 오피스키퍼

 

www.officekeeper.co.kr

오피스키퍼 서비스 제공형태 및 가격

구분클라우드형미니서버형구축형

라이선스 제공 기간 1년 영구 영구
기능 제공 방식Function 기능 별 선택 구매 가능 통합 패키지 구매 가능 기능 별 선택 구매 가능
서버Server 오피스키퍼 IDC 서버 고객사 내부에 미니서버 설치 고객사 내부에 구축형 서버 도입
커스터마이징 유무 불가 불가 조직도 연동 등
일부 협의에 따라 가능
지원 가능한 사용자 1PC ~
(최대 도입수 제한 없음)
50PC ~ 100PC 50PC ~
(최대 도입수 제한 없음)
로그 보관 기간 3개월
※ 1년 기간 연장 가능, 비용 추가 발생
반영구 반영구
도입까지 소요 기간 가입 즉시 사용 가능
(1~2일 이내)
평균 2주 내외 도입 완료 평균 1개월 내외 구축완료
가격Price ( VAT 별도 ) 별도문의

"이 포스팅은 제휴마케팅이 포함된 광고로 일정 커미션을 지급 받을 수 있습니다."

+ Recent posts