히정

히정

히정히정· 7년

Spring이란?

IOC컨테이너 * IOC컨테이너 ( =spring ) 컨테이너란? 인스턴스의 생명주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것 즉, 내가 작성한 코드의 처리과정을 위임받은 독립적인 존재 ( 적절한 설정만 되어있다면 프로그래머가 작성한 코드를 스스로 참조한 뒤 알아서 객체의 생성과 소멸을 관리해준다. )   스프링 컨테이너는 스프링 프레임워크의 핵심부에 위치, 종속객체 주입을 이용하여 애플리케이션을 구성하는 컴포넌트들을 관리한다. -> 프로그래머가 작성한 코드는 컨테이너를 사용하게 됨으로서 프로그래머의 손을 떠나 컨테이너의 영역으로 떠나버리게 된다.   [ 스프링 컨테이너의 두 종류 ]   1. 빈팩토리 BeanFactory ( org.springframework.beans.facory.BeanFactory ) : DI의 기본사항을 제공하는 가장 단순한 컨테이너 팩토리의 디자인 패턴을 구현한 것. Bean팩토리는 빈을 생성하고 분배하는 책임을 지는 클래스 빈의 정의는 즉시 로딩하는 반면, 빈 자체가 필요하게 되기 전까지는 인스턴스화를 하지 않는다.   BeanFactory factory = new XmlBeanFactory(new FileinputStream(“bean.xml”)); MyBean myBean = (Mybean) factory.getBean(“myBean”); getBean()이 호출되면, 팩토리는 의존성 주입을 이용해 빈을 인스턴스화하고 빈의 특성을 설정하기 시작, 빈의 일생이 시작된다.   2. 어플리케이션 컨텍스트 ApplicationContext ( org.springframework.context.factory.BeanFactory ) : 빈팩토리와 유사한 기능을 제공하지만 좀 더 많은 기능을 제공하는 어플리케이션 컨텍스트   * 빈팩토리보다 더 추가적으로 제공하는 기능 국제화가 지원되는 텍스트 메세지를 관리해준다. 이미지같은 파일 지원을 로드 할 수 있는 포괄적인 방법을 제공해준다. 리너스로 등록된 빈에게 이벤트 발생을 알려준다. 가장 많이 사용되는 어플리케이션 컨텍스트 구현체 ClassPathXmlApplicationContext : 클래스패스에 위치한 xml파일에서 컨텐스트 정의 내용을 읽어들인다. FileSystemxmlApplicationContext : 파일 경로로 지정된 xml파일에서 컨텐스트 정의 내용을 읽어들인다. XmlWebApplicationContext : 웹 어플리케이션에 포함된 xml파일에서 컨텐스트 정의 내용을 읽어들인다.   ApplicationContext context = new ClassPathXmlApplicationContext(“conf/bean.xml”); MyBean bean = context.getBean(“myBean”);   ==> 빈팩토리와 어플리케이션컨텍스트의 또 다른 차이점 - 빈 팩토리 : 처음으로 getBean()이 호출된 시점에서야 해당 빈을 생성 - 어플리케이션 컨텍스트 : 컨텍스트 초기화 시점에 모든 싱글톤 빈을 미리 로드한 후 어플리케이션 기동 후에는 빈을 지연없이 얻을 수 있다. ( 미리 빈을 생성해 놓아 빈이 필요할 때 즉시 사용할 수 있도록 보장 )   IOC ( inversion of control, 제어의 역전 ) IOC란? 제어의 역전, 즉 외부에서 제어를 한다는 것 ( = 컨테이너 ) 제어권이 넘어가서 객체의 생명주기를 Container들이 전담하게 된다. -> 객체의 생성에서부터 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미함.
1.9K
4
0
히정히정· 7년

[JavaScript] JavaScript / argument 객체

