주간기술동향 1549호

주간기술동향 1549호

1339161268_[ITFIND]주간기술동향 1549호.pdf

포커스 : 게임화(Gamefication)의 현재와 미래 : 주요 사례와 연구동향

IT기획 시리즈 : 4세대 이동통신 표준 기술 분석 및 서비스 전망

IT 최신 동향 : 1. 갤럭시 노트가 재점화한 태블릿 시장의 성장 가능성

2. 폐쇠적 앱 생태계 구축에 나서는 MS의 과제

3. 모바일 앱으로 수익을 낼 수 있는 시크릿

4. 오픈소스 클라우드 경쟁 : 오픈 스택 對 클라우드 스택

데이터 분석가가 바라본 빅데이터 현상과 대응을 위한 준비 방법



[출처] http://www.dbguide.net/knowledge.db?cmd=view&boardUid=166186&boardConfigUid=19&boardStep=&categoryUid=574

[저자]> 고태영 이노지에스 고문 tykoh70@innogs.com

빅데이터 활용이 현실로 다가오면서 구축 플랫폼에서 분석 환경까지 다양한 이슈가 쏟아져 나오고 있다. 오랫동안 데이터 분석 업무를 해온 현업 전문가의 시선으로 빅데이터 현상을 알아보고, 기업에서 현실적으로 적용할 만한 분석 환경과 단계별 준비 방법을 소개한다.



빅데이터와 데이터 분석을 소개하는 기술 설명서에 준하는 글은 이미 사방에 넘쳐나고, 매일 빅데이터 관련 기사가 미디어의 IT 섹션을 장식하고 있다. 기술을 주도하는 빅플레이어들은 시장 주도권을 거머쥐기 위해 엄청난 광고?홍보 비용을 쏟아 부으며 경합하고 있다. 빈번하게 빅데이터 혹은 이와 관련한 컨퍼런스가 열리고, 기존의 데이터베이스를 주 업종으로 하던 회사들?분석 서비스를 주로 해오던 컨설팅 회사들?혹은 장비 회사들?이제는 유관성이 없어 보이는 업체들까지 빅데이터를 표방하고 나선 모습이다. 대학입시에서도 이러한 열풍은 여실히 드러난다. 통계학과 등 응용수학 분야와 인접 학과들의 입시 경쟁률이 치솟았다는 기사가 더 이상 놀랍지도 않은 일이 돼버렸다.



빅 데이터 분석(Big Data Analysis)


숲에서 나무들의 무작위 표본을 채집해 그 평균값을 근거로 침엽수림인지 활엽수림인지 구분하고 숲의 생성연대를 가늠하기도 한다. 무작위 표본 채집이 생태학자의 연구조사를 위한 통계학적 접근 방법으로서는 그리 나쁘지 않을지 모른다. 그러나 그것만으로는 숲을 이루는 모든 정보를 파악할 수는 없다. 탐사자에게는 무용한 분포도상의 이상치가 식물학자에게는 아주 중요한 식물 군집정보가 될 수도 있다. 만일 독자가 군대생활 중에 얻은 경험 등 서바이벌 지식을 갖춘 상태에서 깊은 숲에서 조난을 당했다고 가정해보자. 가장 먼저 무엇을 할 것인가? 우선 방위 파악과 숲의 전체적인 형태를 파악하려 할 것이다. 나무 가지가 뻗어나간 방향과 그루터기에 낀 이끼, 태양의 이동 방향, 밤이라면 별의 위치로 방위를 가늠할 것이다. 그러나 숲을 벗어나려면 일단 능선의 형태와 협곡의 위치, 해의 길이, 그림자의 범위, 식수?식량 확보 등 여러 상황 정보를 수집?파악해 대책을 세울 것이다. 목적은 하나다. 조난당한 그 숲으로부터 벗어나는 것이다. 생존에 필요한 각종 정보를 근거로 최대한 명확히 판단할 수밖에 없다. 만약 혼자서 조난당했다면 여러 명이 함께 있을 때보다 불리해질 것이다. 혼자서 얻을 수 있는 정보는 양에서 제한적일 뿐 아니라, 분석?판단 과정에서 자칫 냉철함을 벗어날 수 있기 때문이다.

그러나 여럿이 함께 있다면, 경험 많은 사람이 리더가 돼 팀을 통솔하면서 같은 시간에 여러 일을 처리하려 할 것이다. 팀워크가 발휘되는 순간이다. 서로 흩어져 정보를 찾고 준비 작업을 하는 동안 위기 상황에서 상호 소통하는 방법도 결정할 것이다. 리더는 수집된 정보를 바탕으로 그때그때 결정을 내려야 한다. 이때 팀원들은 리더가 내린 결정이 그 상황을 벗어나기 위한 올바른 판단이었는지를 생각할 것이다. 따라서 혼자일 경우보다 잘못된 판단을 내릴 가능성은 그만큼 줄어들게 된다.


표본 조사에서 전체 조사로


기업에서 데이터 분석도 이처럼 펼쳐진다. 특히 빅데이터 분석은 기술이나 방법의 문제라고 보기에는 기존의 데이터 분석과는 다른 점이 많다. 예전의 분석에서는 표본 데이터를 이용해 분산 분석을 해 필요한 최적화한 결과만 취해왔다. 그러나 이러한 방법은 필요한 정보의 분석 결과만을 취할 뿐 어쩌면 유용할지도 모를 버려지는 이상치 값들을 방치하는 결과를 불러왔다. 또한 표본으로 분석한다는 것은 모델을 아무리 정교하게 만든다 할지라도 전체 데이터를 대상으로 분석한 결과치와 같을 수 없다. 전체 데이터를 대상으로 분석한다는 것은 고려해야 할 이슈가 많음을 의미한다.

기업에서 빅데이터 분석을 위해 고려해야 할 이슈 중에서도 절대적으로 분명히 할 것이 있다. 바로 ‘정책’이다. 정책에는 여러 요소가 필요하지만 필자는 다른 측면에서 정책을 거론한다. 빅데이터를 위한 플랫폼이나 솔루션의 문제는 그리 중요하지 않다. 정책이 결정되지 않는 상태에서 빅데이터 분석은 무의미한 도전이 될 가능성이 높다. 정책은 빅데이터를 분석하려는 조직에서 과연 무엇을 빅데이터라 할지를 정하는 데서부터 시작된다.

‘기존 데이터 웨어하우스(Data Warehouse)에 무수히 많은 정형 데이터와 비정형 데이터가 쌓여 있으니 그것들을 헤집어 뭔가의 패턴을 찾아내고 그 안에서 인사이트를 찾겠다’고 한다면 ‘그건 아니다’ 라고도 할 수 있다. 실례로 제조기업이라면 제조라인에서 발생하는 무수히 많은 데이터를 통해 생산 비용관리, 장애요인 분석관리, 생산량 조정관리 등의 분석 정보를 도출하려 할 것이다. 그러나 정작 사용돼야 할 데이터는 거의 쓸 수 없는 포맷으로 단지 스토리지에 적재된 경우가 대부분이기 때문이다. 이러한 데이터에 대한 분석 요구를 받아 분석하려 했을 때 가장 먼저 부딪치는 문제는 기존 시스템에 대한 접근 경로를 거의 확보할 수 없다는 것이다. VPN(Virtual Private Network)을 열어주는 것부터 시작해 원본 데이터로의 접근을 위한 여러 가지 사내 보안정책 등 말로 할 수 없을 만큼의 장애물이 놓여 있다. 직접 상주해 작업하기 위해 별도의 액티브 디렉터리(Active Directory)를 구성하고 이거저거 하다 보면, 이제는 도저히 가져와 사용할 수 없는 형식으로 쌓여 있는 로그 데이터가 발목을 잡는다. 이러저러한 이유로 포기할 것들은 포기하고 완료한 프로젝트를 고객에게 전달하는 과정에서도 문제에 직면한다. 새로운 방식에 대해 배우기를 귀찮아하고 사용하기를 꺼려하는 사용자들 습성 때문이다. 어렵게 구축된 시스템은 6개월을 넘기지 못하고 방치된다. 제조뿐만 아니라 물류 등 연관 비즈니스 그룹들이 이와 같은 방식으로 저마다의 방식으로 데이터를 쌓고 분석?활용하기 위한 각자의 시스템을 구축?보유하고 있다.



세밀도에 대하여


각 비즈니스 그룹 단위로 다르게 접근하는 각각의 데이터 웨어하우스로부터 데이터를 취합?분석?최적화해서 기업이 원하는 총체적인 전략을 수립하고 시행하게 만들 수 있을까 하는 의문이 든다.

일단 이러한 데이터 취합 문제와 분석에 대한 문제가 해결됐다고 보고 다음 문제를 짚어 보자. 데이터 분석에 대한 ‘방법론’을 결정해야 한다. 현재로선 관심이 주로 빅데이터 분석 플랫폼과 솔루션에 집중된 나머지 잘 드러나지 않고 있을 뿐이지, 이러한 분석 방법론이 정착되면 반드시 발생할 중요한 이슈이다. 분석 방법론에서 거론될 이슈는 빅데이터를 얼마나 세밀하게 분석할 것인가이다. 일반적으로 아주 깊고 정밀하게 분석하려고 한다. 그러나 빅데이터의 분석은 조금 다르게 접근해야 할 수밖에 없다. 빅데이터 분석은 직관과 통찰의 문제이기 때문이다. 앞서 숲을 예로 들었듯이 너무 가까운 현상에만 집중하다 보면 정작 전체를 보지 못하는 패착(敗着)을 두게 마련이다.



인식의 한계치를 넘어선 데이터


빅데이터 분석의 요체는 거대함 속에서 드러나는 하나의 흐름을 파악하는, 즉 직관으로 패턴을 먼저 읽어내는 것이다. 그 패턴이 어떠한 모습을 하고 있으며 무엇을 의미하는지, 우리에게 무엇을 말하려는지를 법의학자가 프로파일링하는 것처럼 대상을 통해 인식하고 받아들이고 말 할 수 있어야 한다. 예전의 데이터 분석의 대상이 미시적 대상이거나 가시적 대상의 범주였다면, 빅데이터는 가시적일 수는 있으나 인식의 한계치를 넘어선 데이터의 범주를 말하는 것이다. 데이터가 크기를 떠나 너무 다양한 형태로 존재하기 때문이기도 하거니와 그 데이터가 쌓여가는 속도가 인간의 보편적 인지??를 분석하기 위해서는 이러한 데이터를 접하는 방법 및 관점에 대한 자세부터 바꿔야 할 필요가 있다. 다양한 빅데이터 플랫폼과 분석방법, 기반 기술들은 무로부터 시작한 것이 아니다. 이론적으로는 수십 년 전부터 존재했으나 최근에 와서야 정보통신 기술의 발달로 구현된 것들이나 기존에 구현됐던 것들이 새로운 개념으로 재정립된 경우가 대부분이다. 클라우드, 가상화, 분산 병렬처리, 맵리듀스 등 현재 이슈화되는 빅데이터를 위한 기술이 그렇다. 이러한 기술을 바탕으로 빅데이터를 분석하기 위한 새로운 인식에 대해 알아보자. 과연 어느 정도까지 ‘느슨하게’ 데이터를 분석해야 할까?



느슨한 분석


‘느슨하게’는 기존의 분석 방법과는 반대의 개념에 가깝다. 인지적 관점으로 해석하자면 전체를 조망하고 개체 단위로만 집중하지 않을 때 하나의 거대한 상으로부터 하나의 패턴을 인식할 수 있다고 한다. 이는 우주항공 분야에서도 위성으로부터 송신되는 지표 데이터 사진을 통해 특이점을 파악할 때 적용되는 방식과 유사하다고 볼 수 있다. 또한 유적지 전체를 조망하고 그 문명의 일관성을 파악하거나 퍼즐같은 복잡하고 유사성이 없는 조각 맞추기 놀이에서도 찾을 수 있는 방법이다. 너무 세밀하게 팩트에 집중하면 중요한 현상을 놓칠 수 있다. 때에 따라 세밀한 집중화가 필요하지만 기본적으로는 ‘느슨한’ 분석이 필요하다.

기업에서 빅데이터 분석을 위해 우선 해야 할 일이 ‘정책 결정’이라면, 이 정책을 토대로 할 일이 ‘느슨한’ 정도를 결정하는 것이다. 두 번째는 어쩌면 가장 중요할 수 있는 이슈이다. 바로 기존의 데이터를 사용할 것인지 아니면 새로 수집할 것인지의 문제다. 기존 데이터 웨어하우스로부터 분석할 데이터를 마이닝?가공?적재하는 방법을 택할 것인지, 이 방법과 병행해 새로운 빅데이터를 위한 새로운 데이터 웨어하우스 운용 시스템을 구축할 것인지를 결정해야 한다. 기존 시스템으로부터 새로운 시스템으로 마이그레이션하는 것은 쉬운 일이 아니다. 특히 기업 규모가 클수록 이것은 중요한 정책적 결정이 요구된다. 최근 빅데이터 분석과 관련해 이 문제에 대한 이슈가 활발히 논의되고 있다. 그 대표적인 것이 하둡(Hadoop) 플랫폼이다. 국내에서도 이 플랫폼을 이용해 기업에 적용한 사례가 있다. SK플래닛이 대표적이라고 할 수 있다. 이 프로젝트는 대략 3여 년의 시스템 마이그레이션 과정이 있었다고 알려졌다. 이 글의 주제를 벗어나기 때문에 하둡 플랫폼의 효용성은 논외로 하자. 대신 이 글의 후반에 하둡이 아닌 다른 솔루션으로 이와 같은 데이터 분석 환경을 구성하는 방법을 개략적으로 소개할 것이다.



빅데이터 분석은 인지 한계를 넘어선 거대하고 다양성을 가진

실시간에 적재되는 데이터를 멀리서 넓게 바라보고

미시적 팩트가 아닌 거시적 패턴을 보고

느슨하게 분석해 원하는 가치를 찾는 것이다.



앞서 소개한 빅데이터 분석을 정리하면 다음과 같다. 인지 한계를 넘어선 거대하고 다양성을 가진 실시간에 적재되는 데이터들을 멀리서 넓게 바라보고 미시적 팩트가 아닌 거시적 패턴을 보고 느슨하게 분석해 원하는 가치를 찾는 것이다.

‘빅데이터가 무엇이냐?’고 질문하면, 상대가 ‘바로 그거구나!’ 하고 이해할 수 있을 만큼의 분명한 답을 주기는 곤란하다. 10여 년이 넘게 분석 업무를 해온 필자도 빅데이터가 무엇인지 잘 모른다. 잘 모르는 사람이 이런 글을 쓰고 있는 아이러니가 현재의 IT 현실과 닮았다고 생각된다. 아래에 기술하는 내용은 빅데이터 관점이라기 보다는 큰 데이터를 분석하는 입장에 관한 개인적인 연구수행의 관점을 기술한 것이다.



분석가가 바라본 빅데이터


빅데이터는 과연 엄청나게 크거나 혹은 엄청나게 많이 쌓여 있는 데이터 더미를 말하는 것일까? 답을 찾다가 결국 필자도 혼란스러워서 그냥 현업 데이터 분석 담당자 입장에서 현재 상황을 정리하는 것으로 대신한다. 우선 무수히 많은 데이터가 쌓일 조건은 다음과 같다. 무수히 많은 업무 트랜잭션과 이를 수용하는 대용량 데이터베이스 처리가 가능한 데이터 웨어하우스(Data Warehouse)가 필요하다. 하지만 기존 방식을 벗어난 유연한 확장(Scalable)성을 보장해야 한다. 하둡 플랫폼이 이에 가장 부합한다고 볼 수 있을 것이다.

일단 이 조건에 부합하려면 무수히 많은 업무 트랜잭션이 발생하는 중견기업 이상의 대기업 정도는 돼야 가능할 것이다. 물류 관련 비즈니스 그룹을 하나의 유닛으로 보고 가늠하자면, 최소한 이와 관련한 인접 비즈니스 유닛들이 다 모여서 유기적으로 데이터를 주고받으면서 최소한 수년 간 적재해야 한다.

물론 여기에는 소비자라는 엄청난 크기의 가변변수도 고려해야 한다. 제조 분야에서는 이보다 더 많은 데이터가 발생한다. 빅데이터라는 트렌드에 가장 부합한 영역은 SNS 같은 소셜 플랫폼도 아니고 바로 제조업 분야다. 현재 필자가 소속된 회사는 파트너들과 협력해 데이터 분석 모델을 만들어 우선 적용할 영역이 제조업이다. 그 이유는 다음과 같다. 데이터 분석이 가장 필요하고 대용량 데이터 분석을 위한 기반 환경이 구축된 분야가 제조업과 방송, 통신, 금융관련 분야다. 공공정보나 IT 플랫폼 기반 분야도 이에 해당한다.



분석을 위한 플랫폼


빅데이터 분석 요건을 살펴봤으므로 빅데이터가 되기 위한 기술적 충족 요건이 무엇인지 살펴보자. 일단 대용량 분석을 가능케 하는 멀티코어 지원 애플리케이션이 있어야 한다. BI(Business Intelligence)같은 OLAP 솔루션들은 프론트엔드에서 작동하기 때문에 웬만한 환경에서는 엔진 성능만 좋다면 싱글 코어만을 지원해도 크게 무리는 없다. 필자는 기업용 분석 최적화 BI 솔루션으로 HiQube(www.hiqube.co.kr)를 주로 쓰고 있다. 이 솔루션은 싱글코어 기준으로도 2억 7000만 개의 레코드, 16개의 칼럼, 30억 개의 데이터 값, 8.5GB 용량의 대용량 데이터셋을 1초 미만으로 내비게이션할 수 있다. HiQube는 글로벌 근사기법을 사용하는 ARSM(Adaptive Response Surface Method), 글로벌 근사기법을 사용한 그래디언트 기반의 다중목적 최적화(GMMO), 검증기법을 사용한 GA(Genetic Algorithms), 다중목적 유전 알고리즘 (MOGA, Muti-Objective Genetic Altorithm), 실현 가능한 방향설정 방법(MFD)와 순차적 프로그래밍(SQP)과 같은 지역 근사화 기법, 순차적 최적화(Sequential Optimization)과 신뢰성 평가(SORA)와 몬테카를로 시뮬레이션과 같은 신뢰성과 활성화를 최적화를 가능케 해주는 활성화 신뢰성 알고리즘 등 공학기반의 수학적 최적화(Optimization) 알고리즘들을 BI레벨에서 지원하는 유일한 솔루션이다. 이는 다른 BI솔루션들이 가지지 못하는 빅데이터를 지향하는 프론트엔드 전문분석 솔루션을 지향하기 때문이다. 오랜 시간 최적화에 관련한 알테어의 공학적 DNA가 녹아있는 제품인 것이다.




[그림 1] HiQube 화면 (출처: 알테어 코리아)

범용으로는 칼럼 기반의 인메모리 데이터 엔진을 채용함으로써 그 미래가 밝아 보이는 마이크로소프트의 오피스2012와 세어포인트 서비스, SQL서버 2012의 분석 환경이 있다. 아직은 HiQube같은 제품에 비해 부족함이 많으나 기반 환경을 오피스 제품군으로 사용하는 기업고객의 환경을 고려할 때 아무래도 친화성에 있어서는 가장 큰 장점을 가지고 있다고 하겠다. 기회가 된다면 이들을 이용한 실무 레벨의 분석에 대한 소개를 하고 싶다.

R나 MatLab, SAS같은 수학적 분석 솔루션도 필요하다. 혹은 여기에 더해 최적화 지원을 하?어를 지원하는 것은 기본이다. 우선 클러스터 분석을 지원하는 것을 기본으로 판단하자면, SAS는 아직 준비 중이 것으로 보인다. R는 기본적으로 분산분석을 멀티코어 레벨에서 지원한다. MatLab 또한 지원한다. 이 외에 좀더 산업공학적인 측면에서 최적화(Optimization)를 지원하는 역학 해석 및 분석용 솔루션인 Hyper Works 제품군 중에 Hyper Math (www.hyperworks.co.kr/Product,50,HyperMath.aspx)가 있다.

기계학습 또한 매우 중요한 요소다. 필자가 생각하는 빅데이터 분석의 기본 요소에서 가장 정점은 바로 이 기계학습을 어떻게 분석로직에 적용하고 활용하게 하는가이다. 필자의 경우는 주로 함수형 언어들을 이용하거나 MatLab을 이용하지만, 아마도 향후에 하둡이 보편화되고 R가 주로 사용되는 시점에서는 Octave(http://www.gnu.org/software/octave)가 주목할 만한 솔루션으로 떠오를 것이라고 본다.




[그림 2] GNU Octave 화면 (출처: www.gnu.org/software/octave/)

앞서 소개한 애플리케이션 혹은 툴처럼 빅데이터 분석에 적합하거나 혹은 적용이 가능한 체질을 갖춰야 활용이 쉬울 것이라고 생각한다. 더불어 운용 플랫폼이 빅데이터를 발생시킬 수 있는 환경을 제공해야 한다. 필자 관점에서라면 HPC(High Performance Computing) 혹은 HAC(High Availability Computing)가 우선 필요하다. 현 시점의 키워드인 클라우드 컴퓨팅(Cloud Computing), 분산병렬처리 시스템(Parallel distributied system), 가상화 시스템(Virtualization System) 들은 모두 클러스터라는 저장 프로세스를 처리하는 논리적인 유닛의 집합체를 개념으로 한 HPC나 HAC를 바탕으로 한다.

아마도 이 대목에서 ‘왜 하둡을 거론하지 않는가?’ 하고 궁금해할지도 모르겠다. 우선 필자는 하둡을 잘 모른다. 그저 하둡이라는 게 있고, 그게 어떻게 운영되는가를 가상 운영환경에서 설치해보고 간단한 스크립트 레벨에서 테스트해 본 것이 전부다. 이런 이유 때문에 하둡을 거론하지 않는 것과 더불어 필자 주변에는 기업의 운영환경 전체를 하둡으로 마이그레이션했던 아주 용감한 이도 있기에 여기서는 필자 나름의 정보 분석에 대해서만 소개한다.



상용 분석 플랫폼


필자는 하둡 시스템이 아닌 다른 방식으로 정보분석이라는 업무의 일을 하고 있다. 필자가 다루는 솔루션은 알테어 코리아(www.altair.co.kr)에서 공급하는 PBS Works(www.pbsworks.co.kr) 이다. HPC를 위한 ‘Enabling on demand computing’를 표방하는 솔루션이다. 이 솔루션은 현재 미국에서는 펜타곤(Pentagon)에서 운영하는 슈퍼컴퓨터와 워크스테이션들의 연구 및 고용량 연산을 수행하기 위한 HPC와 그리드 컴퓨팅(Grid computing) 환경을 지원하기 위해 사용되고 있다. 약 300만 코어(Core)를 컨트롤 하고 있다. 국내에서는 기상청 슈퍼컴퓨터에서 약 10만 코어를 사용하고 있는 것으로 알려졌다. 또한 하이퍼 웍스(Hyper Works)를 지원하기 위한 고연산 분석 솔루션을 위한 스피어 서버 펌(Sphere Server Firm)으로 사용되고 있다. 국내 자동차회사와 중공업사 등 산업현장과 연구기관에서도 다양한 목적으로 사용되고 있다. 필자는 이 솔루션을 기반으로 빅데이터를 분석한다. 물론 이것만으로는 불가능하다. 하둡에도 Hive, Pig, Scribe, Chukwa, Flume 같은 툴들이 있듯이 PBS Works도 분산 컴퓨팅을 위한 툴이 필요하다.

우선 PBS Works에서는 ‘PBS 프로페셔널’이라는 전용 관리 환경과 관리자용 분석환경인 PBS 애널리틱스, 프로트엔드를 위한 PBS 컴퓨트, PBS 데스크톱 등을 지원하고, 내부 운용 스크립트로 파이선과 펄을 지원한다. 이로써 대용량 데이터 분석용 솔루션의 구성도가 그려졌다.

PBS Works는 Parallel Python(www.parallelpython.com) 등 파이선 프레임워크를 기본적으로 지원한다. 이에 따라 필자는 필요할 때마다 IPython(ipython.org)이나 RPy2를 사용한다. Parallel R나 RPy2는 분산분석을 위한 분석 도구이다. R가 갖는 분석 가용치 한계를 벗어나기 위한 방법이지만 나름 사용할 만하다. 기본적으로 SAS같은 솔루션도 처리가용 한계치가 20Gb를 넘지 못한다. R는 이보다 더 취약하다. 그러나 Parallel R를 이용하면 이러한 한계를 극복할 수 있다. 이러한 구성은 빅데이터 분석을 위한 연구 차원의 대안으로서 사용될 뿐이고 전적으로 빅데이터 분석을 위한 대안이 될 수 없음은 미리 밝혀둔다. 아직 오라클이나 마이크로소프트 같은 곳에서 차세대 하둡 통합 환경의 프로토타입으로 검토중인 상태이기 때문에 완전히 빅데이터 플랫폼 실무에 적용할 수 있는 단계는 아니다.

앞의 방법은 PBS Works 같은 상용 솔루션을 사용하지 않고도 빅데이터 분석을 할 수 있는 방법이지만, HPC 운용에 있어서 가장 중요한 퍼포먼스 문제가 남아 있다. 네트워크 스위칭 인터페이스의 처리용량 문제와 디스크 쓰기 문제들로 인해 소규모 연구소에서나 가능한 방법이다. 만일 대용량 고연산 작업을 수행해야 한다면, 내부 스위칭 인터페이스가 40Gb 인피니밴드급을 지원해야 한다. 결국 이러한 HPC 환경을 효율적으로 구성하기 위해서는 각 노드 클라이언트에 해당하는 물리적 워크스테이션들은 PC 사양이어도 상관 없지만, 컴퓨팅 서버와 스위칭 인터페이스는 고가의 장비가 필요하다. 따라서 필자도 개인적인 분석 모델 수립을 연구할 때에는 IPython 라이브러리를 이용한 소규모 분석 플랫폼을 이용하지만, 기업용 대용량 데이터 분석을 할 때에는 PBS Works로 구성된 HPC 기반의 분석 환경을 이용한다. RPy2는 파이선에서 R의 분석 처리용 함수들을 불러다가 사용할 수 있게 구성해 준다. 즉, R에서 사용하는 분산 분석모듈(Cluster analysis module)을 이용해 분석을 처리할 때 발생하는 데이터를, PBS 스피어 서버로 보내 분산 처리하거나 계산 작업에 할당한다.

만일 하둡을 이용한 시스템을 고려한다면 분석운용 환경으로 RHive 사용을 권한다. 필자가 알기로는 하둡에서 이보다 더 효율적인 분석 방법은 없다. 오라클의 빅데이터 제품군이나 마이크로소프트가 진행중인 윈두우 애저(Windows Azure)와 하둡을 결합한 아이소토프(Isotope) 플랫폼이 공식 출시되면 알 수 있지 않을까. 이에 대해서는 기회가 닿는다면 자세히 다뤄보고 싶다.




[그림 3] Splunk 분석 솔루션 (자료 협조: 동양시스템하우스)

더불어 앞서 소개한 처리방식으로 실시간 프로세스 분석을 위한 환경에서 보다 안정성 있는 솔루션을 원한다면 이와 같은 방식을 지향하는 상용 솔루션이 하나 더 있다. Splunk사의 ‘Splunk’라는 솔루션이다. 일반적인 CEP(Complexed Event Processing) 기반과는 다소 다르지만 그 효용 면에서는 나름 제값을 분명히 하는 솔루션이다. 국내 IT 기업들이 이미 도입해 사용 중인 솔루션이기도 하다. 이 솔루션 또한 내부적으로 파이선을 기본 운영 스크립트로 지원한다. 그리고 자체 검색엔진도 지원하는데 구글 엔진과 비슷하다. 가격이 만만치 않은 제품이라는 점을 제외한다면 기업에서 가장 잘 활용할 만한 솔루션으로 보인다. 분석 도구와 함께 하나 더 고려할 사항이 데이터베이스로, 필자는 CouchDB, MongoDB 등을 사용 중이다. 이에 대해서는 김우승 줌닷컴 연구소장의 연재 등 전문가들의 글을 참고 하기 바란다.



현실적인 빅데이터 분석을 위한 제언


빅데이터 분석은 중요하다. 그리고 하둡 시스템은 상당히 매력적이다. 그러나 이러한 매력적인 목적지에 도달하기 위해서는 수많은 어려움을 뛰어 넘어야 한다. 이제 이러한 어려움을 극복하고 초기 시행착오를 줄일 방안을 현실적으로 알아보자. 하둡 같은 시스템 환경이라고 해서 딱히 다를 건 없다고 본다. IT 분야에서 오랫동안 종사한 독자라면 잘 이해하겠지만 문제점은 늘 비슷하다. 다만, 그 규모가 얼마나 더 방대해지고 얼마나 복잡해졌느냐의 차이일 뿐, 기본 구현 원리나 개념은 늘 같기 때문이다.

우선 빅데이터 분석을 위한 기반 환경에 대해 알아보자.



1. 시스템 통합


하둡 시스템이나 유사한 형태로 이전하기 위해서는 사전에 기존 시스템들을 통폐합해야 한다. 하둡으로 마이그레이션은 엄청난 비용과 시간, 인내심을 요구할 것이다. 대략 대기업 기준으로 1년의 준비 기간이 필요할 것으로 예상한다.



2. 자동화 구현


통합된 시스템이 자동 처리될 수 있도록 구현하는 데 집중해야 한다. 아무리 잘 통합된 시스템이라 하더라도 장애 처리를 위한 자동화 처리 공정이 구현되지 않으면, 인력과 시스템 낭비가 그만큼 심해질 것이다. 하둡으로 시스템 이관 시 자동화 부분이 해결되지 않으면 기존 시스템을 사용하는 것과 차이 없거나 오히려 성능이 더 떨어지는 최악의 상황에 봉착할 수 있다. 이것은 시스템 자동화뿐 아니라, 이 일과 관련된 인력에 대한 교육도 포함된다. 대략 이러한 일을 수행하는 데 걸리는 시간은 구현 1~2년, 교육 및 숙달을 병행해 2년 정도 소요될 것으로 예상한다.



4. 하둡 시스템으로 마이그레이션


매우 어려운 단계다. 앞서 하둡으로 마이그레이션하기 위한 통합화와 자동화 교육에 2~3년이 필요하다고 했다. 이제 남은 것은 기업의 중대한 결단뿐이다. 앞서 소개한 지침을 바탕으로 내부 정책을 수립하고 대안 모델로 기업의 체질을 개선해왔다면, 분명이 이 부분에서 고민은 줄어들 것이다. 왜 하둡이나 이와 유사한 시스템 환경으로 이관해야 하는지 충분히 공감하고 있을 테니 말이다. 필자의 관점상, 딱히 이러한 이관 경험이 없어도 이러한 시스템이 주게 될 만족감은 충분히 예측된다. 그러니 여기 저기서 하둡에 대해 거론하면서 하둡이 전부인 것 같은 분위기가 형성되고 있다. 중요한 것은 이러한 시스템으로의 이관이 가져다 줄 이점을 최대로 활용하기 위해서는 반드시 앞서 소개한 과정을 착실히 수행하고 전사적인 전략과 정책에 대한 장고의 과정이 필요하다. ‘정책’이 관건이다. 하둡과 같은 시스템으로 마이그레이션하기 위해서는 ‘정책’을 수립하고 단계적으로 진행하되 반드시 중간 과정에 대체 수단을 통해 체질(?)을 개선한 다음에 이관해야 한다.



5. 팩트가 아닌 패턴


끝으로 하나 더 부연하자면 통계학적 분석이 빅데이터 분석에도 필요하다. 하지만 그 적용 방식은 분명히 다르다. 만일 기존 통계학적 분석에 익숙하다면 관점의 변화를 추구할 것을 권한다. 소개한 것처럼 빅데이터 분석은 플랫폼의 변화만큼이나 인식의 변화도 요구되기 때문에다. 나무가 아닌 숲을 지향하고 미시적 팩트가 아닌 거시적 패턴을 발견하려는 노력이 필요하다.

‘브라질에서 한 나비의 날갯짓이 텍사스의 토네이도를 일으킬 수도 있다’는 혼돈이론이 등장한 당시만 해도 빅데이터를 운용할 수 있는 환경이 아니었기 때문이라고 생각해 본다. 이제 빅데이터 분석이 가능한 환경적?기술적 여건이 갖춰진 만큼, 기존에 존재했던 수많은 분석 모델들이 다른 관점에서 적용될 것으로 예상된다. 예전에는 버려졌던 이상치 데이터에도 주의를 기울이는 예리함이 필요하다.

또한 마치 법의학자가 사자의 마지막 말을 프로파일링을 통해 발견하고 전달하는 것과 같은 직관이 필요하다. 빅데이터 분석은 과학과 인문학의 융합만큼이나 당연한 것 같지만 이질적인 복합성이 존재하는 영역이라는 것을 첨언하며 마친다.






출처 : 한국데이터베이스진흥원

제공 : DB포탈사이트 DBguide.net

Eclipse, ANT, 그리고 EJB (java) 개발환경

[출처] http://blog.naver.com/cjturtle/90028172222

Eclipse와 ANT의 연동 작업, 빌드 파일의 제작필요한 기술

2008/02/22 18:37

복사http://blog.naver.com/cjturtle/90028172222

[48] Eclipse와 ANT의 연동 작업, 빌드 파일의 제작|ejb
2008.01.16 12:01
퉁퉁이(skybb1224) 카페 매니저
http://cafe.naver.com/loveloveitwill/204 <INPUT id="cafeurlstr" type="hidden" value="http://cafe.naver.com/loveloveitwill/204" name="cafeurlstr">

[48] Eclipse와 ANT의 연동 작업, 빌드 파일의 제작

▩ Eclipse와 ANT의 연동 작업
- eclipse 2.1.1에는 Ant 1.5.3버전이 포함되어 있습니다.
- eclipse 3.1.x에는 Ant 1.6.5버전이 포함되어 있습니다.

1. Ant의 설정
- [Window --> Preference] Ant 노드의 "Names:"필드에 빌드할 파일을 나열한다.
기본 환경을 설정한다.

▩ 빌드 파일의 제작
- src
- lib
- bin

1. 빌드의 설계
- clean --> compile --> mkjar --> dist --> run
- [Project 선택 --> New --> File] build.xml입력

2. 기본 타겟의 지정
- default="start.copy" :
최초로 시작되는 타켓은 start.copy
- <target name="start.copy" depends="jars">:
jars에 의존함으로 jars 타겟이 먼저 실행됩니다.
- <target name="jars" depends="compile">:
compile에 의존함으로 compile 타겟이 먼저 실행됩니다.
- <javac srcdir= "${src.dir}":
컴파일될 java 소스 파일이 있는 경로 지정
- destdir="${build.dir}":
컴파일되어 class 파일이 저장될 경로 지정
- includes="ejb/**,test/**":
ejb, test 폴더의 하위 폴더를 포함해 모든 파일을 컴파일 지정합니다.
- excludes="ejb/*.class":
이미 컴파일된 확장자가 .class인 파일은 제외합니다.
- classpath="${classpath}${classpath_weblogic}":
컴파일시 참조할 패키지를 명시합니다.
- <jar destfile="${dist.dir}/${jars.name}":
압축 파일명을 지정합니다.
- basedir="${build.dir}":
압축할 소스가 있는 폴더를 지정합니다.
- includes="classes/**": 압축할 파일들을 지정합니다.
- compress="true" : 압축을 합니다.
- <mkdir dir="${deploy.dir}"/>:
압축 파일을 저장할 폴더를 생성합니다.
- <echo message="Application Name:${jars.name}"/>:
ANT의 실행 메세지를 출력합니다.
- <copy file="${dist.dir}/${jars.name}" todir="${deploy.dir}" overwrite="true"/>
압축된 jar 파일을 지정된 폴더로 복사합니다.
- <copy file="${dist.dir}/${jars.name}" todir="${deploy.weblogic.dir}" overwrite="true"/>
weblogic application폴더로 jar 파일을 복사합니다.
- <copy file="${dist.dir}/${jars.name}" todir="${deploy.tomcat.dir}" overwrite="true"/>
Tomcat webapps 폴더로 jar 파일을 복사합니다.
- <delete file="${dist.dir}/${jars.name}"/>:
복사가 끝난 후 삭제합니다.

>>>>> build.xml
<?xml version="1.0" encoding="euc-kr" ?>

<project name="Board" default="start.copy" basedir=".">
<property name="project.name" value="$ant.project.name"/>
<property name="project.version" value="1.0"/>
<property name="user.name" value="왕눈이"/>

<!--Eclipse Project Name-->
<property name="apps.name" value="Board"/>
<!--jar 압축 파일 이름, Board.jar-->
<property name="jars.name" value="${apps.name}.jar"/>
<!--소스가 있는 기준 폴더-->
<property name="src.dir" value="."/>
<!--컴파일하여 class를 저장할 폴더-->
<property name="build.dir" value="./classes"/>
<!--jar압축 파일이 저장될 폴더-->
<property name="dist.dir" value="."/>
<!--jar압축 파일 백업본이 저장될 폴더-->
<property name="deploy.dir" value="deploy"/>
<!--EJB Component 폴더-->
<property name="deploy.weblogic.dir" value="C:/bea/user_projects/domains/ejb2030/applications"/>
<!--Tomcat lib 폴더-->
<property name="deploy.tomcat.dir" value="C:/tomcat-5.0.19/webapps/ejb2030/WEB-INF/lib"/>
<!--실행및 컴파일시 참조할 classpath 폴더-->
<property name="classpath" value="./classes;"/>
<!--실행및 컴파일시 참조할 classpath_weblogic 폴더-->
<property name="classpath_weblogic" value="C:/bea/weblogic81/server/lib/weblogic.jar"/>
<!--Documentation File 생성 폴더-->
<property name="javadoc.dir" value="docs/api"/>

<!--컴파일 타겟-->
<target name="compile">
<javac srcdir= "${src.dir}"
destdir="${build.dir}"
includes="ejb/**,test/**"
excludes="ejb/*.class"
classpath="${classpath}${classpath_weblogic}"
debug="on"
/>
</target>

<!--*은 모든 패키지, ','는 특정 패키지 나열-->
<target name="javadoc" depends="compile">
<mkdir dir="${javadoc.dir}"/>
<javadoc author="true"
destdir="${javadoc.dir}"
packagenames="*"
sourcepath="${src.dir}"
classpath="${classpath}${classpath_weblogic}"
use="true"
version="true"
windowtitle=" documentation"
private="true"/>
</target>

<target name="jars" depends="javadoc">
<jar destfile="${dist.dir}/${jars.name}"
basedir="${build.dir}"
includes="classes/**"
compress="true"
index="true"
manifest="${src.dir}/MANIFEST.MF"
>
<fileset dir="${build.dir}"/>
</jar>
</target>

<target name="start.copy" depends="jars">
<mkdir dir="${deploy.dir}"/>
<echo message="Application Name:${jars.name}"/>
<echo message="Application Name:${dist.dir}/${jars.name}"/>
<copy file="${dist.dir}/${jars.name}" todir="${deploy.dir}" overwrite="true"/>
<copy file="${dist.dir}/${jars.name}" todir="${deploy.weblogic.dir}" overwrite="true"/>
<copy file="${dist.dir}/${jars.name}" todir="${deploy.tomcat.dir}" overwrite="true"/>
<delete file="${dist.dir}/${jars.name}"/>
</target>

</project>


>>>>> EJB Component 배포용 단순한 Build.xml(권장)
- default="start.copy" :
최초로 시작되는 타켓은 start.copy
- <target name="start.copy" depends="jars">:
jars에 의존함으로 jars 타겟이 먼저 실행됩니다.
- <target name="jars" depends="compile">:
compile에 의존함으로 compile 타겟이 먼저 실행됩니다.
- <javac srcdir= "${src.dir}":
컴파일될 java 소스 파일이 있는 경로 지정
- destdir="${build.dir}":
컴파일되어 class 파일이 저장될 경로 지정
- includes="ejb/**,test/**":
ejb, test 폴더의 하위 폴더를 포함해 모든 파일을 컴파일 지정합니다.
- excludes="ejb/*.class":
이미 컴파일된 확장자가 .class인 파일은 제외합니다.
- classpath="${classpath}${classpath_weblogic}":
컴파일시 참조할 패키지를 명시합니다.
- <jar destfile="${dist.dir}/${jars.name}":
압축 파일명을 지정합니다.
- basedir="${build.dir}":
압축할 소스가 있는 폴더를 지정합니다.
- includes="classes/**": 압축할 파일들을 지정합니다.
- compress="true" : 압축을 합니다.
- <mkdir dir="${deploy.dir}"/>:
압축 파일을 저장할 폴더를 생성합니다.
- <echo message="Application Name:${jars.name}"/>:
ANT의 실행 메세지를 출력합니다.
- <copy file="${dist.dir}/${jars.name}" todir="${deploy.dir}" overwrite="true"/>
압축된 jar 파일을 지정된 폴더로 복사합니다.
- <copy file="${dist.dir}/${jars.name}" todir="${deploy.weblogic.dir}" overwrite="true"/>
weblogic application폴더로 jar 파일을 복사합니다.
- <copy file="${dist.dir}/${jars.name}" todir="${deploy.tomcat.dir}" overwrite="true"/>
Tomcat webapps 폴더로 jar 파일을 복사합니다.
- <delete file="${dist.dir}/${jars.name}"/>:
복사가 끝난 후 삭제합니다.


<?xml version="1.0" encoding="euc-kr" ?>

<project name="Board" default="start.copy" basedir=".">
<property name="project.name" value="$ant.project.name"/>
<property name="project.version" value="1.0"/>
<property name="user.name" value="왕눈이"/>

<!--Eclipse Project Name-->
<property name="apps.name" value="Board"/>
<!--jar 압축 파일 이름, Board.jar-->
<property name="jars.name" value="${apps.name}.jar"/>
<!--소스가 있는 기준 폴더-->
<property name="src.dir" value="."/>
<!--컴파일하여 class를 저장할 폴더-->
<property name="build.dir" value="./classes"/>
<!--jar압축 파일이 저장될 폴더-->
<property name="dist.dir" value="."/>
<!--jar압축 파일 백업본이 저장될 폴더-->
<property name="deploy.dir" value="deploy"/>
<!--EJB Component 폴더-->
<property name="deploy.weblogic.dir" value="C:/bea/user_projects/domains/ejb2030/applications"/>
<!--Tomcat lib 폴더-->
<property name="deploy.tomcat.dir" value="C:/tomcat-5.0.19/webapps/ejb2030/WEB-INF/lib"/>
<!--실행및 컴파일시 참조할 classpath 폴더-->
<property name="classpath" value="./classes;"/>
<!--실행및 컴파일시 참조할 classpath_weblogic 폴더-->
<property name="classpath_weblogic" value="C:/bea/weblogic81/server/lib/weblogic.jar"/>
<!--Documentation File 생성 폴더-->
<property name="javadoc.dir" value="docs/api"/>

<!--컴파일 타겟-->
<target name="compile">
<javac srcdir= "${src.dir}"
destdir="${build.dir}"
includes="ejb/**,test/**"
excludes="ejb/*.class"
classpath="${classpath}${classpath_weblogic}"
debug="on"
/>
</target>

<target name="jars" depends="compile">
<jar destfile="${dist.dir}/${jars.name}"
basedir="${build.dir}"
includes="classes/**"
compress="true"
index="true"
manifest="${src.dir}/MANIFEST.MF"
>
<fileset dir="${build.dir}"/>
</jar>
</target>

<target name="start.copy" depends="jars">
<mkdir dir="${deploy.dir}"/>
<echo message="Application Name:${jars.name}"/>
<echo message="Application Name:${dist.dir}/${jars.name}"/>
<copy file="${dist.dir}/${jars.name}" todir="${deploy.dir}" overwrite="true"/>
<copy file="${dist.dir}/${jars.name}" todir="${deploy.weblogic.dir}" overwrite="true"/>
<copy file="${dist.dir}/${jars.name}" todir="${deploy.tomcat.dir}" overwrite="true"/>
<delete file="${dist.dir}/${jars.name}"/>
</target>

</project>





3. [package Explorer]에서 "build.xml"을 선택하고 팝업메뉴에서 [Run As -- Ant Build]를 선택한다.

JAVA WEB EJB 엔터프라이즈 자바 빈즈 기초

[출처] http://dada.pe.kr/129

초보자의 간단한 EJB 프로그램 만들기

from 개발 끄적임들/케케묵어버린 것들 2005/03/14 11:32

※ 김성박님의 EJB 강좌와 EJB 엔터프라이즈 자바빈즈 바이블을 참고했습니다.

1. EJB 개발 순서
a. 홈 인터페이스(Home Interface)와 리모트 인터페이스(Remote Interface)의 작성
- 홈 인터페이스(Home Interface) : 엔터프라이즈 빈을 클라이언트가 사용할 수 있도록 생성하고 찾아주는 기능
- 리모트 인터페이스(Remote Interface) : 엔터프라이즈 빈이 클라이언트에게 제공하는 서비스를 메소드들로 선언한 인터페이스

b. Bean Class의 작성
- 엔터프라이즈 빈이 실제로 처리하는 작업을 내부코드로 구체적으로 작성하는 클래스입니다. Remote Interface에서 선언된 비즈니스 메소드를 실제로 구현해줘야 한다. 개발자 입장으로 보면 가장 할 일이 많은 작업이다.
- Bean Class를 작성할 때는 Remote Interface에서 정의된 메소드를 실제로 구현해 주는 것 외에도 EJB 컨테이너의 규약 메소드를 정의해야 한다. 이 메소드는 EJB 컨테이너가 특정한 순간에 호출하는 메소들로 아주 중요한 기능을 처리한다.

c. 디플로이먼트 디스크립터(Deployment Descriptor) 작성
- 디플로이먼트 디스크립터는 XML파일로 엔터프라이즈 빈의 이름, 트랜잭션 처리방법, 보안, 자원관리 방법 등의 정보를 작성한 파일아더,

d. 엔터프라이즈 빈과 관련된 모든 클래스와 디플로이먼트 디스크립터의 패키지화(jar로 묶음)
※ c,d를 묶어 디플로이먼트라고 한다.

e. 패키지를 EJB 컨테이너에 설치함
- 참고로 EJB 컨테이너 안에 EJB패키지를 설치하는 개발자를 배치자(deployeer)라고 한다.
- 컨테이너에 설치하는 과정을 '플로그인'이라고 말하며, 플러그인 되는 과정에서 리모트 인터페이스를 구현한 클래스, 홈 인터페이스를 구현한 클래스, 각각의 RMI 스텁, 스켈레톤 클래스가 자동으로 생성된다.


2. J2EE 설치하기
a. 그냥 다운로드 받아서 설치한다. 여기서 버젼은 1.4.x이다.

b. 환경 설정을 한다.
- 환경 변수에서 CLASSPATH를 만들고, C:SunAppServerlibj2ee.jar 를 입력한다.

- J2EE_HOME을 만들고, C:SunAppServer를 입력한다.

- JAVA_HOME을 만들고, C:SunAppServerjdk를 입력한다.

- PATH는 편집하기를 하여, C:SunAppServerin 과 C:SunAppServerjdkin을 추가한다.

- J2EE 서버에 관한 내용은 http://www.kid.pe.kr/blog/index.php?pl=118&ct1=4 에 있으므로 참고바람^^


3. 간단한 덧셈을 계산하여 주는 EJB와 jsp을 연동하는 프로그래밍하기
a. Home Interface 작성
AddHome.java
package kr.co.kid.ejb.user;

import java.rmi.*;
import javax.ejb.*;

public interface AddHome extends EJBHome {
public Add create() throws CreateException, RemoteException;
}


b. Remote Interface 작성
Add.java
package kr.co.kid.ejb.user;

import java.rmi.*;
import javax.ejb.*;

public interface Add extends EJBObject {
public int getAdd(int num1, int num2) throws RemoteException;
}


c. Bean Class 작성
AddEJB.java
package kr.co.kid.ejb.user;

import java.util.*;
import javax.ejb.*;

public class AddEJB implements SessionBean {
public int getAdd(int num1, int num2) {
return num1 + num2;
}

public AddEJB(){}
public void ejbCreate(){}
public void ejbRemove(){}
public void ejbActivate(){}
public void ejbPassivate(){}
public void setSessionContext(SessionContext sc){}
}


4. 디플로이먼트 하기
a. 먼저 컴파일을 한다.


b. class 파일을 소스 파일에서 package로 지정한 디렉토리(즉 kr.co.kid.ejb.user)를 차례대로 만들어 그곳에 복사한다.


c. J2EE의 default Server를 실행한다.

d. J2EE의 Deploytool을 실행한다.


e. File -> New -> Application 을 선택한다.

- 여기서는 임의의 폴더 project를 만들고, Add라는 임의의 이름을 지정해주었다. 이 project 폴더 안에서 jar과 ear이 만들어진다.
- OK 버튼을 누르면 Applications에 Add가 첨가되어있는 것을 볼 수 있다.


f. File -> New -> Enterprise Bean을 선택한다.

- JAR Display Name에 Add라는 이름을 지정하고 Edit Content를 선택한다.

- 앞에서 만들었던 최상위 폴더에서 kr폴더를 선택하고 Add한다. 그러면 아래 프레임에 krcokidejbuser 안의 class가 Add된 것을 알 수 있다. OK 버튼을 누르고 Next한다.

- 위의 그림처럼 설정하자. Enterprise Bean Type은 무상태, 즉 Stateless Session으로 놓아둔다. Remote Interface도 설정하고 Next한다.

- No로 설정하고 그냥 Next한다.
- 마지막 화면이 나오면 Finish한다.

- 설정이 끝나면 본화면에서 Add아래에 Add/AddEJB가 생성된 것을 확인할 수 있다.

- AddEJB위의 Add를 선택하고 아래의 Sun-specific Settings...버튼을 누르면 위 그림처럼 다이얼로그가 뜬다. 여기서 JNDI Name을 MyAdd로 설정한다.

5. EJB와 연동하기 위해 html 및 jsp 작성하기
※ 블로그에서 <>를 태그로 인식하므로 []로 대체해서 소스를 올렸다.
a. html 작성하기
Addform.html
[html]
[head]
[title]EJB 와 덧셈 [/title]
[/head]

[body]
[!--
post 방식으로 add.jsp를 호출합니다. add.jsp는 EJB객체를 이용하는 jsp 파일입니다.
--]

[form method = "post" action="Add.jsp"]
값 1:[input type = "text" name = "num1"][br]
값 2:[input type = "text" name = "num2"][br]
[input type = "submit" value="계산"]
[/form]
[/body]
[/html]


b. jsp 작성하기
Add.jsp
[%@page contentType = "text/html; charset=euc-kr" %]
[%@page import = "javax.naming.*" %]
[%@page import = "javax.rmi.PortableRemoteObject" %]
[%@page import = "kr.co.kid.ejb.user.AddHome" %]
[%@page import = "kr.co.kid.ejb.user.Add" %]
[html]
[head]
[title]EJB와 덧셈[/title]
[/head]

[body]

[%
int num1 = 0;
int num2 = 0;

try {
num1 = Integer.parseInt(request.getParameter("num1"));
} catch(Exception e) {
num1 = 0;
}

try {
num2 = Integer.parseInt(request.getParameter("num2"));
} catch(Exception e) {
num2 = 0;
}

Context initial = new InitialContext();
Object obj = initial.lookup("MyAdd");

AddHome home = (AddHome)PortableRemoteObject.narrow(obj, AddHome.class);

Add a1 = home.create();
out.println("결과값 : " + a1.getAdd(num1, num2));
%]

[/body]


6. EJB와 연동하기 위해 Web Compoent 만들기
a. Deploytools에서 File -> New -> Web Component... 를 선택한다.

- Create New WAR Module in Application에서 Add를 선택하고, War Display Name은 AddWar로 설정한 후 아래의 Edit Content 버튼을 클릭한다.

- Enterprise Beans 와 마찬가지로 다이얼로그 창이 뜨는데, 조금전에 작성했던 Addform.html과 Add.jsp를 선택하여 Add하고, Next한다.

- Web Component로 JSP를 사용할 것이기 때문에 JSP Page를 선택하고 Next.

- JSP filename으로 Add.jsp를 선택하면 자동으로 에디트툴에 설정해준다. 그 후에 Next하고 Finish

- AddWar라는 이름의 Web Component가 생성된 것을 확인할 수 있다. AddWar를 선택하고 General Tab의 Context Root에 AddContextRoot라고 입력한다.

- EJB Ref's 탭의 Add 버튼을 선택하고 위 그림처럼 설정한다.

b. Applications의 바로 아래 Add를 선택한 후, Tool -> Deploy를 선택한다.

- Return Client Jar의 라디오 체크버튼을 체크하고 OK한다.

- 위의 그림처럼 나오면 deplyment를 성공한 것이다.

- localhost:4848을 선택하면 오른쪽 프레임에 Add가 running되어 있는 것을 확인한다. (deployment 되었음)

c. 제대로 연동이 되는지 웹브라우저에서 확인해보자

- 주소를 http://localhost:8080/AddContextRoot/Addform.html 지정하고 위의 화면이 나오면 첫번째 관문은 통과~ 값을 입력하고 계산 버튼을 눌러보자!

- Add.jsp가 불러지고 위의 화면처럼 결과값이 나오면 제대로 연동된 것이다~ 축하~

7. 몇가지 참고할만 한 것들
a. deployment된 파일들은 C:SunAppServerdomainsdomain1applicationsj2ee-appsAdd 에서 확인할 수 있다.
b. 자바 1.4대 부터는 이전처럼 같은 폴더 안에 있는 class파일을 그냥 import할 수 없다. package 명령을 사용하여 폴더를 지정해줘야한다. 4-b 디렉토리 설정과 5-b jsp 소스의 3,4번째 import 참고

8. 후기
인터넷에 나온 예제들이 J2EE 1.3을 기준으로 하여 약간씩 변화된 것이 많다. 특히 deploy tools의 설정이 많이 변경되었다. (삽질이 많았다 ㅜㅜ) 또한 jsp에서 사용자 class의 import와 java파일의 package 설정 또한 자세히 나와있지 않아(자바 기초 부족 ㅡㅡ;), 여러 서적을 뒤적거리면서 찾아냈다. (이것땜시 이틀 날림;;)
아직 끝난 것은 아니다. MySQL 등 관계형 데이터베이스와 연동을 시도해야한다 ㅡㅁㅡ; 휴~

JSP MVC 모델 기본 설명 : 모델 2 구조를 이용한 MVC 패턴 구현

[출처] http://dawnisthm.tistory.com/152

< 모델 2 구조를 이용한 MVC 패턴 구현 >

1. 모델 2 구조의 구현 방법 : 기본 MVC 패턴 구현 기법

[SimpleController.java]



package soldesk.mvc;

import java.io.IOException;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class SimpleController extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

}