자바( Java ) 1. 정적 형 지정 : Static typingint 형식의 변수를 생성하면, 정수만 담을 수 있다.member형식의 참조변수를 생성하면, member 객체만 담을 수 있다. 2. 강한 형 검사 : Strong type checkingtype이 일치하지 않다면, 컴파일 오류를 발생!자바 스크립트 ( JavaScript ) 동적 형 지정 : Dynamic typing자바와 다르게 대입될 자료에 의해 변수의 자료형이 결정된다. 자료형boolean : true 와 falsenumber : 정수와 실수를 모두 표현 (대표적인 상징 값)NaN : 숫자가 아니다.Number, MAX_VALUE : 양수 무한대Number, MIN_VALUE : 음수 무한대String : 문자열, ' ' or " " 로 표현undefined : 정의되지 않은 값, 값을 할당하지 않은 변수의 값null : 존재하지 않은 값function : 함수, 객체를 생성할 수 있는 역할null : 변수는 있으나, 해당 변수가 참조하는 객체가 없을 경우undefined : 애초에 참조할 수 있는 변수가 없을 경우, 변수가 초기화되지 않는 경우arguments 객체 ☆typeof arguments =>>object자바 스크립트에서는 함수를 호출할 때 함수 형식에 맞춰 인자를 넘기지 않아도 에러가 발생하지 않는다.정의된 인자보다 적게 함수를 호출했을 경우, 넘겨주지 않은 인자에는 특별한 값 undefined가 할당됨반대로 정의된 인자보다 많게 함수를 호출했을 경우, 에러가 발생하지 않고 초과된 인수는 무시됨.                 =>> 런타임 시 호출된 인자의 개수를 확인하고 이에 따라 동작을 다르게 해줄 수 있다.                         이를 가능하게 하는게 바로 arguments 객체함수를 호출할 때 인수들과 함께 암묵적으로 arguments 객체가 함수 내부로 전달됨.arguments 객체는 함수를 호출할 때 넘긴 인자들이 배열 형태로 저장된 객체를 의미함.실제 배열이 아닌 마치 배열 형태처럼 숫자로 인덱싱된 프로퍼티가 있는 객체 ==> 유사 배열 객체length 프로퍼티 : 호출할 때 넘겨진 인자의 개수callee 프로퍼티 : 현재 실행 중인 함수의 참조값**배열과 유사하게 동작하지만, 배열은 아니므로 배열 메서드를 사용하면 에러가 발생매개변수 개수가 정확하게 정해지지 않은 함수를 구현전달된 인자의 개수에 따라 서로 다른 처리를 해줘야하는 함수를 구현
1.5K
2
0
히정히정· 7년

[JavaScript] 유효범위

자바의 Scope자바는 변수를 사용할 수 있는 스코프가 { } 형태의 코드블록으로 나뉜다.자바 스크립트의 Scope{ } 코드블록으로 영역을 나누지 않는다!       ==> 자바 스크립트는 특정 구문이 실행 될 때 새로 생성!function : 함수, 가장 많이 사용with : 곧 사라질 구문 ( ECMAScript6부터 Deprecated )catch : 예외처리 구문지역변수의 유효범위는 함수 안이고, 전역변수의 유효범위는 애플리케이션 전역인데,같은 이름의 지역변수와 전역변수가 동시에 정의되어 있다면 지역변수가 우선한다.var vscope = 'global';function fscope(){     var vscope = 'local';     alert('함수안 '+vscope);}fscope();alert('함수밖 '+vscope);==> 함수안 local 함수밖 globalvar vscope = 'global';function fscope(){     vscope = 'local';     alert('함수안'+vscope);}fscope();alert('함수밖'+vscope);==> 둘다 localwhy?     - 함수 fscope의 지역변수를 선언할 때 var를 사용하지 않았기 때문이다.       var를 사용하지 않은 지역변수는 전역변수가 된다. 따라서 전역변수의 값을 local로 변경하게 된 것.전역변수는 사용하지 않는 것이 좋다.why?       - 여러가지 이유로 그 값이 변경될 수 있기 때문        변수를 선언할 때는 꼭 var을 붙이는 것을 습관화해야함.유효범위의 필요성본 예제는 무한반복을 발생시킨다. function a (){ i = 0;}for(i = 0; i < 5; i++){ a(); document.write(i);}==> 변경function a (){ var i = 0;}for(var i = 0; i < 5; i++){ a(); document.write(i);}전역변수를 사용하는 방법MYAPP = {}MYAPP.calculator = { 'left' : null, 'right' : null}MYAPP.coordinate = { 'left' : null, 'right' : null}MYAPP.calculator.left = 10;MYAPP.calculator.right = 20;function sum(){ return MYAPP.calculator.left + MYAPP.calculator.right;}document.write(sum());
1.5K
1
1
0
리훈
리훈·2018-08-03
유용해요~!!
히정히정· 7년