private void processRequest(HttpServletRequest request, HttpServletResponse response)

throws IOException, ServletException {

// 2단계, 요청 파악

// request 객체로부터 사용자의 요청을 파악하는 코드

String type = request.getParameter("type");

// 3단계, 요청한 기능을 수행한다.

// 사용자에 요청에 따라 알맞은 코드

Object resultObject = null;

if (type == null || type.equals("greeting")) {

resultObject = "안녕하세요.";

} else if (type.equals("date")) {

resultObject = new java.util.Date();

} else {

resultObject = "Invalid Type";

}

// 4단계, request나 session에 처리 결과를 저장

request.setAttribute("result", resultObject);

// 5단계, RequestDispatcher를 사용하여 알맞은 뷰로 포워딩

RequestDispatcher dispatcher =

request.getRequestDispatcher("/simpleView.jsp");

dispatcher.forward(request, response);

}

}


[simpleView.jsp]

<%@ page language="java" contentType="text/html; charset=EUC-KR"%>

<html>

<head>

<title>뷰</title>

</head>

<body>

// 컨트롤러가 전달한 값을 읽어옴.

결과 : <%= request.getAttribute("result")%>

</body>

</html>



[WEB-INF\web.xml] 추가

<servlet>

<servlet-name>SimpleController</servlet-name>

<servlet-class>soldesk.mvc.SimpleController</servlet-class>
< /servlet>

<servlet-mapping>

<servlet-name>SimpleController</servlet-name>

<url-pattern>/simple</url-pattern>

</servlet-mapping>


그리고 SimpleController.java 실행시켜 보자.(JSP 페이지 구동시키는 아님을 주의!!)

2. 커맨드 패턴 기반의 코드

컨트롤러 서블릿이 사용자가 어떤 기능을 요청했는지 분석하기 위해 가장 일반적으로 사용하는 방법은 명령어를 사용하는 것이다.

  • 특정 이름의 파라미터에 명령어 정보를 전달한다.
  • 요청 URI 자체를 명령어로 사용한다.

<커맨드 패턴을 이용한 명령어 처리기의 분리>

String commend = request.getParameter("cmd");

CommandHandler handler = null;

if(command == null){

handler = new NullHandler();

}else if{command.equals("BoardList")){

handler = new BoardListHandler();

}else if(command.equals("BoardWriteForm"){

handler = new BoardWriteFormHandler();

}

String viewPage = handler.process(request, response);

RequestDispatcher dispatcher = request.getRequestDispatcher(viewPage);

dispatcher.forward(request, response);


명령어를 처리하는 핸들러 클래스들은 CommandHandler 인터페이스를 구현하면 된다.

핸들러 클래스에서 처리해야 작업

public class SimeHandler implements CommandHandler{

public String process(HttpServletRequest request, HttpServletResponse response)

throws Throwable{

// 1. 명령어과 관련된 비즈니스 로직 처리

// 2. 페이지에서 사용할 정보 저장

request.setAttribute("someValue", value);

// 3. 페이지의 URI 리턴

return "/view/someView.jsp";

}

}

3. 설정 파일에 커맨드와 클래스의 관계 명시하기

: <명령어, 명령어 핸들러 클래스> 매핑 정보를 설정 파일에 저장

BoardList = soldesk.command.BoardListHandler

BoardWriteForm = soldesk.command.BoardWriteFormHandler

[ControllerUsingFile.java]

package soldesk.mvc.controller;

import java.io.FileInputStream;

import java.io.IOException;

import java.net.URL;

import java.util.Iterator;

import java.util.Map;

import java.util.Properties;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import soldesk.mvc.command.CommandHandler;

import soldesk.mvc.command.NullHandler;

public class ControllerUsingFile extends HttpServlet {

// <커맨드, 핸들러 인스턴스> 매핑 정보 저장

private Map commandHandlerMap = new java.util.HashMap();

public void init(ServletConfig config) throws ServletException {

String configFile = config.getInitParameter("configFile");

Properties prop = new Properties();

FileInputStream fis = null;

try {

String configFilePath = config.getServletContext().getRealPath(

configFile);

fis = new FileInputStream(configFilePath);

prop.load(fis);

} catch (IOException e) {

throw new ServletException(e);

} finally {

if (fis != null)

try {

fis.close();

} catch (IOException ex) {

}

}

Iterator keyIter = prop.keySet().iterator();

while (keyIter.hasNext()) {

String command = (String) keyIter.next();

String handlerClassName = prop.getProperty(command);

try {

Class handlerClass = Class.forName(handlerClassName);

Object handlerInstance = handlerClass.newInstance();

commandHandlerMap.put(command, handlerInstance);

} catch (ClassNotFoundException e) {

throw new ServletException(e);

} catch (InstantiationException e) {

throw new ServletException(e);

} catch (IllegalAccessException e) {

throw new ServletException(e);

}

}

}

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

process(request, response);

}

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

process(request, response);

}

private void process(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

String command = request.getParameter("cmd");

CommandHandler handler = (CommandHandler) commandHandlerMap

.get(command);

if (handler == null) {

handler = new NullHandler();

}

String viewPage = null;

try {

viewPage = handler.process(request, response);

} catch (Throwable e) {

throw new ServletException(e);

}

RequestDispatcher dispatcher = request.getRequestDispatcher(viewPage);

dispatcher.forward(request, response);

}

}


[WEB-INF\web.xml] 추가

<servlet>

<servlet-name>ControllerUsingFile</servlet-name>

<servlet-class>soldesk.mvc.controller.ControllerUsingFile</servlet-class>

<init-param>

<param-name>configFile</param-name>

<param-value>/WEB-INF/commandHandler.properties</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>ControllerUsingFile</servlet-name>

<url-pattern>/controllerUsingFile</url-pattern>

</servlet-mapping>



[commandHandler.properties]

hello = soldesk.mvc.command.HelloHandler

[CommandHandler.java]

package soldesk.mvc.controller;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import soldesk.mvc.command.CommandHandler;

public class CommandHandler {

public String process(HttpServletRequest request, HttpServletResponse response) throws Throwable{

return.setAttribute("hello", "안녕하세요!");

return "/mvc/view/hello.jsp";

}

}


[HelloHandler.java]

package soldesk.mvc.command;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import soldesk.mvc.command.CommandHandler;

public class HelloHandler implements CommandHandler {

public String process(HttpServletRequest request,

HttpServletResponse response) throws Throwable {

request.setAttribute("hello", "안녕하세요!");

return "/mvc/view/hello.jsp";

}

}


[NullHandler.java]

package soldesk.mvc.command;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class NullHandler implements CommandHandler {

@Override

public String process(HttpServletRequest request,

HttpServletResponse response) throws Throwable {

return "/mvc/view/nullCommand.jsp";

}

}


[hello.jsp]

<%@ page contentType = "text/html; charset=euc-kr" %>

<html>

<head><title>Hello</title></head>

<body>

<%= request.getAttribute("hello") %>

</body>

</html>


[nullCommand.jsp]

<%@ page contentType="text/html; charset=euc-kr" %>

<html>

<head><title>에러</title></head>

<body>

잘못된 요청입니다.

</body>

</html>



4. 요청 URI 명령어로 사용하기

: 명령어 기반의 파라미터는 컨트롤러의 URL 사용자에게 노출된다는 단점이 있다.

따라서 URL 일부를 명령어로 사용하여 이런 문제를 방지할 있다.

  • URI 명령어로 사용하기 위해서는 컨트롤러 서블릿의 process()메서드에서 request.getParameter("cmd") 대신

    String command = request.getRequestURI();

    if(command.indexOF(request.getContextPath()) == 0){

    command = command.subString(request.getContextPath().length());

    }

사용하면 된다.



[ControllerUsingURI.java]

package soldesk.mvc.controller;

import java.io.FileInputStream;

import java.io.IOException;

import java.net.URL;

import java.util.Iterator;

import java.util.Map;

import java.util.Properties;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import soldesk.mvc.command.CommandHandler;

import soldesk.mvc.command.NullHandler;

public class ControllerUsingURI extends HttpServlet {

// <커맨드, 핸들러인스턴스> 매핑 정보 저장

private Map commandHandlerMap = new java.util.HashMap();

public void init(ServletConfig config) throws ServletException {

String configFile = config.getInitParameter("configFile2");

Properties prop = new Properties();

FileInputStream fis = null;

try {

String configFilePath = config.getServletContext().getRealPath(

configFile);

fis = new FileInputStream(configFilePath);

prop.load(fis);

} catch (IOException e) {

throw new ServletException(e);

} finally {

if (fis != null)

try {

fis.close();

} catch (IOException ex) {

}

}

Iterator keyIter = prop.keySet().iterator();

while (keyIter.hasNext()) {

String command = (String) keyIter.next();

String handlerClassName = prop.getProperty(command);

try {

Class handlerClass = Class.forName(handlerClassName);

Object handlerInstance = handlerClass.newInstance();

commandHandlerMap.put(command, handlerInstance);

} catch (ClassNotFoundException e) {

throw new ServletException(e);

} catch (InstantiationException e) {

throw new ServletException(e);

} catch (IllegalAccessException e) {

throw new ServletException(e);

}

}

}

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

process(request, response);

}

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

process(request, response);

}

private void process(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

String command = request.getRequestURI(); // /soldesk/hello.do

if (command.indexOf(request.getContextPath()) == 0) { // /soldesk

command = command.substring(request.getContextPath().length()); // /hello.do

}

CommandHandler handler = (CommandHandler) commandHandlerMap.get(command);

if (handler == null) {

handler = new NullHandler();

}

String viewPage = null;

try {

viewPage = handler.process(request, response);

} catch (Throwable e) {

throw new ServletException(e);

}

RequestDispatcher dispatcher = request.getRequestDispatcher(viewPage);

dispatcher.forward(request, response);

}

}


[web.xml]

<servlet>

<servlet-name>ControllerUsingURI</servlet-name>

<servlet-class>soldesk.mvc.controller.ControllerUsingURI</servlet-class>

<init-param>

<param-name>configFile2</param-name>

<param-value>

/WEB-INF/commandHandlerURI.properties

</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>ControllerUsingURI</servlet-name>

<url-pattern>*.do</url-pattern>

</servlet-mapping>


[commandHandlerURI.properties]

/hello.do=soldesk.mvc.command.HelloHandler


컴퓨텍스 2012 아름다운(?)부스걸

평은 사양...

[출처] http://news.danawa.com/News_List_View.php?nModeC=1&nSeq=2171834

[컴퓨텍스] 부스걸 열전 1부

등록일:2012-06-06 17:30:20 | 조회수:295

2012년 Computex에 많은 업체들이 자사의 제품을 좀 더 홍보하기 위해 화려한 퍼보먼스와 선물 그리고 부스걸을 통해 Computex를 찾은 많은 사람들의 시선을 끌고 있다.

이곳을 오지 않은 다나와 유저들에게 잠깐의 여유를 주고자 한다.

Xcode4로 시작하는아이폰 프로그래밍


Yoshnao Mori지음 / 김태현 옮김 : 로드북(roadbook)


Section 3-1
오프젝티브 C 기본

C + smalltalk(NextStep) -> ObjectiveC


Section 3-2 포인터 변수

01 NSString *str = [NSString stringWithString: @"문자열"];

02 myLabel.text = str;

문자열 데이터 : @"문자열";

문자열 데이터 표시
NSLog(@"문자열");
NSLog(@"문자열 포멧", 값);

많은 데이터를 처리하기 : 배열
NSArray *배열 변수 =
[NSArray arrayWithObjects: 값, 값, 값, 값, … ,nil];

배열의 데이터 개수
배열 변수.count

번호를 지정해서 읽기
[배열변수 objectAtIndex:번호];

사전데이터 만들기
NSDictionary *사전 데이터 =
[NSDictionary dictionaryWithObjectsAndKeys:
값, 키, 값, 키, 값, 키, …., nil];

모든 키
사전 데이터.allKeys

키로 지정해서 읽기
[사전 데이터 objectForKey: 키];

Section 3-3 : 제어문


Section 3-4 : 클래스
오브젝트 사용방법