JSP_액션태그 [ <jsp:...> ]

<jsp:include "경로">          : 상단 좌측 하단은 모든 jsp에 들어가야 하는 소스일 경우 똑같은 소스를 모든 jsp에 작업을 해줘야하기 때문에 비효율적이다.그래서 공통적인 일을 하는 것을 만들어 놓고 필요한 경우 include를 이용하여 호출만해주면 된다.
1.7K
1
1
0
리훈
리훈·2018-08-03
짝짝짝
히정히정· 7년

JSP_데이터 유지관리 기법 [ Cookie, Session ]

HTTP의 특징* Connection-less : 클라이언트의 request를 서버에 보내고, 서버는 클라이언트에게 response를 보내면 연결이 끊기는 특징* State-less : 접속을 끊는 순간 서버와의 통신 유지가 사라지는 점무상태 서버, 무상태 로직 - 웹브라우저에서 서버로 어떤 데이터를 요청 하면, 서버측에서는 알맞은 로직을 수행한 후 데이터를 웹 브라우저에 응답합니다.서버는 웹 브라우저와의 관계를 종료합니다.쿠키(Cookie)            : 연결이 끊겼을 때 어떤 정보를 지속적으로유지하기 위한 수단으로 쿠키라는 방식을 사용한다.               requestclient --------------------->server 생성 : 서버 / 저장 : 클라이언트( 내 컴퓨터 )                  setter이용 response.addCookie()쿠키 생성 -----> 속성 설정 -------->response객체에 쿠키 탑재 /☆웹 브라우저의 쿠키 저장소에 쿠키 저장, 이후 같은 사이트에 접속 시 저장된 쿠키가 요청 정보에 실려간다.웹 사이트에 접속할 때 생성되는 정보를 담은 임시 파일4KB이하의 크기로 생성-목적 : 원래 사이트에 접속한 사용자의 정보를 유지하거나, 사이트에 접속하는 사용자들이 해당 사이트에 쉽게 접속하기 위한 것-단점 : 쿠키에 대한 거부가 웹 브라우저에 설정되어 있으면, 웹 브라우저와의 연결을 지속시키는 기능을 수행 X-쿠키의 사용JSP에서 쿠키를 사용하려면 javax.servlet.http 패키지에 있는 Cookie 클래스의 객체를 생성해야 한다.이렇게 생성된 쿠키에는 각각의 웹 브라우저를 판별할 수 있는 정보가 포함되어 있다.쿠키는 웹 서버가 웹 브라우저의 요청에 응답할 때 response 객체에 실려서 사용자의 웹 브라우저에 저장된다.웹 브라우저에 저장된 쿠키는 사용자가 다시 웹 서버에 요청을 할 때 request 객체에 실려서 다시 웹 서버에 전달된다.이때 웹 서버는 전달된 쿠키의 값을 읽어서 같은 웹 브라우저로부터 온 요청인지를 판별하게 된다. ☆/1. HTTP의 일종으로 클라이언트에 데이터를 저장하는 파일2. Login, HOST 정보 등을 저장한다.<쿠키 문법>setMaxAge() : 쿠키 유효기간을 설정setpath() : 쿠키사용의 유효 디렉토리를 설정setValue() : 쿠키의 값을 설정getMaxAge() : 쿠키 유효기간 정보를 얻음getValue() : 쿠키의 값을 얻음세션(Session)          : 세션도 쿠키와 마찬가지로 서버와의 관계를 유지하기 위한 수단서버상에 객체로 존재=> 따라서 세션은 서버에서만 접근이 가능하여 보안이 좋고, 저장할 수 있는 데이터에 한계가 없다.용량의 제한이 없다.사용 : 로그인이나, 어떠한 정보를 유지하고자 할 때  클라이언트 요청 —---------> session 자동 생성 —---------> session 속성 설정 웹브라우저 session 내부 객체의 메소드 이용 /☆세션은 웹 서버 쪽의 웹 컨테이너에 상태를 유지하기 위한 정보를 저장한다.쿠키는 사용자의 상태 유지를 위한 정보를 웹 브라우저에 저장해서 웹 서버가 쿠키 정보를 읽어서 사용한다.이것은 웹 브라우저에 저장된 쿠키는 웹 서버에서 열어볼 수 있다는 점에서 보안상 문제가 발생할 수 있다.따라서 사용자의 정보를 유지하기 위해서는 쿠키를 사용하는 것보다 세션을 사용한 웹 브라우저와 웹 서버의 상태 유지가 훨씬 안정적이고, 보안상의 문제도 해결할 수 있다.세션은 웹 브라우저 당 1개씩 생성된다.웹 서버는 각각의 웹 브라우저로부터 발생한 요청에 대해서 특별한 식별자를 부여한다. 이후에 이 식별자를 웹 브라우저에서 발생한 요청들과 비교해서 같은 식별인지를 구별하게 된다. 이 특별한 식별자에 특정한 값을 넣을 수 있으며, 이것을 사용해서 세션을 유지하게 된다.☆/1. 클라이언트와 웹 서버간 연결이 유지되고 있는 상태2. 사용자가 웹 브라우저를 통해 웹 서버 접속 후 종료할 때 까지의 상태3. 클라이언트가 웹 서버에 요청 시 서버는 클라이언트에게 세션ID를 부여4. ID는 임시로 저장되어 클라이언트가 재접속 또는 페이지 이동 시에 서버가 클라이언트를 식별하는 수단5. 클라이언트 별 맞춤 서비스 제공이 가능해진다.6. 장점 : 클라이언트의 사용 정보를 서버에 저장하기에 보안 측면에서 쿠키보다 뛰어남.7. 단점 : 정보들을 서버에 저장하기에 해당 데이터 처리에 대한 비용 발생<세션문법>세션은 클라이언트의 요청이 발생하면 자동생성(서버 컨테이너에서)됩니다. session이라는 내부객체를 지원하여 세션의 속성을 설정할 수 있다.setAttribute() : 세션에 데이터를 저장합니다.getAttribute() : 세션에 데이터를 얻습니다.getAttributeName() : 세션에 저장되어 있는 모든 데이터의 이름(유니크한 키값)을 얻습니다.getId() : 자동 생성된 세션의 유니크한 아이디를 얻습니다.isNew() : 세션이 최초 생성되었는지, 이전에 생성된 세션인지를 구분합니다.getMaxinactiveinterval() : 세션의 유효시간을 얻습니다. 가장 최근 요청시점을 기준으로 카운트 됩니다. ( web.xml 에 디폴트값으로 30분이 입력되어있음 )removeAttribute() : 세션에서 특정 데이터 제거합니다.invalidate() : 세션의 모든 데이터를 삭제합니다.
2.1K
2
0
히정히정· 7년