오브젝트 만들기
클래스명 *오브젝트명 = [[클래스명 alloc] 초기화 명령;

오브젝트 해제하기
[오브젝트명 release];

속성에 엑세스 하기
변수 = 오브젝트명.속성;
오브젝트명.속성 = 변수;

메소드 실행하기
[오브젝트명 메소드];

값을 넘겨주면서 실행할 때
[오브젝트명 메소드:인수];
[오브젝트명 메소드: 인수1 레이블: 인수2];

ex: 01 [myObject calc: 10 and 20]; <- myObject의 calc메소드에 인수 10, add라는 두번째 인수명에 인수 20을 넘겨주고 명령한다.

헤킹에 이은 정보과학기술의 신종범죄형이라고 해야 하나요?
기사 주소: http://www.dt.co.kr/contents.html?article_no=2012060102011857741002
[알아봅시다] 갈수록 확산되는 `보이스피싱`

은행사칭 문자로 사이트 접속유도
고객정보로 인증서 발급받는 수법
금융사 홈피 정확한 주소 확인해야


#직장인 최모씨는 검찰청 수사관을 사칭한 사기범으로부터 "적발된 금융사기 조직이 당신의 현금카드와 통장을 사용해 조사가 필요하다. 한 시간 안으로 검찰청으로 출두하라"는 전화를 받았습니다. 시간이 촉박해 시간 내 출두가 어렵다고 하자 사기범은 진술 전 녹음에 대한 동의를 받고 주민번호, 통장 계좌번호 등 개인정보를 요구했습니다. 이 후 사기범은 획득한 정보로 다른 기관에서 공인인증서를 발급 받아 최모씨 통장에서 3000만원을 인출해갔습니다.

#대전에 사는 김모씨는 정보유출피해방지를 위해 보안서비스 강화가 필요하다는 A은행의 문자메시지를 받았습니다.

김모씨는 사기범이 보낸 은행 주소를 입력해 홈페이지에 접속했지만, 평소 인터넷 뱅킹 절차와는 달리 주민등록번호를 비롯해 김모씨의 모든 계좌 정보 및 보안카드를 요구해 즉시 접속을 끊었습니다. 김모씨는 "사기범이 알려준 피싱사이트가 은행 홈페이지와 별 구분이 되지 않아 순간 개인정보를 유출할 뻔 했다"며 가슴을 쓸어내렸습니다.

최근 카드론ㆍ대출사기 등을 이용한 보이스피싱(Voice Phishing)이 날로 지능화하고 있습니다.

◇감쪽같이 사라진 내 예적금, 알고도 당한다=과거 노년층 대상으로 벌어졌던 보이스피싱이 교묘해지며, 직장인과 주부, 심지어는 대학생들까지 표적이 되고 있습니다. 알고도 당하는 보이스피싱, 어떻게 예방해야 할까요?

감독당국 및 금융기관의 지속적인 보이스피싱 피해 예방으로 보이스피싱에 대한 소비자의 인식이 강화됐지만, 이를 역이용하는 신종 수법까지 등장했습니다.

보이스피싱 피해에 대한 소비자의 우려를 역이용해 처음부터 개인정보를 묻거나 금전을 요구하는 방식이 아니라 공공기관 사칭 또는 피싱사이트를 통해 피해자를 현혹해 개인정보를 알아낸 후, 이 개인정보를 통해 다른 기관에서 공인인증서를 새로 발급받아 예금을 인출하거나, 금융기관에서 대출을 받는 수법입니다.

과거 경찰정, 금융감독원 등 주로 공공기관을 사칭해 피해자를 속여 피싱사이트 등에 접속하게 하거나 돈을 보내는 수법은 이제 `구석기 수법'이 됐습니다.

최근에는 전화가 아닌 문자메시지로 고객의 금융 정보를 빼가거나 아예 전화번호를 금융사 콜센터나 본사 직통번호처럼 위변조해 역으로 고객 정보를 빼가는 최첨단 MMS피싱도 기승을 부리고 있습니다.

특히 우리은행, KB국민은행, 농협 등 주요 은행을 대상으로 한 신종 보이스피싱이 전국적으로 확산되고 있는 상황입니다.

최근 경찰청과 금융감독원 등에 접수된 피해사례를 보면, 보이스피싱에 대해 잘 알고 있는 젊은 연령층의 피해사례 접수가 증가했고, 그 수법도 혀를 내두를 만큼 치밀합니다.

전국으로 확산되고 있는 은행 대상의 보이스피싱 수법은 전화가 아닌 문자메시지를 통해 무작위로 고객 정보를 빼가는 수법입니다.

KB국민은행과 우리은행, 농협 등의 콜센터 번호 혹은 비슷한 짝퉁 홈페이지를 내걸고 보안카드 승급 서비스 등을 안내해 짝퉁 홈페이지에 접속하게 합니다.

기존에 사용했던 콜센터 번호와 똑같기 때문에 의심하지도 않을뿐더러 문자메시지 안에 포함된 홈페이지 사이트도 구분이 힘들 정도로 유사한 주소를 사용하고, 이 또한 계속 위변조해 진화를 거듭하고 있습니다.

최근에는 아예 은행을 가장해 포털사이트 정보유출로 보안승급이 필요하다는 `역 보이스피싱' 한 사례까지 나왔습니다. 네이버, 다음 등 포털사이트의 개인정보가 유출됐다며 은행의 보안카드 등 정보를 바꾸지 않으면 큰 피해를 당할 수 있다고 역으로 접속하게 하는 수법입니다.

짝퉁 홈페이지도 우리은행의 경우 `www. woori banik', KB국민은행은 `KB efstar' 등 눈으로 분간하기 어려울 정도로 유사합니다.

문자메시지를 받은 고객이 짝퉁 홈페이지로 접속하면 각종 아이디와 보안카드 일련번호, 보안코드 등을 입력하게 해서 고스란히 개인정보를 빼갑니다. 이 정보를 통해 피해자의 공인인증서를 재발급 받아 계좌에 있는 모든 돈을 빼가는 방식입니다.

과거 고객이 직접 돈을 입금하는 방식에서 한 단계 진화한 수법으로, 고객 계좌에 있는 예적금 뿐만 아니라 마이너스 통장에 있는 일종의 대출금도 빼가기 때문에 피해금액은 과거 수법보다 많게는 수 십배에 달합니다.

더욱 큰 문제는 이 같은 피싱사이트가 계속 주소를 바뀌면서 나타나고 있어, URL로 특정해 범죄를 차단할 수 있는 방안 자체가 없다는 것입니다.

또한 경찰청과 금융당국이 이 같은 신종 보이스피싱 피해사례와 수법, 피해금액 등에 대해 DB화 조차 되지 않아, 늦장대응 아니냐는 비판도 일고 있습니다.

금융권 피싱 범죄를 처벌할 수 있는 법안도 정보통신망 이용촉진 및 정보보호 등에 관한 법률(정통망법), 형법(사기죄), 주민등록법 등 처벌에 적용될 수 있는 법안은 다양하지만 피싱 범죄가 사이버범죄부터 사기대출, 개인정보도용 등 여러 개로 쪼개져 있어 처벌 단계가 복잡합니다.

◇신종 보이스피싱 예방, 이것만은 알아두자=어떠한 경우에도 개인의 금융자산 보호 및 조사 등을 이유로 전화를 이용해 계좌번호, 카드번호, 주민등록번호 등의 정보를 요구하는 경우가 없으므로, 이러한 요구를 받은 경우 일체 대응하지 말고, 해당기관에 사실 관계를 반드시 확인해야 합니다.

개인정보를 알려준 경우 즉시 은행 또는 금융감독원(☎1332) 신고를 통해 개인정보노출자 사고예방시스템에 등록하고, 추가적인 피해를 최소화하기 위해 비밀번호와 보안카드의 변경 또는 교체해야 합니다. 사고예방시스템이란 신청자의 개인정보(성명, 주민등록번호 등)를 금융정보 교환망을 통해 금융회사에 전파하고 금융회사는 신청자 명의의 특정 금융거래(신용카드 발급, 예금계좌 개설 등)시 본인 확인에 유의토록 하는 시스템입니다.

금융회사의 인터넷 홈페이지에 접속할 때에는 반드시 포털사이트 등을 통해 정확한 인터넷 주소를 확인해야 합니다.

공인인증서는 금융결제원, 코스콤, 한국정보인증, 한국전자인증, 한국무역정보통신 5개 인증기관으로부터 제한없이 중복적으로 받아 동시에 사용할 수 있습니다.

금융회사가 제공하는 일회용비밀번호(OTP), 휴대폰 문자알림서비스 등을 이용하면 보다 안전하게 거래할 수 있습니다.

여신금융협회는 날로 정교해지는 신종금융사기 피해 예방을 위해 피해유형 및 대처방법을 상시 제공할 예정입니다.

금융소비자들은 신종 금융사기 피해유형 및 예방요령을 미리 숙지하면 피해를 예방할 수 있습니다. 여신금융협회 홈페이지(www.crefia.or.kr) 내 소비자보호 → 불법금융 피해예방 및 대처방안을 활용하면 됩니다.

길재식기자 osolgil@

[출처] http://park.org/Korea/Pavilions/PublicPavilions/Government/kipo/fourm/a3-1.html

특허,실용신안 등록출원의 명세서 심사기준 연구


특허심사기준연구회 소개

특허청 특허심사기준연구회는 특허청 연구회 활성화의 일환으로 1996년4월8일에 특허· 실용신안심사기준을 연구하기 위해서 발족한 연구회입니다. 연구회의 조직과 연구활동상 황을 소개하겠습니다.

또한, 본연구회의 연구결과를 본지에 발표하여 그 내용의 적부를 검 증받고자 합니다.

  1. 연구회명칭

  2. 특허심사기준연구회
  3. 목적
  4. 특허법 개정에 대응할 수 있는 심사기준의 연구 일본, 미국, 유럽특허청의 특허심사기준 및 제도연구 특허제도의 운용에 대한 국제적인 조화를 도모할 수 있는 특허제도 의 연구 산업재산권운영협의회의 자문 및 의견제시

  5. 연구회원
  6. 소 속 성 명 비 고
    심사4국 영상기기심사담당관실 전 기 전 자 통 신 반 도 체 영 상 기 기 공업서기관 이 종 일 심 사 관 홍 승 규 공업서기관 이 택 수 심 사 관 조 재 신 " 장 완 호 " 김 민 희 " 강 흠 정 " 박 형 식 " 김 승 조 " 강 해 성 총괄회장 한·일분임 간 사 한·일분임 미국분임 미국분임 유럽분임 미국분임 미국분임 분임총괄 유럽분임 분임총괄 미국분임 분임총괄 한·일분임

  7. '96 연구계획
  8. 4월 : 연구회구성 및 자료수집 5월 ~ 6월 : 외국특허심사기준 및 자료 등의 번역 7월 ~ 11월 : 심사기준 연구 12월 : 연구결과 종합 및 책자발간 특허청 특허심사기준연구회 연구자료 001[명세서] 특허·실용신안등록출원의 명세서 심사기준에 관한 연구 1996.6

특 허 청 특허심사기준연구회

심사4국 공업서기관 이종일

차 례

    제 1 편 명 세 서
    제1장 명세서 기재요건
    1. 명세서의 의의
    2. 특허로써 보호를 받고자 하는 발명의 파악
    3. 발명의 상세한 설명
    3·1 특허법 제42조 제3항
    3·1·1 발명의 목적
    3·1·2 발명의 구성
    3·1·3 발명의 효과
    3·1·4 발명의 목적, 구성 및 효과의 상호관련
    3·1·5 특허청구범위의 기재와의 대응관계
    3·2 특허법 제42조 제3항의 위반 유형
    3·2·1 발명의 목적의 기재불비
    3·2·2 발명의 구성의 기재불비
    3·2·3 발명의 효과의 기재불비
    3·2·4 발명의 목적, 구성 및 효과의 상호관련에 대한 기재불비
    3 ·2·5 특허청구범위와의 관계의 기재불비
    3·2·6 거절이유 통지시의 유의사항
    4. 특허청구범위
    4·1 특허법 제42조 제4항
    4·2 청구항
    4·3 발명의 상세한 설명에 의하여 뒷받침될 것(특허법 제42조 제4항 제1호)
    4·3·1 특허법 제42조 제4항 제1호의 위반 유형
    4·4 명확하고 간결하게 기재할 것(특허법 제42조 제4항 제2호)
    4·4·1 특허법 제42조 제4항 제2호의 위반 유형
    4·5 구성에 없어서는 아니되는 사항만의 기재(특허법 제42조 제4 항 제3호)
    4·5·1 특허법 제42조 제4항 제3호의 위반 유형
    4·6 청구항의 기재요령
    4·6·1 특허법시행령 제5조
    4·6·2 독립항(특허법시행령 제5조 제1항 및 제2항)
    4·6·3 종속항(특허법시행령 제5조 제1항 및 제3항)
    4·6·4 종속항(특허법시행령 제5조 제4항)
    4·6·5 종속항(특허법시행령 제5조 제5항)
    4·6·6 종속항(특허법시행령 제5조 제6항)
    5. 명세서 기재불비 일반
    제2장 1특허출원의 요건
    1. 특허법 제45조
    2. 1특허출원의 요건
    2·1 1발명 1출원의 예외
    2·2 1군의 발명
    2·2·1 의의
    2·2·2 산업상 이용분야가 동일한 발명
    2·2·3 해결과제가 동일한 발명
    2·2·4 구성에 불가결한 사항의 주요부가 동일한 발명
    2·3 1실용신안등록출원의 범위
    3. 특허법시행령 제6조
    3·1 특허법시행령 제6조 제1항
    3·2 1특허출원요건의 설명
    3·2·1 물건 또는 방법에 관한 발명
    3·2·2 기본이 되는 물의 발명이 있는 경우
    3·2·3 기본이 되는 방법의 발명이 있는 경우
    3·3 1특허출원의 기재

제 1 편 명 세 서

특허를 받고자 하는 자는 명세서, 필요한 도면 및 요약서 를 첨부한 출원서를 특허청장에게 제출해야 한다(특허법 제 42조 제1항 및 제2항). 명세서에는 「발명의 명칭」, 「도면 의 간단한 설명」,「발명의 상세한 설명」 및 「특허청구범위 」(이하"명세서의 기재요건"이라 한다.)를 기재해야 한다.(특 허법 제42조 제2항) 「 발명의 상세한 설명 」에 기재하여야 할 내용에 대해서는 동 제3항에, 「 특허청구범위」에 대해서 는 동 제4항 및 제5항에 규정되어 있다. 또한 2이상의 발명이 라도 하나의 출원서로 특허 출원할 수 있는 요건 「1특허출 원의 요건」에 대해서는 동법 제45조에 규정되어 있다. 이하, 명세서의 기재요건에 대해서는 제1장에서, 1특허출 원의 요건에 대해서는 제2장에서 설명한다.

제1장 명세서 기재요건

  1. 명세서의 의의

  2. 특허제도는 발명을 보호·장려하고 그 이용을 도모함으로써 기술의 발전을 촉진하여 산업발전에 이바지함을 목적으로 하고 있다. (특허 법 제1조) 즉 새로운 기술을 개발하여 그것을 공개하도록 한 자에 대하여 일정기간, 일정 조건하에서 특허권이라고 하는 독점권을 부여하므로서 발명의 보호를 도모하는 한편 제3자 에 대해서는 그 공개에 의해 발명의 내용을 알려서 그 발명을 이용할 기회를 주 는 것이다. 그리고 발명에 대한 이와 같은 보호 및 이용은 발명의 기 술적 내용을 공개하기 위한 기술문헌, 특허발명의 기술적 범위를 정확히 명시하는 권리서로서 의 사명을 갖는 명세서를 통해서 이루어지게 된다. 특허법 제42조 제3항은, 명세서의 발명의 상세한 설명의 기재요 건에 대해서 규정하고 있다. 이는 기술문헌으로서의 사명을, 또 동 제42조 제4항 및 제5항은 특허청구범위의 기재요건에 대해서 규정하고 있다. 이는 권리서로서 의 사명을 표 명하고 있다. 따라서 특허제도의 목적은 이들 규정의 요건을 만족하 는 명세서에 의해서 비로소 달성되는 것이다. 그러므로 심사관은 명세서의 상세 한 설명과 특 허청구범위의 기재상태에 대해서 같은 정도의 중요도를 두고 심사할 필요가 있 다.

  3. 특허로써 보호를 받고자 하는 발명의 파악
  4. 특허법 제42조 제4항 제3호는 특허청구범위에는 「 보호를 받고자 하 는 발명」의 구성에 없어서는 아니되는 사항만으로 기재한다는 취 지를 규정하고 있다. 이것은 발명의 상세한 설명에 개시한 「발명」중에서 출원인이 스스 로의 판단으 로 특허로써 보호를 받고자 하는 발명에 대해서 기재하고 있는 곳은 특허청구범 위라는 것을 명확히 나타내고 있는 것이다. 즉,

    (1) 예를 들어서 발명의 상세한 설명에 기본이 되는 물의 발명에 대해서 다 음과 같은 1특허출원의 범위로 할 수 있는 발명에 대해서 다면 적으로 기 재되어 있을 경우, 그 발명중에서 어느 발명에 대하여 특허로써 보호를 받고자 하는가.

      a. 그 물을 생산하는 방법의 발명
      b. 그 물을 사용하는 방법의 발명
      c. 그 물을 취급하는 방법의 발명
      d. 그 물을 생산하는 기계, 기구, 장치, 기타 물의 발명
      e. 그 물의 특정성질을 모두 이용하는 물의 발명
      f. 그 물을 취급하는 물의 발명

    (2) 발명의 상세한 설명에 기재된 상위개념의 발명 또는 하위개념 의 발명중 어느 계층의 발명에 대해서 특허로써 보호를 받고자 하는가 를 출원인이 스스로의 의사로 선택하여 그 발명에 대해 특허청구범 위에 기재할 수 있다는 것을 의미하고 있다고 해석된다. 따라서 각 청구항에 기재된 발명의 파악은 출원인이 스스로의 의 사로 표현한 특허청구범위의 기재를 존중하여 각 청구항에 기재된 사항에 의해서 한다. 이 경 우 그 발명의 파악을 하는데 발명의 상세한 설명 및 도면을 참작할 수 있다. 그 러나 특허청구범위의 기재를 떠나서 발명의 상세한 설명에 기재된 발명의 목적, 구성, 효과 및 도면에 의해서만 청구항에 기재된 발명을 파악해서는 안된다.

  5. 발명의 상세한 설명

3·1 특허법 제42조 제3항

    [특허법 제42조 제3항]
      「제2항 제3호의 규정에 의한 발명의 상세한 설명에는 그 발명에 속하는 기술분야 에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 그 발명의 목적 ·구성 및 효과를 기재하여야 한다.」
        (1) 통상의 지식인「그 발명이 속하는 기술분야에서 통상의 지식을 가진 자」 (이하「통상의 지식인」이라 한다)란 「출원 발명이 속하는 기술분야에서 보통정도의 기술적 이해력을 가진 자」를 말한다.
        (2) 용이하게 실시할 수 있을 정도「실시할 수 있을」이란 물의 발명에서는 그 물을 만들 수 있고, 그 물을 사용할 수 있으며, 방법의 발명에 있어서는 그 방법을 사용할 수 있고, 물을 생산하는 방법에 있어서는 그 방법에 의해 물을 만들수 있을 것을 의미한다. 「용이하게 그 실시를할 수 있을 정도」란「출원시의 기술상식으로 봐서 출원 발명이 정확히 이해될 수 있고, 또한 재현될 수 있는 정도」를 말한다.

    3·1·1 발명의 목적

      「발명의 목적」에는 산업상 이용분야, 종래기술 및 발명이 해결 하고자 하는 과제 등이 기재되어야 한다. 여기서 종래기술에 관한 문헌은 청구항에 기재된 발명의 특허성을 평가할 때 중요한 수단의 하나이다. 따라서 특허를 받고자 하는 발명과 관련이 깊은 문헌이 존재할때는 가능한 한 그 문헌명을 기재해야 한다.

    3·1·2 발명의 구성

      (1) 「발명의 구성」에는 과제를 해결하기 위해 어떤 수단을 강구 했는지에 대해서 그 작용과 함께 기재되고 필요할 때는 당해 발명의 구성을 실제 어떻게 구체화 했는가를 나타내는 실시예가 기재되어야 한다. 또한, 그 실시예는 가장 좋은 결과가 얻어질 수 있는 것을 가능한 한 여러 종류 열거해서 기재하고 필요에 따라서는 구체적 숫자에 의거해서 사실을 기재해야 한다. 일반적으로 효과의 예측이 곤란한 분야(예, 화학물질)에 있어서는 통상의 지식인이 용이하게 실시할 수 있기 위해서는 통상 하나 이상의 대표적인 실시예가 필요하다.
      (2) 과제를 해결하는 수단을 구체적인 수단 그 자체(예, 구성)로 표현하지 않고, 그 수단이 갖는 기능 또는 작용을 이용해서 표현하는 경우의 기재는 그 기재로부터 통상의 지식인이 용이하게 그 발명을 실시할 수 있는 경우에 한해 인정한다. 과제를 해결하는 수단의 기능 또는 작용은 「발명의 효과」로서의측면도 갖지만 이들 표현은 과제를 해결하는 수단을 규정하고 있으므로 「발명의 구성」으로 취급한다.
      (3) 화학물질발명의 경우는 화학물질 그 자체가 「발명의 구성」이므로, 발명의 구성인 화학물질은 원칙적으로 화학물질명 또는 화학구조식에 의해 특정되어 있어야 한다. 또 적어도 하나의 화학물질의 제조방법, 동일성확 정자료 및 용도가 통상의 지식인이 용이하게 그 실시를 할 수 있을 정도로 발명의 상세한 설명에 기재되어 있어야 된다. 이들은 발명의 구성으로 취급하지만 발명의 효과를 인정하기 위한 것도 된다.
      (4) 물질의 특정성질 (속성)을 이용해서 과제해결을 도모한 용도발명 (예를들어, 의약, 농약에 관한 발명)에 있어서의 용도는 발명의 구성이다.

    3·1·3 발명의 효과

      (1) 「발명의 효과」에는 당해 발명에 의해서 생기는 특유의 효과를 가능한한 구체적으로 기재한다. 여기에서 「특유의 효과」란 특허로써 보호를 받고자 하는 발명의 구성에 없어서는 안되는 사항에 의해 발생되는 효과를 의미한다. 구체적으로는 발명의 목적을 달성했다는 점을 확인하고, 종래기술과 비교 해서 보다 유리하다는 점을 나타내기 위한 것 등이 있다.
      (2) 특허를 받고자 하는 발명과「가장 관련이 깊은 종래기술」과 비교한 유리한 효과(advantageous effects)는 진보성판단에 있어서 중요한 사항이다. 진보성이 결여되어 있다는 취지의 거절이유통지를 받은 경우, 출원인은 명세서의 요지를 변경하지 않는 범위내에서 유리한 효과를 보정할 수 있지만 보정을 하지 않는 경우라도 그밖에 발명의 효과에 대한 기재가 있으면 「가장 관련이 깊은 종래기술」과 비교한 유리한 효과가 기재되어 있지 않아도 제42조 제3항에 위반되는 것으로는 보지 않는다.
      (3) 또한, 발명의 구성 등으로부터 통상의 지식인이 용이하게 당해 발명의 효과를 이해할 수 있고, 당해 발명의 실시의 용이성을 방해하는 것이 아닌 경우에는 발명의 효과의 기재가 형식적으로는 없거나 또는 충분하지 않다고 해도 이것을 이유로 특허법 제42조 제3항에 위반되는 것으로는 보지 않는다.

    3·1·4 발명의 목적, 구성 및 효과의 상호관련

      발명의 상세한 설명에는 발명의 목적, 구성 및 효과가 상호 모순없이 기재되어 있어야 된다

    3·1·5 특허청구범위의 기재와의 대응관계

      발명의 상세한 설명에는 특허청구범위의 청구항에 기재된 발명에 대응하는 발명의 목적, 구성 및 효과가 각각 기재되어 있어야 한다. 단, 2이상의 청구항에 대응하는 기재가 동일한 부분에 대해서는 각 청구항과의 대응이 명료하면 구태여 발명의 상세한 설명에 중복기재되어 있지 않아도 좋다.

    3·2 특허법 제42조 제3항의 위반 유형

      이하 발명의 목적, 구성 및 효과의 기재불비에 의해 통상의 지식인이 용이하게 그 발명을 실시할 수 없어서 특허법 제42조 제3항의 위반이 되는 경우의 유형을 발명의 목적, 구성 및 효과의 순으로 예시한다.

    3·2·1 발명의 목적의 기재불비

      (1) 발명의 상세한 설명에 발명의 목적이 기재되어 있지 않은 경우
      (2) 발명의 상세한 설명의 발명의 목적에 관한 기재내용이 불명료한 경우
      (3) 발명의 상세한 설명에 그 발명의 산업상 이용분야가 기재되어 있지 않아서 그 발명의 기술적 과제가 불명료한 경우
      (4) 발명의 상세한 설명의 발명의 목적의 기재가 종래 기술과 관련되어 있지 않아서 그 발명의 기술적 과제가 불명료한 경우

    3·2·2 발명의 구성의 기재불비

      (1) 발명의 상세한 설명에 발명의 목적을 달성하기 위한 기술적 수단의 기재가 없는 경우
      (2) 발명의 상세한 설명에 기재된 발명의 목적을 달성하기 위한 기술적 수단에 관한 기재내용이 불명료한 경우
      (3) 발명의 상세한 설명에 기재된 발명의 목적을 달성하기 위한 개개의 기술적 수단의 상호관계가 불명료한 경우
      (4) 발명의 상세한 설명에 발명의 목적을 달성하기 위한 기술적 수단의 작용의 기재가 없어서 그 기술적 수단의 작용(역할)이 불명료한 경우
      (5) 발명의 실시예의 기재에 있어서 발명의 목적을 달성하기 위한 기술적 수단이 단지 기능적·추상적으로 기재되어 있을 뿐, 그 구현을 위한 재료, 장치, 공정 등이 불명료한 경우
      (6) 발명의 상세한 설명에 기재된 실시예에 구체적인 수치가 기재되어 있지 않아서 통상의 지식인이 용이하게 그 발명을 실시할 수 없는 경우

    3·2·3 발명의 효과의 기재불비

      (1) 발명의 상세한 설명에 발명의 효과가 형식적으로 봤을 때 기재되어 있지 않고 발명의 상세한 설명의 어떤기재로 부터도 그 효과가 파악되지 않는 경우
      (2) 발명의 상세한 설명에 특정한 방법에 의해 얻어진 측정치가 발명의 효과로 기재되어 있지만 그 측정방법이 불명료해서 발명의 효과를 확인할 수 없는 경우
      (3) 발명의 상세한 설명에 발명의 효과로서 기술적으로 뒷받침 되지 않는 경제적 효과만이 기재되어 있는 경우

    3·2·4 발명의 목적, 구성 및 효과의 상호관련에 대한 기재불비

      (1) 발명의 상세한 설명에 기재한 발명의 구성과 그 발명의 목적 또는 효과로서 기재한 사항이 대응되지 않는 경우
      (2) 발명의 목적으로 기재한 사항과 발명의 효과로 기재한 사항이 상호 관련성이 없는 경우

    3·2·5 특허청구범위와의 관계의 기재불비

      (1) 청구항에 기재된 사항에 다른 구성요소를 부가 또는 삭제한 사항에 대응하는 목적, 구성 및 효과가 발명의 상세한 설명에 기재되어 있는 경우 로서 청구항에 기재된 사항에 대응하는 목적, 구성 및 효과가 발명의 상세한 설명으로부터 파악되지 않는 경우 예 : 청구항에 구성 A + B 에 대해서 기재되어 있는 경우, 발명의 상세한 설명에 구성 A + B + C에 대한 목적 및 효과만이 기재되어 있을 뿐, 청구항에 기재된 구성 A + B 에 대응하는 목적 및 효과가 기재되어 있지 않으며 또한 파악도 되지 않는 경우
      (2) 청구항에 상위개념의 사항이 기재되어 있고 발명의 상세한 설명에 당해 상위 개념에 포함되는 일부의 실시예만이 기재되어 있는 경우, 당해 상위개념에 포함되는 다른 부분에 대해서 통상의 지식인이 용이하게 실시를할 수 있을 정도로 그 발명의 목적, 구성 및 효과가 기재되어 있지 않을 경우 예 : 청구항에는 가소성물질의 압출성형방법에 대해서 기재되어 있지만 발명의 상세한 설명에는 실시예로서 탄수화물 및 단백질등을 주성분으로 하는 농수산 가공품의 식용 가소성물질의 제조방법에 관한 발명만이 기재되어 있고 ,청구항에 기재된 그 성형방법은 성형온도 및 성형압력 등으로 봐서 상세한 설명에 기재되지 않은 세라믹 및 금속 등의 가소성물질 등에 대해서는 부적절 하다고 인정되는 경우
      (3) 청구항이 구성요건에 대한 선택적인 표현을 사용하는 Markush형식으로 기재되어 있을 때, 발명의 상세한 설명에 구룹중 일부에 대한 선택의 실시예 만이 기재되어 있는 경우로 그 구룹의 나머지에 대해서는 통상의 지식인이 용이하게 그 실시를 할 수 있을 정도로 그 발명의 목적, 구성 및 효과가 기재되어 있지 않을 경우 예 : 청구항에는 치환基(X)로 CH3, OH, COOH가 택일적으로 기재된 치환벤젠의 원료화합물을 니트로화하여 파라니트로치환벤젠을 제조하는 방법이 기재되어 있으나, 발명의 상세한 설명에는 실시예로써 원료화합물이 톨루엔(X가 CH3)인 경우만이 제시되어 있고 그 방법은 CH3와 COOH와의 현저한 배향성의 차이 등으로 봐서, 원료가 安息香酸(X가 COOH)인 경우에 대해서는 부적절하다고 인정되는 경우 (주) Markush 표현형식 : 청구항의 기재형식의 하나로써 Markush 표현형식은 화학물질의 발명에 대하여 적용된다. 그 작성의 예를 보면「염소와 브롬으로 구성된 그룹으로부터 선택된 할로겐 …… 」과 같이 표현형식이 대표적이다.

    3·2·6 거절이유 통지시의 유의사항

      (1) 특허법 제42조 제3항의 위반으로 거절이유를 통지하는 경우에는 그 이유를 구 체적으로 지적한다. 예를들면 청구항에 상위개념의 사항이 기재되어 있고, 발명의 상세한 설명에 이 상위개념에 포함되는 일부의 실시예만이 기재되어 있는 경우에 당해 상위개념에 포함되는 타부분에 대해서 통상의 지식인이 용이하게 실시를 할수 있을 정도로 그 발명의 목적, 구성 및 효과가 가재되어 있지 않을 경우에는 가능한한 그 타부분에 해당하는 기술이 기재되어 있는 인용자료를 이용하여 구체적 이유를 제시한다 또한 청구항이 Markush 표현형식으로 기재되어 있고 발명의 상세한 설명에 구룹중 일부에 대한 선택의 실시예만이 기재되어 있는 경우로 그 구룹의 나머지에 대해서는 통상의 지식인이 용이하게 그 실시를할 수 있을 정도로 그 발명의 목적, 구성 및 효과가 기재되어 있지 않을 경우에는 그 구체적 이유를 제시한다. 그리고 일반적으로 효과의 예측이 곤란한 기술분야에 있어서, 하나의 대표적인 실시예가 발명의 상세한 설명에 기재되어 있는 경우에는 단순히 실시예 또는 효과를 확인하기 위한 구체적인 예의 숫자가 불충 분하다고 하는 것만으로는 구체적인 이유를 제시한 경우에 해당되지 않는다.
      (2) 발명의 상세한 설명에 기재된 발명의 효과가 발생되지 않는다는 취지의 거절이유통지에 대해서는 출원인은 그 효과가 발생된다는 점을 의견서 또는 실험성적증명서 등에 의해 반론·석명할 수 있다. 그리고 이들에 의해 실질적으로 효과가 발생된다는 점이 확인 될 수 있을 경우에는 특허법 제42조 제3항의 위반이 되지 않는다.

    4. 특허청구범위

      4·1 특허법 제42조 제4항
        【특허법 제42조제4항】
          「특허청구범위에는 보호를 받고자 하는 사항을 기재한 항 (이하 "청구항" 이라 한다) 이 1 또는 2이상 있어야 하며, 그 청구항은 다음 각호에 해당하여야 한다.
            1. 발명의 상세한 설명에 의하여 뒷받침될 것
            2. 발명이 명확하고 간결하게 기재될 것
            3. 발명의 구성에 없어서는 아니되는 사항만으로 기재될 것」

      4·2 청구항

        명세서의 특허청구범위에는 특허로써 보호를 받고자 하는 발명을 기재하는 항이 1 또는 2이상 있어야 한다. 이들의 항을 청구항이라 한다. 특허법 제42조 제4항에서는 특허청구범위에 복수개의 청구항을 기재할 수 있는 다항제를 표명하고 있다.

      4·3 발명의 상세한 설명에 의하여 뒷받침될 것(특허법 제42조 제4항 제1호)

        「 발명의 상세한 설명에 의하여 뒷받침 될 것」이란 특허청구범위의 청구항에 기재되는 발명의 기술내용은 명세서의 발명의 상세한 설명에서 충분하게 설명된 것 중에서 기재되어야 한다. 특허청구범위에 기재한 발명의 기술내용의 범위가 상세한 설명상에 기재한 발명의 기술내용보다 넓게 되어있는것에 대하여 특허권을 설정해준다면 발명의 범위를 벗어난 것까지 독점권으로 설정해주는 결과가 되므로 특허제도의 취지에 어긋나는 것이다. 구체적으로 청구항에 기재된 특허로써 보호를 받고자 하는 발명이 발명의 상세한 설명에 의하여 뒷받침 될 것」인가 아닌가의 판단은 특허청구범위에 기재된 사항과 대응되는 사항이 형식적으로 보아서 발명의 상세한 설명에 기재되어 있는가 아닌가에 의해서 하는 것으로 한다. 따라서 특허청구범위에 기재된 사항과 대응되는 사항이 형식적으로 봐서 발명의 상세한 설명에 기재되어 있지 않은 경우에는 특허법 제42조 제4항 제1호의 위반이 된다. 여기서 「 형식적으로 보아서 기재되어 있지 않다 」란,
          (1) 특허청구범위에 기재된 사항과 대응되는 사항이 발명의 상세한 설명에 기재되어 있지 않다는 것이 명백한 경우, 다만 특허청구범위에 기재된 사항이 통상의 지식인에게 자명한 정도의 것인 경우에는 예외로 한다. (2) 특허청구범위 및 발명의 상세한 설명에 기재된 용어가 통일되어 있지 않고, 그 결과 양자의 대응관계가 불명료해지는 경우를 의미한다.
          (3) 청구항에 상위개념의 사항이 기재되어 있고 발명의 상세한 설명에 당해 상위개념에 포함되는 일부의 실시예만이 기재되어 있는 경우, 당해 상위개념에 포함되는 다른 부분에 대해서 발명의 상세한 설명에 통상의 지식인이 용이하게 실시를할 수 있을 정도로 그 발명의 목적, 구성 및 효과가 기재되어 있지 않은 경우

      4·3·1 특허법 제42조 제4항 제1호의 위반 유형

        (1) 발명의 상세한 설명에 특허청구범위에 기재된 사항과 대응하는 사항이 기재 되어 있지 않다는 것이 명백한 경우, 예 1 : 발명의 상세한 설명에서는 구체적 수치에 대해서는 전혀 기재되어 있지 않음에도 불구하고 특허청구범위에서는 수치한정을 하고 있는 경우 예 2 : 발명의 상세한 설명에서는 발명을 직류모터로 실현한 구체예만 이 기재되어 있고, 초음파 모터에 적용한 발명은 기재도 시사도 되어 있지 않은 채, 특허청구범위에서는 초음파 모터만에 적용한 발명의 구성이 기재되어 있는 경우 다만, 위의 예 1, 2에서 당해 특허출원의 출원시를 기준으로 해서 통상의 지식인에게 예 1의 수치한정이 자명한 경우 그리고 예 2에서 직류모터를 초음파모터로 대치하는 것이 자명한 것으로 인정되는 경우에는 예외로 한다.
        (2) 특허청구범위 및 발명의 상세한 설명에 기재된 용어가 통일되어 있지 않고 그 결과 양자의 대응관계가 불명료해지는 경우 예 3 : 워드프로세서에 있어서, 특허청구범위에 기재된「데이터처리수단」의 발명의 상세한 설명중의 「문자사이즈 변경수단」인가,「행간격 변경수단」 인가 또는 그 양쪽을 모두 가리키는가가 불명료한 경우 예 4 : 특허청구범위에 기재된「입력수단」,「스위칭수단」및「출력수단」 이 상세한 설명중에 기재된 구체적 회로의 설명중의 어느 것에 해당하는지가 불명확한 경우
        (3) 청구항에 상위개념의 사항이 기재되어 있고 발명의 상세한 설명에 당해 상위개념에 포함되는 일부의 실시예만이 기재되어 있는 경우, 당해상위개념에 포함되는 다른 부분에 대해서 발명의 상세한 설명에 통상의 지식인이 용이하 게 실시를 할 수 있을 정도로 그 발명의 목적, 구성 및 효과가 기재되어 있지 않은 경우 예 5 : 청구항에는 가소성물질의 압출성형방법에 대해서 기재되어 있지만 발명의 상세한 설명에는 실시예로서 탄수화물 및 단백질 등을 주성분으로 하는 농수산 가공품의 식용가소성물질의 제조방법에 관한 발명만이 기재되어 있고, 청구항에 기재된 그 성형방법은 성형온도 및 성형압력 등으로 봐서 상세한 설명에 기재되지 않은 세라믹 및 금속 등의 가소성물질 등에 대해서는 부적절하다고 인정되는 경우

      4·4 명확하고 간결하게 기재할 것(특허법 제42조 제4항 제2호)
      특허청구범위에는 발명의 목적이나 효과만을 나타내는 내용을 기재하거나, 구성 요소의 기능을 장황하게 설명하거나 또는 불필요한 용어를 과다하게 기재하면 않된다. 명확하고 간결한 기재란 어떠한 것을 의미하는가. 다음의 기재요령에 입각해서 해석해야 하지만 기본적으로 종래기술과 구별이 되어야 하고 발명을 이루는 각각의 구성요건들의 구별이 뚜렷하여야 한다.

        (1) 특허청구범위의 기재내용을 이해하기 위하여 필요한 경우에는 도면에 사용된 부호를 괄호로 하여 용어뒤에 사용할 수 있으며, 이 부호를 사용하지 않으 므로써 구성이 불명료하게 되어서는 않된다.
        (2) 특허청구범위에는 발명의 구성을 불명료하게 표현하는 용어를 기재해서는 않된다. 다만, 이러한 용어를 사용하지 않고서는 적절할 표현이 없고 그 의미가 명세서의 상세한 설명에 의해 명확히 뒷받침되고(기술내용 범위의 광협에 관한 사항도 포함) 발명의 단일성에 문제가 없다고 인정되는 경우 에는 허용 할 수 있다.
        (3) 특허청구범위의 기재는 발명의 상세한 설명의 기재와 모순되지 않아야 하고 용어는 가능한한 명세서에 사용된 용어와 일치되게 기재하여야 한다.
        (4) 특허청구범위의 기재는 필요이상으로 장황하여 발명의 구성을 불명료하게 하면 안되고 각 구성요소의 상호관계를 명확히 표현하여야 한다. 예를 들면 각구성요소를 단지 나열하므로서 그들간의 관계를 불명료하게 하면 않된다.
        (5) 특허청구범위에서 수치로 발명의 구성을 한정할 때는 예를들면「120에서부 터 200까지」와 같이 수치의 범위를 정해주는 것은 무방하나「120, 200 또는 300」과 같이 수치의 한정이 불명확한 표현의 기재는 하여서는 안된다.
        (6) 특허청구범위의 청구항중 구성요소는 특정기능을 수행하기 위한「수단」 또는「공정」( means or step)으로 기재할 수 있다. 이 경우 그에 대한 용어의 개념을 발명의 상세한 설명에 기재하여야 한다.

      4·4·1 특허법 제42조 제4항 제2호의 위반 유형

        (1) 청구항의 기재내용이 기술적으로 명료하지 않은 경우
        (2) 청구항에 기재된 사항에 의해서 파악되는 발명이,「물」의 발명,「방법」 발명 또는「물을 생산하는 방법」발명중 어느 카테고리에 속하는 것인가 불명료한 경우. 예 : 「 … 로서의 사용(use)」
        (3) 2이상의「보호를 받고자 하는 발명」이 하나의 청구항에 기재되어 있는 경우
        예 1 : 「특정 부품 또는 그 부품을 포함하는 장치」
        예 2 : 「특정한 전원을 가진 송신기 또는 수신기」
        예 3 : 하나의 청구항에, 화학물질의 중간체와 최종생성물이 택일적으로 기재되어 있을 경우, 단, 어떤 최종생성물에 대해서 중간체가 되는 것이라도, 그 자신이 최종생성물이기도 하며, 다른 최종생성물과 함께 Markush 표현형식의 기재요건을 만족하는 것에 대해서는 그렇지 않다.
        (4) 물의발명에 있어서, 기술적 수단이 방법적으로 표현되어 있는 경우, 단, 방법적으로 표현하는 방법 이외에 적절한 표현이 없고, 그것에 의해서도 물이 특정될 수 있는 경우는 그렇지 않다.
        (5) 청구항의 기재에 다음과 같은 표현이 있고, 그 결과 보호를 받고자 하는 발명의 내용이 불명확해질 경우
          ① 「 ∼ 을 제외」 또는 「 ∼ 가 아닌」 등의 부정적 표현
          ② 「 … 이상」,「 … 이하」등 상한 또는 하한만을 표시하는 수치한정을 사용한 표현
          ③ 「 대략 비중이 큰」,「훨씬 큰」,「저온」,「고온」등 비교의 기준, 정도가 불명료한 표현을 사용한 경우
          ④ 「소망에 따라」,「필요에 따라」등의 용어와 함께, 임의 부가적 사항 또는 선택적 사항이 기재된 표현 「특히」,「예를 들면」,「등」,「바람직하게는」,「적의의」와 같은 용어가 있는 기재도 이에 준한다.
          ⑤ 「0-10%」와 같이 0을 포함하는 수치한정
        (6) 청구항의 기재가 필요 이상으로 장황해서 보호를 받고자 하는 발명의 내용이 불명료해지는 경우

      4·5 구성에 없어서는 아니되는 사항만의 기재(특허법 제42조 제4항 제3호)

        (1) 「 보호를 받고자 하는 발명의 구성에 없어서는 아니되는 사항」특허청구범위 에는 「특허를 받고자 하는 발명의 구성에 없어서는 아니되는 사항 」이 기재되어 있어야 한다.「 특허를 받고자 하는 발명의 구성에 없어서는 안되는 사항」이 기재되어 있다란, 하나의 청구항에 기재된 사항에 의거해서 특허로써 보호를 받고자 하는 발명이 명확히 파악될 수 있다는 것을 의미한다. (2) 「 만 」의 취지는 청구항에 발명의 구성외에 목적, 효과를 중심으로 기재되는 것을 방지하고, 특허 후에 특허청구범위에 기재한 사항의 일부를 특허를 받고자 하는 발명의 구성에 없어서는 아니되는 사항이 아니라고 주장하는것을 방지하는데 있다. 따라서 「만」의 의미는 하나의 발명에 대해서 하나의 청구항 밖에 기재할 수 없다는 것을 뜻하지는 않는다. 그러므로 위의 (1)(2)에서와 같이 하나의 청구항에 기재된 사항에서 목적달성 이 가능한 하나의 발명이 파악될 필요가 있으며, 하나의 청구항에 기재된 사항에 의거해서 그러한 하나의 발명이 파악되지 않을 경우에는 특허법 제42조 제4항 제3호의 위반이 된다. (3) Markush 표현형식 등 선택적 표현형식으로 기재된 청구항
          ① 보호를 받고자 하는 발명의 구성에 없어서는 아니되는 사항에 관해 선택 할 수 있는 둘 이상의 물이 있고, 이들 선택물등이 유사한 성질 또는 기능을 갖는 경우에는 이들 선택물등을 Markush 표현형식 등 택일형식으 로 단일 청구항에 기재할 수 있다.
          ② Markush 표현형식 등 택일형식에 의한 기재가 화학물질에 관한 것일 경우, 그들은 이하의 요건이 만족되면 유사한 성질 또는 기능을 갖는 것이 된다.
            (Ⅰ) 모든 선택물이 공통의 성질 또는 활성을 갖고 있고, 또한 (ⅱ) (a) 공통의 화학구조가 존재하는 즉 모든 선택물이 중요한 화학구조 요소를 공유하고 있거나, 또는(b)공통의 화학구조가 판단기준이 되지 않을 경우, 모든 선택물이 그 발명이 속하는 기술분야에 있어서 1군의 것으로 인식되는 화학물질군에 속할 경우 상기 (ⅱ)(a)의 「모든 선택물이 중요한 화학구조요소를 공유하고 있다」란 복수의 화학물질이 그 화학구조의 큰 부분을 점하는 공통된 화학구조를 가지고 있는 경우 등을 말하며, 또 화학물질 이 그 화학구조의 사소한 부분밖에 공유하고 있지 않을 경우에는 그 공유되어 있는 화학구조가 종래기술로부터 보아서 구조적으로 현저한 부분을 구성하는 경우를 말한다. 화학구조 요소는 하나의 부분인 경우도 또 서로 관련한 개개의 부분의 조합인 경우도 있다.상기 (ⅱ)(b)의 「1군의 것으로 인식되는 화학물질군이란 청구항에 기재된 발명하에서 동일하게 작용할 것이라는 것이 그 기술분야에서의 지식으로부터 예상되는 화학물질군을 말한다. 환언하면 그 화학물질군에 속하는 각 화학물질을 상호 대체해도 동등한 결과를 얻을 수 있는 경우이다.

      4·5·1 특허법 제42조 제4항 제3호의 위반 유형

        (1) 청구항에 판매지역, 판매처 등 발명의 구성과 관계없는 사항이 기재되어 있는 경우
        (2) 청구항에 발명의 목적, 작용 및 효과만이 기재되어 있는 경우
        (3) 청구항에 기재된 사항이 단일의 기술적 수단으로 이루어진 경우에 그 기술적 수단이 기능적 또는 작용적으로 표현되어 있는 경우 예 : 「젖은 의류를 탈수하는 수단을 갖는 장치」
        (4) 청구항에 기재된 사항에 의해서 통합적인 하나의 기술적 사상이 파악되지 않는 경우 청구항의 기재에 명백히 구성요소가 결여되어 있는 경우. 단, 출원시의 기술상식에서 봤을 때 결여된 구성요소가 자명한 경우는 위반이 되지 않는다. 예 : 청구항에 A 및 C 공정으로 이루어지는 방법발명의 구성이 기재되어 있고, A 및 C 공정 사이에 명백히 B 공정이 필요하다고 생각되는 경우 특허를 받고자 하는 발명의 구성에 없어서는 아니되는 사항에 관하여 둘 이상의 선택물이 있고(Markush형식 등), 이들의 선택물이 유사한 성질 또는 기능을 갖지 않는 경우
        (5) 구성요소의 나열로 그 결과 상호관계가 불명료하게 되는 경우. 단, 출원시의 기술상식에서 봤을 때 그 관계가 자명한 경우는 위반이 되지 않는다. 예 : 청구항에 「특정형상의 센서와 특정형상의 프린트헤드와 전자회로로 구성되는 기록장치」로 기재되어 있고,그 결과 각 구성요소간의 관계가 불명료해지는 경우
        (6) 물의발명에 있어서, 기술적 수단이 방법적으로 표현되어 있는 경우. 단, 방법적으로 표현하는방법 이외에 적절한 표현이 없고, 그것에 의해서도 물이 특정될 수 있는 경우는 그러하지 아니한다.
        (7) 화학물질의 발명에서 화학물질명 또는 화학구조식에 의해서 표시되어 있지 않을 경우. 단, 화학물질명 또는 화학구조식으로 특정할 수 없을 경우에는 물리적 또는 화학적 성질에 의해 특정하는 것을 인정한다. 또한 그들에 의해서도 특정되지 않을 경우에는 제조방법을 부가하므로서 특정할 수 있을 경우에 한하여 특정수단의 일부로서 제조방법에 의해 특정하는 것을 인정한다.
        (8) 용도발명에 있어서 용도가 충분히 특정되어 있지 않을 경우 예 : 「 … 로 이루어지는 의약」, 「 … 로 이루어지는 치료제」, 「 … 로 이루어지는 농약」.
        (9) 청구항의 기재가, 발명의 상세한 설명 또는 도면의 기재로 대용되어 있는 경우. 단, 발명의 상세한 설명 또는 도면의 기재를 대용하지 않으면 적절히 기재할 수 없는 경우에는 대용에 의한 기재를 인정한다. 예 : 합금에 관한 발명에서 합금성분의 조성 상호간에 특정한 관계가 있어서 수치 또는 문장만으로는 명확히 표현할 수 없는 경우 「첨부도면 1에 표시한 점 A( … ), B( … ), C( … ), D( … )로 둘러싸 인 범위내의 Fe·Cr·Al 및 X %이하의 불순물에 의해 이루어지는 Fe·Cr·Al 내열 전열용 합금」

      4·6 청구항의 기재요령

        특허법 제42조제5항에서 대통령령으로 정하도록 한 특허청구범위의 기재요령에 대해서는 특허법시행령 제5조에서 규정하고 있다. 본 규정은 특허청구범위의 청구항(독립항, 종속항)의 정의와 이들을 기재하는 요령에 대한 것이다. 본조의 취지는 청구항의 구별의 명확성을 도모하기 위한 행정상의 편의를 위한 것으로 본다. 그러므로 본조의 위반사항은 거절이유에 해당하지만 특허이의 신청의 이유는 아니다.(특허법 제62조 제5호 및 제70조 제1항)

      4·6·1 특허법시행령 제5조

        【특허법시행령 제5조】
          ① 특허법 제42조제5항의 규정에 의한 특허청구범위의 청구항(이하"청구항"이라 한다)의 기재에 있어서는 독립청구항(이하"독립항"이라 한다)을 기재하고, 그 독립항을 한정하거나 부가하여 구체화 하는 종속청 구항(이하 "종속항" 이라 한다)으로 기재 할 수 있다. 이 경우 필요한 때에는 그 종속항을 한정하거나 부가하여 구체화 하는 다른 종속항을 기재할 수 있다.
          ② 독립항은 발명의 성질에 따라 적정한 수로 기재하여야 한다.
          ③ 종속항은 독립항 또는 다른 종속항을 한정하거나 부가하여 구체화 하는데 필요한 수로 기재하여야 한다.
          ④ 종속항은 그 종속항이 속하는 독립항과 그 독립항의 다른 종속항중에서 1 또는 2 이상의 항을 인용하여야 하며, 이 경우 인용되는 항의 번호를 기재하여야 한다.
          ⑤ 2이상의 항을 인용하는 종속항은 인용되는 항의 번호를 택일적으로 기재하여야 한다.
          ⑥ 2이상의 항을 인용하는 종속항은 2이상의 항이 인용된 다른 종속항을 인용할 수 없다.
          ⑦ 독립항 또는 다른 종속항을 인용하는 종속항은 인용되는 독립항 또는 다른 종속항보다 먼저 기재하여서는 아니된다.
          ⑧ 각 청구항은 항마다 행을 바꾸어 기재하고, 그 기재하는 순서에 따라 아라비아숫자로 일련번호를 붙여야 한다.

      4·6·2 독립항(특허법시행령 제5조 제1항 및 제2항)

        특허청구범위에 다른 청구항을 인용하지 않고 기재한 청구항을 독립항이라 한다. 독립항의 기재방법(특허법시행령 제5조 제2항)에 있어서,「발명의 성질에 따라 적정한 수로」란 특허로써 보호를 받고자 하는 발명이 그 성질상 하나만으 로 기재하는 것이 적절치 않은 경우 복수의 독립항으로 기재할 수 있다는 의미와 형식적으로 보아서 동일한 청구항을 중복해서 기재하면 않된다는 의미를 가지고 있다고 해석된다. 여기에서의「형식적으로 보아서」란 2이상의 청구항이 문헌적 으로 동일하거나, 2이상의 청구항의 그 기재의 다름의 정도가 출원인에게 어떠한 실익도 인정되지 않는 정도의 것인 경우를 의미한다. 그러나 청구항의 차이가 단순히 구성요건의 다름에 있다하여 당연히 중복된 청구항이라고 판단해서는 않된다.

      4·6·3 종속항(특허법시행령 제5조 제1항 및 제3항)

        (1) 종속항은 독립항 또는 다른 종속항을 인용하여 그 인용 청구항을 한정하거나 부가하여 구체화 한 것이다. 즉, 종속항은 인용하고자 하는 독립항 또는 다른 종속항에 기재된 발명의 구성요건중 일부 혹은 전부에 대하여 기술적으 로 구체취하여 그 보호범위를 좁게 한정시키거나, 인용 청구항의 발명에 다른 구성요건을 부가하여 구체화 한 청구항이다. 여기에서의 「한정」이란 예를들면 인용하는 독립항의 발명의 구성요건중 하나가「접착수단」으로 기재된 경우, 이 구성요건을「양면테이프」와 같이 상위개념으로 기재된 것을 구체적으로 제시하여 한정하는 것이다. 또한 여기서의「부가란 예를들면「1. ……A와 B로 된 장치」의 청구항을 인용하여 「제1항에 있어서, ……C를 더 포함하는 장치」와 같이 명세서 또는 도면에 명백하게 기재되어 있는 구성요건을 부가하는 것은 물론, 기재되어 있지 않은 사항에 대해서도 통상의 지식인에게 자명한 정도의 구성요건을 부가하는 것을 의미한다.
        (2) 선행하는 다른 청구항의 구성요건의 일부를 치환하는 청구항을 기재하는 경우 또는 선행하는 다른 청구항과는 카테고리가 다른 청구항을 기재하는 경우 등에도 청구항의 기재가 불명료하게 되지 않는 한, 다른 청구항을 인용 해서 인용형식청구항으로 기재하여, 청구항의 기재를 간단명료하게 할 수 있다.
        예 1 : 인용되는 청구항의 구성요소의 일부를 치환하는 인용형식청구항
          제1항 --- 치차전동기구를 구비한 특정구조의 전동장치
          제2항 --- 청구항1 기재의 전동장치에 있어서, 치차전동 기구 대신에 벨트전동기구를 구비한 전동장치
        예 2 : 다른 카테고리로 표현된 청구항을 인용해서 기재하는 인용형식청구항
          제1항 --- 특정구조의 볼베어링
          제2항 --- 특정 공정에 의한 청구항1기재의 볼베어링 제조방법
        예 3 : 서브콤비네이션(sub-combination)청구항을 인용해서 기재하는 인용형식청구항
          제1항 --- 특정구조의 나사산을 가진 볼트
          제2항 --- 청구항1 기재의 볼트와 결합되는 특정구조의 나사골을 가진 너트
        (주) 서브콤비네이션이란 다른 2이상의 장치를 조합해서 이루어지는 전체장치의 발명 및 2이상의 공정을 조합해서 이어지는 제조방법의 발명 등 (이상을 콤비네이션이라 한다)에 대해, 조합되는 각 장치의 발명, 각 공정의 발명 등을 말한다.

      4·6·4 종속항(특허법시행령 제5조 제4항)

        종속항이 인용하여 기술적으로 한정 또는 부가하여 구체화시킬 수 있는 해당 독립항은 한항에 한한다. 즉, 2이상의 독립항을 인용하는 종속항은 허용되지 않는다. 다만 2이상의 항을 인용하고자 할 때에는 당해 종속항이 속하는 인용 독립항과 독립항에 속하는 다른 종속항 중에서 항을 인용하여야 한다.
        예: 청구항번호 청구항의 형태 기재내용
          제1항 ── 독립항 A+B+C로 된 장치
          제2항 ── (종속항) 제1항에 있어서, A는 A'인 장치(○)
          제3항 ── (종속항) 제1항 또는 제2항에 있어서, B는 B'인 장치(○)
          제4항 ── 독립항 A+B+D로 된 장치
          제5항 ── (종속항) 제1항 또는 제4항에 있어서, A는 A'인 장치(×)
          제6항 ── (종속항) 제4항에 있어서, A는 A'인 장치(○)
          제7항 ── (종속항) 제1항(제2항) 또는 6항에 있어서, B는 B'인 장치(×)

      4·6·5 종속항(특허법시행령 제5조 제5항)>br>

        2이상의 청구항을 인용하는 종속항이란, 다른 2이상의 청구항을 인용해서 기재한 청구항을 말하며 특허청구범위 전체의 기재를 간단명료하게 하는데 이용된다. 이 형식에 의한 청구항은, 통상의 인용형식에서 복수의 청구항으로 각각 기재하는 경우와 비교해서 기재면, 요금면에서의 장점이 있다고 해도 포기, 무효심판의 단위로서는 하나이므로 전체적으로 포기, 무효의 대상이 되는 등의 단점도 내포하고 있다고 할 수 있다. 이 때문에 통상의 종속항으로 하는가, 다수항인용형식의 종속항으로 하는가는 이와같은 점을 충분히 비교하여 고려한 상태에서 이루어져야 하는 것이며 그 선택은 출원인의 자유이다. 다수항인용형식 으로 청구항을 기재할 때는 원칙적으로 다른 2이상의 청구항을 택일적으로 인용하고, 또한 동일한 기술적 한정을 가해서 기재해야 한다. 특허청구범위의 다항제에서는 각 항마다 하나의 발명이라고 한다.그러므로 2개 이상의 청구항을 인용할 때에는 이들의 복수개의 청구항을 동시에 인용하면 발명의 기술적인 한정의 효과를 기대할 수 없을 뿐만 아니라, 청구범위의 해석에 있어서도 그 권리범위의 확정에 곤란함이 있어서 복수개의 청구항을 동시에 인용하는 것은 불허하고 있다.그러므로 복수개의 청구항(하나의 독립항과 복수개 의 종속항 등)을 인용하고자 하는 종속항은 인용되는 복수개의 청구항을 택일적 으로 기재하여야 한다. 여기서「택일적으로」기재한다는 의미는 인용 기재한 복수개의 청구항중 어느 한 항을 특정하여 인용한다는 의미가 아니라, 어느 항이라도 좋으니 복수개의 인용항중 1항만을 인용한다는 의미로써의 택일이다.
          (1) 택일적 기재에 적합한 용어예
            「제1항 또는 제2항에 있어서, 」
            「제1항, 제2항 또는 제3항에 있어서, 」
            「제1항 내지 제3항중 어느한 항에 있어서, 」
            예1)청구항의 번호 청구항 형태 기재내용
              제1항 ── 독립항 A+B+C인 장치
              제2항 ── 종속항 제1항에 있어서, A는 A'인 장치
              제3항 ── 종속항 제1항 또는 제2항에 있어서, B는 B'인 장치(○)
              제4항 ── 종속항 재1항 및 제2항에 있어서, C는 C'인 장치 (×)
          (2) 비택일적 기재예
            「제1항 그리고 제2항에 있어서, 」
            「제1항 및 제3항에 있어서, 」
            「제1항, 제2항 및 제3항에 있어서,」
            「제1항 내지 제10항에 있어서, 」
            예 1) 청구항의 인용이 택일적이지 않아서 불명료 해지는 예
              제1항 --- 특정구조를 갖는 에어콘장치
              제2항 --- 풍향조절기구를 갖는 청구항1 기재의 에어콘장치
              제3항 --- 풍량조절기구를 갖는 청구항1 및 청구항2 기재의 에어콘장치
            예 2) 인용되는 청구항에 동일한 기술적 한정을 가하지 않으므로서 불명료 해지는 예
              제1항 --- 특정구조를 갖는 에어콘장치
              제2항 --- 풍향조절기구를 갖는 청구항1 기재의 에어콘장치
              제3항 --- 풍량조절기구를 갖는 청구항1 기재의 에어콘장치 또는 타이머기구를 갖는 청구항2 기재의 에어콘장치
            예 3) 인용되는 청구항에 동일한 기술적 한정을 가하고 있어도, 다른 대상(다른 카테고리 등)의 청구항을 포함하므로써 불명료해지는 예
              제1항 --- 특정구조의 인공심장
              제2항 --- 특정공정에 의한 특정구조의 인공심장의 제조방법
              제3항 --- 특정 안전장치를 구비한 청구항1 기재의 인공심장 또는 청구항2 기재의 인공심장의 제조방법

        4·6·6 종속항(특허법시행령 제5조 제6항)

          2이상의 항을 인용하여 이를 택일적으로 기재되는 종속항이 있을 때 다른 종속항에서 역시 2이상의 항을 인용하여 청구범위를 작성하고자할 때, 이미 2이상의 항을 인용한 종속항을 인용해서는 않된다.
          예)청구항의 번호 청구항 형태 기재내용
            제1항 ── 독립항 A+B+C인 장치
            제2항 ── 종속항 제1항에 있어서, A는 A'인 장치
            제3항 ── 종속항 제1항 또는 제2항에 있어서, B는 B'인 장치
            제4항 ── 종속항 재1항 또는 제3항에 있어서, ......(×)
            제5항 ── 종속항 제2항 또는 제4항에 있어서, ......(×)

        5. 명세서 기재불비 일반 다음에 열거하는 경우 발명의 상세한 설명의 기재로부터 통상의 지식인이 용이하게 그 발명을 실시할 수 없을 때, 또는 특허청구범위에 기재된 사항을 통상의 지식인이 정확히 이해할 수 없을 때는 특허법 제42조 제3항 또는 제4항 및 제5항의 위반이 된다.

          (1) 발명의 상세한 설명 또는 특허청구범위가 국어로 정확히 기재되어 있지 않아서 그 기재 내용이 불명료한 경우 (소위「번역불비」를 포함한다) 국어로 정확히 기재되어 있지 않은 경우로서는, 예를들어 주어와 술어의 관계의 불명료, 수식어와 피수식어의 관계의 불명료, 구두점 오류, 문자의 오류(오자 및 탈자) 및 부호의 오류 등이 있다.
          (2) 용어가, 명세서 전체를 통해서 통일해서 사용되고 있지 않을 경우
          (3) 용어가 학술용어 또는 학술문헌 등에서 관용되어 있는 기술용어가 아니고, 또한 발명의 상세한 설명에 용어의 정의가 되어 있지 않을 경우
          (4) 상표명을 사용하지 않고서도 표시 가능한 것을 상표명에 의해 표시한 경우
          (5) 명세서에 계량법에 규정하는 물리의 상태의 양을 기재할 때 계량법에서 규정하는 단위(부록)에 따라서 기재되어 있지 않을 경우
          (6) 도면의 간단한 설명의 기재(도면 및 부호의 설명)가 발명의 상세한 설명, 특허청구범위 또는 도면과 관련하여 불비한 경우.

        제2장 1특허출원의 요건

        1. 특허법 제45조

          【특허법 제45조】
            「 ① 특허출원은 1발명을 1특허출원으로 한다. 다만, 하나의 총괄적 발명의 개념을 형성하는 1군의 발명에 대하여 1특허 출원으로 할 수 있다.
            ② 제1항의 규정에 의한 1특허출원의 요건은 대통령령으로 정한다.」 특허 받을 수 있는 권리를 가진 자는 특허출원을 함에 있어서 하나의 특허출원에는 하나의 발명만을 개시하여야 한다. 즉, 출원서에 첨부한 명세서에 기재되는 발명이 복수개라 해도 출원인이 특허로써 보호받고자 하는 발명은 1발명이어야 한다. 만약 복수개의 유사 기술분야 또는 비유 사분야의 발명을 청구범위에 기재하는 것을 허용한다면 하나의 특허권의 권리의 범위를 확정하기가 곤란하고, 또한 심사시에는 심사관의 담당 기술분야에 대한 확정이 곤란하여 적정한 심사를 기대할 수가 없다. 그래서 특허법에서는 행정상의 편의와 특허출원의 적정한 심사라는 측면에서 1발명 1출원주의를 채택하고 있다.(특허법 제45조)심사실무상의 편의만을 위한 것이 아니라 등록사무, 권리의 거래상 유리한 점 및 특허문헌의 가치를 높이기 위해서라도 1발명 1출원주의의 중요성이 대두된다.

        2. 1특허출원의 요건

          2·1 1발명 1출원의 예외
          특허출원은 1발명을 1출원으로 하는 것이 심사의 적정화등의 행정편의의 이유에서 유리하나 반면에 이 원칙을 예외없이 적용한다면 행정편의에 의해 취해지는 이익보다는 전체적인 손실이 더 크게되는 경우가 있다. 예를들면 발명의 내용은 동일하나 발명의 카테고리를 달리해서 특허를 받고 싶을 경우가 있다. 즉, 물의 발명에 대한 특허와 이 물을 생산하는 방법의 발명에 대한 특허를 원하는 경우에 1발명 1출원을 고집하면, 위의 경우 각각 별도의 특허출원이 있어야 특허가 가능하다. 2개 특허출원이 있다면 양 출원의 명세서상의 상세한 설명에 기재되는 발명의 내용은 거의 동일할 수 밖에 없어서 심사관이 이를 심사할 경우에 2중의 시간(실체심사시간 및 부속절차시간)을 허비해야 하는 불합리한 경우가 발생한다. 그리고 특허권이 형성된 후에도 이들 양 특허발명은 그 실시에 있어서 서로 밀접한 관계가 있으므로 분리된 권리보다는 하나로 된 권리가 더 특허권 내용을 확정하는데 유리하다. 그래서 1발명 1출원의 원칙에도 불구하고 「다만, 하나의 총괄적 발명의 개념을 형성하는 1군의 발명에 대하여 1특허 출원으로 할수 있다. 」라고 특허법 제45조에 규정하여 그 예외를 인정하고 있다.
          여기에서「하나의 총괄적 발명의 개념」은 소위 발명의 카테고리의 상이와는 관계없이 동일 기술분야에서 이루어지는 발명의 영역으로 볼 수 있다. 예를들면 물의 발명과 그 물을 사용하는 방법의 발명 또는 그 물을 생산하는 방법의 발명과 같이 각각의 발명의 카테고리(물의 발명, 방법의 발명 및 물을 생산하는 방법의 발명) 중 어느 하나가 타 카테고리의 필수요건이 될 수 있는 발명의 영역을 의미한다. 그리고「1군의 발명」은 이들의 발명의 영역내에 있는 각각의 발명을 하나의 군(블럭)으로 하여 표현된 발명을 의미한다.「1군의 발명」으로 하여 1특허출원으로 할 수 있는 요건은 특허법시행령 제6조의 규정에 따른다.

        2·2 1군의 발명

          2·2·1 의의 1특허출원으로할 수 있는 하나의 총괄적 발명의 개념을 형성하는「1군의 발명」은 특허법시행령 제6조에서 규정한 1특허출원의 요건에 해당하는 발명과 일치한다. 여기서의 1군의 발명은 소위 동일기술분야에서 발명의 카테고리상 구분되는 각각 발명의 모음만을 의미하지는 않는다.「1군의 발명」은 기본이 되는 발명과 밀접한 관계를 가지고 있는 다음과 같은 발명의 모음을 표현하는 용어이다.
            ① 기본이 되는 발명과 산업상의 이용분야 및 해결하려고 하는 과제가 동일한 발명의 모음.
            ② 기본이 되는 발명과 발명의 구성에 불가결한 사항의 주요부가 동일한 발명의 모음.
          여기서 1군으로 되는 발명은 기본이 되는 발명의 카테고리와 동일한 발명일 필요는 없다.

        2·2·2 산업상 기술분야가 동일한 발명

          기본이 되는 발명과 공통된 산업상 이용분야를 갖는 발명을 뜻한다. 즉, 기본이 되는 발명과 기술분야가 일치, 중복되거나 기술적으로 직접 관련성을 갖는 발명등 이다. 예컨대 기본이 되는 발명이「유리에 금속피막을 융착시킨 차광유리」일 경우에 기술분야가 중복, 일치되는 1군의 발명의 예는「유리에 금속피막을 융착시킨 유리를 사각의 프레임에 고정한 컴퓨터전자파차단용 보안기」와 같은 경우이다.

        2·2·3 해결과제가 동일한 발명

          발명의 목적의 한 요소로 설명되는 해결과제가 동일한 발명을 1군의 발명으로 본다는 의미이다. 예컨대, 단독으로는 그 용도가 특별하지 않은 물의 발명(Subcom bination invention)과 상기의 물의 발명과 결합하면 그 용도가 특정되지만 역시 단독으로는 그 용도가 특별하지 않는 물의 발명(Subcombination invention)의 모음, 또는 위의 경우를 포함하고 이들 두 발명의 결합에 의해서 이루어지는 발명 (Combination)의 모음과 같이 개별적으로는 의의가 없지만 한가지 해결과제를 위해서 존재하는 각각의 발명의 모음이다.
            예)1.기본발명 : 특정구조의 나사산을 갖는 볼트(Subcombination)
            2.관련발명 : 특정구조의 나사홈을 갖는 너트(Subcombination)
            3.관련발명 : 특정구조의 나사산을 갖는 볼트와 특정구조의 나사 홈을 갖는 너트로 되는 고정구(Combination)

        2·2·4 구성에 불가결한 사항의 주요부가 동일한 발명

          기본이 되는 발명의 구성에 없어서는 아니되는 사항의 주요부를 공통적인 발명의 구성으로 하는 발명을 의미한다.

        2·3 1실용실안등록출원의 범위

          【실용신안법 제9조】
            「① 실용신안등록 출원은 1고안을 1실용신안등록 출원으로 한다.
            ② 제1항의 규정에 의한 1실용신안등록출원의 요건은 대통령령으로 정한다.」
          【실용신안법시행령 제2조】
            「법 제9조 제2항의 규정에 의한 1실용신안등록 출원의 요건은 물품에 관한 1독립항을 기재한 출원으로 한다. 다만, 1독립항만으로 하는 것이 부적합한 경우에는 2이상의 독립항으로 기재할 수 있다.」
            실용신안등록 출원도 1고안 1출원주의를 원칙으로 하고 있다. 그러나 실용신안등 록의 대상인 고안은 물품만을 대상으로 하고 있으므로 1특허출원의 요건과 같은 「하나의 총괄적 고안의 개념으로써 1군의 고안」의 개념은 인정되지 않는다. 실용신안법시행령 제2조에서와 같이 2이상의 독립항으로 할 수 있다란 「같은 카테고리에 있는 2이상의 독립항을 기재할 수 있다라는 의미이다.

        3. 특허법시행령 제6조

          【특허법시행령 제6조】
            「①법 제45조 제2항의 규정에 의한 1특허출원의 요건은 다음 각호의 1에 해당하여야 한다.
              1. 물건 또는 방법에 관한 1독립항을 기재한 출원
              2. 물건에 관한 1독립항을 기재한 경우에 다음 각목의 독립항을 선택하여 기재하거나 모두 기재한 출원
                가. 그 물건을 생산하는 방법에 관한 1독립항
                나. 그 물건을 사용하는 방법에 관한 1독립항
                다. 그 물건을 취급하는 방법에 관한 1독립항
                라. 그 물건을 생산하는 기계.기구.장치 기타의 물건에 관한 1독립항
                마. 그 물건의 특정 성질만을 이용하는 물건에 관한 1독립항
                바. 그 물건을 취급하는 물건에 관한 1독립항
              3. 방법에 관한 1독립항을 기재한 경우에 그 방법의 실시에 직접 사용 하는 기계·기구·장치 기타의 물건에 관한 1독립항을 기재한 출원
            ② 제1항 각호의 경우에 1독립항만으로 포괄하여 기재할 수 없을 때에는 법 제45조 제1항의 규정에 의한 1군의 발명에 해당하는 경우에 한하여 2이상의 독립항으로 기재할 수 있다.」

          3·1 특허법시행령 제6조 제1항

            하나의 총괄적 발명의 개념을 형성하는 1군의 발명으로 볼 수 있는 것에 대하여 특허법시행령 제6조에「1특허출원의 요건」으로 정의하여 규정하고 있다. 즉, 하나의 특허출원으로 하여 특허청구범위에 기재될 수 있는 발명의 군은 물의 발명, 물의 생산방법의 발명 및 방법의 발명을 각각 별도의 독립항으로 또한 이들은 조합하여 하나의 특허청구범위에 포함시킬 수 있도록 보장하고 있다. 여기에서 1군에 포함되는 각각의 발명은 당해 특허출원의 특허청구범위에 독립항으로 구별하여 기재될 수 있음을 의미한다.

          3·2 1특허출원요건의 설명

            3·2·1 물건 또는 방법에 관한 발명
              1특허출원으로 할 수 있는 가장 기본적인 발명의 단위로써 물건에 관한 1발명, 방법(물의 생산방법에 관한 발명을 포함)에 관한 1발명을 각각 1특허출원으로 한다.

            3·2·2 기본이 되는 물의 발명이 있는 경우

              (1) 그 물건을 생산하는 방법의 발명
              기본이 되는 발명이 물에 관한 발명일 경우에, 방법자체로 원료나 피가공물등을 기본발명인 물로 변화시키는 생산방법의 발명을 의미한다. 이러한 생산방법의 발명은 기본 발명인 물의 발명과 각각 독립항으로 하여 1특허출원으로할 수 있다.

              (2) 그 물건을 사용하는 방법의 발명
              물의 발명이 존재할 때, 그 물의 성질.기능등을 이용하는 방법의 발명을 의미한다 . 예를들면 기본이 되는 물의 발명이「장치」라면 이「장치」의 사용법이 하나의 발명으로 되어서 그 장치의 발명과 사용방법의 발명이 각각 독립항으로 하여 1특허출원으로 할 수 있다.

              (3) 그 물건을 취급하는 방법의 발명
              물건을 취급하는 방법이란 그 물건을 본질적으로 변화시키지 않으면서 그 물건에 대해서 외적인 작용을 줌으로써 그 물건의 기능을 유지 및 발휘시키는 방법을 의미한다. 예를들면, 기본이 되는 물의 발명이 특정한 구조를 가지고 있을 때에 그 물을 수납운반하는 방법 또는 그 물을 저장하는 방법등이 물을 취급하는 방법의 대표적인 예이다. 또한 예로 그 물건의 특성이 불안정한 화합물일 경우에 안정화제의 첨가등의 방법에 의하여 그 화합물을 안정화시키는 방법을들 수 있다. 이러한 물의 발명과 그 물을 취급하는 상기와 같은 방법의 발명을 각각 독립항으로 하여 1특허출원에 기재할 수 있다. 그 물을 취급하는 물의 발명도 같은 의미로 해석된다.

              (4) 그 물건을 생산하는 기계, 기구, 장치 기타의 물건에 관한 발명
              물의 발명이 있을 때 그 물건을 생산하는 기계, 기구 및 장치의 의미는 별도의 설명을 요하지 않는다. 즉, 그 물건을 생산하는데 사용되는 장치류라고 해석된다. 그러나 물을 생산하는「기타의 물건」의 의미가 명확하지 않다. 여기서의「기타의 물건」은 1특허출원의 요건을 실질적으로 확대시키는 작용을 한다. 물건을 생산하는 장치류의 발명뿐만 아니라, 소위 재료적인 물건 예를들면 촉매나 미생물등의 원료에 관한 발명도 그 기본이 되는 물의 발명과 함께 독립항으로 하여 1특허출원에 기재될 수 있다.

              (5) 그 물건의 특정성질만을 이용하는 물건의 발명
              물의 발명에 대해서 그 물의 특정설질만을 이용하는 물이란 그 물의 속성을 독점적으로 이용하는 물을 의미한다. 이는 소위 용도발명의 개념을 포함하여 그 보다 더 넓은 의미를 갖는 상태의 물을 의미한다. 전형적인 예는「물질발명(DDT) 」에 대한 독립항과 그「물질발명」에 대한「용도발명(DDT 살충제)」을 독립항으 로 하여 1특허출원으로 할 수 있다는 것을 들 수 있다.

            3·2·3 기본이 되는 방법의 발명이 있는 경우

              그 방법의 실시에 직접사용하는 기계, 기구, 장치 기타의 물건에 관한 발명, 즉 기본이 되는 발명이 방법의 발명일 경우에 그 방법을 실시하는데 사용되는 장치류 와 기타 촉매, 원료등의 발명을 각각 독립항으로 해서 1특허출원으로 할 수 있다. 예를들면 「일정 크기의 기포제와 유리원료를 혼합하여 틀에 넣는 내부에 구형의 공간을 여러개 갖는 유리컵의 제법」과 「기포발생부, 유리원료 공급부 및 혼합부 를 갖고 혼합된 원료를 일정 형상으로 고형시키는 장치」와 같이 전자는 제품의 생산방법이고 후자는 그 방법을 실시하는데 사용되는 기계이므로 각각 독립항으로 하여 하나의 특허출원으로 할 수 있다.

          3·3 1특허출원에의 기재

            1특허출원으로 할 수 있는 경우는 원칙적으로 기본이 되는 발명과 전기한 1특허출원의 요건에 해당하는 발명을 선택적으로 또는 전부를 기재할 수 있다. 그러나 기본이 되는 물의 발명을 1독립항으로 기재하기 곤란한 경우 또는 1특허출원의 요건에 해당하는 전기한 발명이 1독립항으로 기재하기가 곤란할 때에는 1군의 발명에 해당하는 경우에 한하여 2이상의 독립항으로 할 수 있다. (특허법시행령 제6조제2항) 물의 발명이 기본일 때 이물 자체에 관한 발명의 독립항을 2이상으로 기재할 수 있고 또한 물의 발명에 관한 1독립항과 그 물의 생산방법에 관한 발명을 1특허출원으로 하고자 할 때 그 물의 생산방법의 발명을 1독립항으로 하기가 곤란할 때에는 2이상의 독립항으로 구분하여 1특허출원으로 할 수 있다.

- 1 -
주간 IT산업 주요 이슈 (2012-21호)
- ’12.5.24(목), NIPA 산업분석팀
1. 주요 이슈
1 세계 TV 시장 … 우리 기업이 주도하나
□ 세계 TV 시장서 국내 기업과 일본 기업의 격차 확대
ㅇ 올해 1분기 세계 TV 시장에서 삼성전자는 21%의 점유율로 1위,
LG전자는 16%로 2위, 이어 소니(7%), TCL(6%), 파나소닉(6%) 순
* 올해 1분기 평판TV 시장에서 삼성전자는 26%의 점유율로 1위, LG전자는 14.6%로
2위를 차지한 반면, 소니는 9.4%, 샤프는 6.5%, 파나소닉은 5.3%로 일본 기업의
시장점유율은 전년 동기대비 하락
세계 TV 시장 점유율 현황
※국민일보 ’12.5.20 ※동아일보 ’12.5.21 ※문화일보 ’12.5.22
□ TV 시장의 규모는 줄었지만 3D TV의 성장세는 지속될 전망
ㅇ 올해 1분기 세계 TV 시장은 총 5,122만 대 규모로 작년 동기대비 8%
감소하였으나 3D 시장 규모는 719만 대로 245% 증가
* 삼성전자는 1분기 3D TV 시장에서 25%의 점유율로 1위, LG전자는 16%로 급증한
반면 지난해 1분기 27%였던 소니의 점유율은 12%로 급감
☞ 세계 TV 시장 주도권 확보 … 신제품 개발에 힘써야
ㅇ 국내 TV 제조사들이 세계 TV 시장에서 일본 주요 TV 제조사들을
제치고 주도권을 확보한 것은 LED․3D․스마트 TV로 재빨리
전환하였기 때문이며, 향후 주도권을 유지하기 위해서는 성
장세가 지속될 3D․OELD TV 시장의 선점 필요