Java) 정렬코드 (버블 정렬, 선택 정렬, 삽입 정렬)

class Sort { public static void swap(int[]data, int a, int b) { int temp; temp = data[a]; data[a]=data[b]; data[b]=temp; } public static void viewsort(int[] data) { for(int s : data) { System.out.print(s + " "); } System.out.println(); }} class BubbleSort { public void sort(int[] data) { for(int i=data.length-1; i>=0; i--) { for(int j=0; j<i; j++) { if(data[j] > data[j+1]) { Sort.swap(data, j, j+1); Sort.viewsort(data); } } } }} class SelectSort { public void sort(int[] data) { int maxIdx; for(int i=data.length; i>1; i--) { maxIdx=0; for(int j=1; j<i; j++) { if(data[maxIdx] < data[j]) { maxIdx = j; } } Sort.swap(data, maxIdx, i-1); Sort.viewsort(data); } }} class InsertionSort { public void sort(int[] data) { int temp, sub; for(int i=1; i<data.length; i++) { temp = data[i]; sub=i-1; while((sub>=0) && (data[sub]) > temp) { data[sub+1] = data[sub]; sub--; } data[sub+1] = temp; Sort.viewsort(data); } }} public class SortMain { public static void main(String[] args) { int[] data= {3,2,5,1,4}; Sort.viewsort(data); System.out.println("----------------"); BubbleSort bs = new BubbleSort(); bs.sort(data);// SelectSort ss = new SelectSort();// ss.sort(data);// InsertionSort is = new InsertionSort();// is.sort(data); }}
1.5K
1
3
0
yous3163
yous3163·2018-05-19
주석도좀달아주세요 ㅠㅠ
히정히정· 7년

[PHP] 폼에서 송신된 텍스트를 받으려면

<텍스트의 송신>01 텍스트를 송신하는 조합웹 서버와 클라이언트 소프트웨어(웹 브라우저 등)는 HTTP헤더를 사용해 보이지 않게 메세지를 교환하고 있습니다. 웹 브라우저에서 송신된 데이터를 이 헤더 정보에 할당되어 웹 서버에 전달됩니다. 요청 헤더는 문자열로 구성되어 있습니다.02 GET과 POST웹 브라우저에서 웹 서버에 데이터 송신하는 방법에는 [GET]과 [POST]라는 두 가지 방법이 있습니다. 문의하는 폼이나 설문 조사폼, 게시판의 투표 폼 등과 같이 전송 버튼을 클릭하여 데이터를 송신하려면 [POST] 메소드를 사용합니다. 텍스트뿐만 아니라 이미지 등의 바이너리 파일을 송신할 수도 있습니다.한편, 검색 엔진의 검색 결과 URL처럼 링크 부분에 데이터를 추가하여 송신하는 경우는 [GET] 메소드를 이용합니다.<송신 폼 작성>01 구성데이터를 송신하기 위한 페이지는 HTML로 [form.html]을 작성하고텍스트 데이터를 수신하여 출력하는 기능은 [view.php]에 구현합니다.02 폼 만들기 form.html<텍스트 데이터 받기>01 글로벌 변수 $_POST데이터가 송신되면 view.php 안에 작성된 코드가 실행됩니다. view.php에서는 송신된 텍스트 데이터를 글로벌 변수에서 취득할 수 있습니다. POST 메소드로 송신된 데이터는 $_POST에, GET 메소드는 $_GET에 데이터가 할당되어 있습니다. 둘 다 관계없이 취급하려면 $_REQUEST를 사용합니다.02 송신 데이터 꺼내기데이터를 참조하려면 입력란의 <INPUT> 태그의 name 속성을 $_POST의 키로 지정합니다.우리는 form.html 안에 입력란의 name 속성은 [onamae]로 설정되어 있어서 $_POST["onamae"]로 송신받은 데이터를 참조할 수 있습니다. view.php<송신결과>01 form.html 표시하기 02 view.php에서 확인하기 <여러 행의 텍스트 송신>01 송신 폼 작성하기긴 문장을 송신하려면 form.html에 <TEXTAREA> 태그를 사용합니다. form.html02 여러 행의 문자열 받기view.php에 <TEXTAREA> 태그로 송신하는 데이터를 표시하기 위한 코드를 추가합니다.print $_POST["honbun"];03 nl2br 함수 추가하기 view.php nl2br ?? 새로운 줄을 표시하는 기호를 HTML에서 인식할 수 있도록 br 태그로 변환해주는 역할을 합니다.<실행 결과>
2.0K
5
0
히정히정· 7년

[PHP] foreach문

foreach문foreach문이란?foreach문을 사용하면 배열이나 연관 배열에서 간단하게 값만 꺼낼 수 있습니다. foreach문에는 두 가지 구문이 있지만, 배열의 값만 사용하는 방법을 설명하겠습니다. 반복의 시작에  $배열 as $변수  로 배열에 할당된 값을 배열의 앞에서부터 하나의 변수에 할당하여 처리르 실행합니다. 처리가 끝나면 처음으로 돌아와서  $배열 as $변수  에서 다음 값을 변수에 할당하여 처리를 계속하고 값이 더 이상 없으면 반복을 빠져나옵니다.  foreach($배열 as $키){ 처리 1; 처리 2; print $변수; ... }foreach문 사용하기배열을 준비하고 배열 $week와 그 값을 할당하는 변수 $value를  $week as $key  로 지정합니다. 배열 안에 있는 값의 수만큼 변수 $value에 순서대로 값이 할당되어 print문으로 출력됩니다. $week = array("월","화","수","목","금","토","일"); foreach($week as $value){ print $value; print "<BR>"; }연관 배열 조작foreach문에서 key 출력하기연관 배열에서 foreach문을 사용하면 키와 값을 동시에 꺼낼 수 있습니다.  $배열 as $변수  를  $배열 as $키 => $변수  와 같이 변경하면 됩니다. 변수 $키는 연관 배열의 키가 할당되어있고 $변수에 키와 연관된 값이 할당됩니다. foreach($배열 as $키 => $변수){ 처리 1; 처리 2; print $변수; ... }foreach문에서 연관 배열 조작하기이번에는 연관 배열을 작성하고 키와 값을 가져와서 표시해 보겠습니다. 먼저 배열 $mem를 준비합니다. $mem as $key => $value  를 지정하기 위해 $key에 키를 할당하고 키와 관련된 값을 $value에 할당합니다. 블록 안의 처리를 실행한 후에 처음으로 돌아와 키와 값이 있으면 처리를 반복하고 키와 값이 더 이상 없으면 반복을 빠져나옵니다. foreach ($mem as $key => $value) { print("$key : $value"); print "<BR>"; }
3.5K
3
0
히정히정· 7년

[PHP] 연관 배열

연관 배열연관 배열이란?배열과 같이 여러 개의 데이터를 할당할 수 있는 상자를 가지고 있습니다. 각 상자는 임의의 이름(키)을 붙이는 것으로 상자를 식별할 수 있습니다. 따라서 키와 데이터를 관련지어 보관하고 싶을 때는 연관 배열을 사용합니다.연관 배열에 이름 붙이기변수나 배열과 같이 연관 배열명 앞에 $를 붙입니다.$연관 배열명연관 배열 사용데이터 할당하기연관 배열 $member에 데이터를 할당하려면 $member["name"]처럼 키가 되는 문자열 name를 지정합니다. 키는 문자열이므로 ""으로 묶습니다. 다음으로, 변수나 배열과 같이 =을 기술하여 값을 할당합니다. 연관 배열도 변수나 배열과 같이 문자열이나 수치를 할당할 수 있습니다.  $member["name"] = "철수";데이터 출력하기연관 배열에 할당한 데이터를 참조하려면 연관 배열의 키를 사용합니다.  $member["name"] = "철수"; 라는 코드가 실행되면 연관 배열 $member의 키 [name]에 철수가 할당됩니다.  $member["name"] = "철수";print $member["name"];데이터 추가하기데이터를 추가할 때도 똑같이 키를 지정하고 값을 할당합니다. 배열처럼 $member[]는 사용하지 않습니다. 키 [age]에는 나이를 키 [tall]에는 신장을 할당합니다. 각 키는 print함수로 출력하여 확인할 수 있습니다. $member["name"] = "철수"; $member["age"] = "20"; $member["tall"] = "170"; print $member["name"]; print "<BR>"; print $member["age"]; print "<BR>"; print $member["tall"]; print "<BR>"; print "<BR>";연관 배열 작성array 함수 사용하기array 함수로 연관 배열을 작성하려면 =>를 사용해 키와 값을 관련지어야 합니다. array 함수의 ()사이에 키와 데이터를 (키=>데이터)와 같이 지정합니다. 각 데이터와 키의 조합은 , 로 구별합니다. 키나 데이터가 문자열이면 ""으로 묶습니다. array 함수 대신에 []를 사용할 수도 있습니다.$data = array(key1 => 데이터1, key2 => 데이터2, key3 => 데이터3, ...); $data = [key1 => 데이터1, key2 => 데이터2, key3 => 데이터3, ...];데이터 할당하기array 함수를 사용하여 키와 데이터를 할당하는 것을 좀 더 보기 쉽게 작성합니다.  $mem = ["name" => "heejung", "age" => 25 , "tall"=> 168]; print $mem["name"]; print "<BR>"; print $mem["age"]; print "<BR>"; print $mem["tall"]; print "<BR>"; print "<BR>"; print "<BR>";
1.8K
2
0
히정히정· 7년

인텔 올림픽 매직…"드론쇼 다음은 ‘서핑VR’"

인텔 올림픽 매직…"드론쇼 다음은 ‘서핑VR’" [머니투데이 류준영 기자] [2020 도쿄하계올림픽서 서핑VR 중계·안면인식 출입 시도 ] 평창동계올림픽 개막식에서 ‘드론(무인기) 오륜기’를 연출해 주목을 받은 인텔이 2020년 도쿄하계올림픽에선 360도 시야각을 news.naver.com 평창동계올림픽에서 드론쇼로 전세계를 놀라게 했었는데요!  도쿄하계올림픽에서는 서핑VR 중계·안면인식 출입 시도까지 한다고 하네요.  기술이 우리의 생활을 정말 편리하게 해주네요^^
1.7K
1
1
0
kimho
kimho·2018-03-30
아.. 인텔이었군요..