[출처] http://www.ideakeyword.com/2236

많은 분들이 특허 출원을 망설이는 이유 중 하나가 많은 비용이 든다는 것입니다. 특허 1건을 출원해서 등록까지 받으려면 대리인(변리사)을 선임해서 진행하는 경우 수 백만원이라는 많은 비용이 발생합니다. 그렇다면 특허 출원 비용을 절약할 수 있는 방법은 없을까요?

이를 알아보기 위해서는 특허 출원시 발생하는 비용에 대해서 살펴볼 필요가 있습니다. 특허 출원을 하는 경우 발생하는 비용은 크게 대리인 수수료와 특허청 수수료(관납료)가 있습니다. 이 중에서 많은 부분을 차지하는 것이 대리인 수수료입니다. 대리인 수수료는 출원인과 대리인 사이에 협의에 의해 결정되는 것이므로 여기서는 언급하지 않겠습니다. 특허청 수수료의 경우 전자출원하는 경우와 서면출원하는 경우가 약간 다릅니다. 서면출원하는 경우에는 가산료가 발생하는데, 대부분의 특허사무소에서는 비용이 저렴하고 편리한 전자출원을 하고 있으므로 이 부분 또한 출원인이 신경 쓰실 부분은 아닙니다.

특허 출원의 경우 특허청 수수료는 청구범위에 기재된 청구항의 수에 따라 달라집니다. 청구항 1항당 가산료가 4만원이 됩니다. 즉 청구항이 많을수록 특허청 수수료가 비싸집니다. 예를 들어 청구항이 5개인 특허 출원의 특허청 수수료를 계산해보면 다음과 같습니다.


출원료

심사청구료

합계

\38,000(전자출원)

기본료 : \130,000

\368,000

가산료 : \40,000*5 =\200,000


청구항이 5개만 되도 특허청 수수료가 적지 않습니다. 만약 청구항이 10개라면 특허청 수수료는 \568,000입니다. 이 또한 출원인에게 부담이 됩니다.

그렇다면 특허청에서 이 돈을 다 받느냐? 특허청에서는 경제적으로 어려운 사람들도 특허출원을 할 수 있도록 하기 위해서 특허청 수수료를 면제해주거나 감면해주고 있습니다. 이에 대한 구체적인 내용을 표로 정리하면 다음과 같습니다.

면제.jpg

70%.jpg
50%.jpg

위에서 계산해 본 청구항이 5개인 특허 출원의 경우, 개인 또는 중소기업을 이유로 70% 감면 받으면 특허청 수수료가 \110,400이 되어, \257,600을 절약할 수 있습니다. 주의하실 점은 출원시에 감면 대상임을 표시해야 하고, 증명서류를 제출해야 한다는 것입니다. 또한 특허, 실용신안, 디자인의 경우에는 감면이 되지만, 상표의 경우에는 감면 대상이 되지 않는다는 점도 주의하셔야 합니다.

간단한 서류 제출로 특허 출원 비용을 줄일 수 있는 방법을 많은 분들이 잘 활용해 많은 분들이 저렴하게 자신의 권리를 보호 받기를 희망합니다.

누리국제특허법률사무소
변리사 김종혁

[신규] 안드로이드 개발자 등록시 판매자 계정 신청 비활성화 되신 분들

안내입니다.

제가 다시 신청해서 해보았지만, 아직 저도 승인이 나지 않았기 때문에,

결과는 모르겠습니다. 다음에 방법

아래 화며이 뜨면서 개발자 계정 신청계정이 중지됩니다.


* 이 부분은 알아보실 분도 있지만, 미국 사이트에 적용되어 미국으로 정보가 갈지도 모르니

아래로 스크롤 하여 한국어로 바꿉니다.


한국어로 바꾸신 후, 판매자 계정 신청자 신분증(운전면허증) 판매자 주소가 담긴 서류(청구서, 저는

주민등록등본 사본)를 첨부합니다.

한국어 화면은 아래와 같습니다.


저도 신청하고 승인 기다리고 있습니다. 참고하시길....


+ Recent posts