본문 바로가기

전체 글227

[IoT] 사물인터넷 센서 센서의 종류는 매우 많아 모두 언급할 수가 없다. 최신형 스마트폰에 들어가는 센서의 종류만 해도 20가지 내외이며 항공기 엔진 하나에 들어가는 센서의 개수는 무려 1800개에 달할 정도이다. RFID나 NFC 태그도 엄밀한 의미에서는 센서에 해당하며 블루투스 LE 기반의 비콘도 센서의 일종이다. 스마트폰에 사용되는 센서 동작인식 센서로 분류되는 센서는 3축에 대해 가속력과 회전력을 측정하여 스마트 디바이스의 움직임을 알려주는데 이용된다. 가속도 센서 - 단위 시간 당 직선 운동에 대한 속도의 변화를 측정하는 센서이다. - 가속도의 값은 보통 동적 가속도 값과 정적 가속도 값을 함께 이용한다. - 동적 가속도는 진동이나 충격에 의해 발생하는 가속도이고 정적 가속도는 중력 가속도라 생각하면 된다. 중력 센서.. 2022. 11. 21.
[S/W] Programming 개발 방법론 & Diagrams Programming 개발 방법론 1. Top-Down Programming(하향식 프로그래밍) - 전체적인 구조부터 설계(자세한 프로그래밍 X) - 빈 Module (stub = 상위 프로그램이 호출했을 때 완벽한 기능을 임시로 흉내내는 가짜 모듈) - stub 들간 호출 Test(필요한 일부 Parameter들 정의, call과 return은 한 쌍) - 점차 하위 Module들을 구축함 - Interface 고려 - decomposition 기법(분해 기법)이 속함 문제점: 공통 Module 발견 곤란(부모가 여러개인 모듈), 대형 프로젝트 시 시간소요 증가 Interface Error는 상대적으로 적게 발생 2. Bottom-Up Programming 기법(상향식 프로그래밍) - 전체적인 구조부터.. 2022. 11. 18.
[S/W] Modular Programming과 복잡도 제어(Complexity Control) Modular Programming Modular Programming ⊆ Structured Programming - Divide-and-Conquer 이론: Module 화의 기본 (문제를 여러 개로 분해하여 해결한 후 풀린 부분 문제들을 거꾸로 조합하여 원래의 문제를 푸는 방식이다.) Module의 특징 1. 독립적으로 Test / 수행이 가능 2. 하나의 Entry(입구)와 하나의 Exit(출구)가 존재 3. 제어 구조를 가짐(순차구조, 선택구조, 반복구조) (Module화는 Program의 복잡도, 개발유지/보수 비용, Error 발생률을 제어해준다.) Modular Programming의 장점 1. Program을 이해하는데 용이 2. Test하는데 용이 3. 수정 / 보완에 용이 4. 유지 .. 2022. 11. 16.
[JS] setInterval()과 setTimeout() 함수 setInterval() 웹페이지의 특정 부분을 주기적으로 업데이트해줘야 하거나, 어떤 API로 부터 변경된 데이터를 주기적으로 받아와야 하는 경우가 있다. 이럴 때는 자바스크립트의 setInterval() 함수를 사용할 수 있다. setInterval() 함수는 원하는 코드를 일정한 시간 간격을 두고 반복해서 실행하고 싶을 때 사용한다. 사용법 setInterval( 함수명, 시간 ); 예를 들어 현재 시간을 1초 간격으로 출력하고 싶다면 const getClock= () => { const date = new Date(); console.log(`${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}`); }; getClock(); setInter.. 2022. 11. 14.
[JS] localStorage란? localStorage 브라우저에 key-value 값을 Storage에 저장한다. 이 저장한 데이터는 세션 간 공유가 된다. 다시말하자면, 세션이 바뀌어도 저장한 데이터는 그대로 유지된다는 것이다. localStorage 사용법 localStorage.setItem(): key와 value값 추가 localStorage.removeItem(): item 삭제 localStorage.clear(): 도메인 내의 localStorage 값 삭제 localStorage.length: 전체 item의 개수 *localStorage에는 문자열만을 저장할 수 있다. localStorage.setItem() localStorage에 아이템을 추가하기 위해서 setItem을 사용한다. localStorage.setI.. 2022. 11. 11.
[데이터 통신과 네트워킹] 응용층(DNS) 도메인 이름 시스템(DNS) 다른 응용 프로그램을 도와주기 위해 만들어짐 1. 사용자는 파일 전송 클라이언트에 호스트 이름을 전달 2. 파일 전송 클라이언트는 DNS 클라이언트에 호스트 이름을 전달 3. 각 컴퓨터는 부팅이 된 후 하나의 DNS 서버의 주소를 알고 있으며, DNS 클라이언트는 알고 있는 DNS 서버의 IP 주소를 이용하여 파일 전송 서버의 이름을 제공하는 질의와 함께 메시지를 DNS 서버로 송부 4. DNS 서버는 원하는 파일 전송 서버의 IP 주소로 응답 5. DNS 서버는 파일 전송 클라이언트에 IP 주소를 전달 6. 파일 전송 클라이언트는 파일 전송 서버에 접근하기 위해 수신된 IP 주소를 사용 이름 공간(Name Space) 유일한 이름을 대응시키는 이름 공간은 두 가지 방법으로 .. 2022. 11. 9.
[데이터 통신과 네트워킹] 응용층(FTP, E-mail) FTP(File Transfer Protocol) 하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP에 의해 제공되는 표준 프로토콜 HTTP를 사용하여 파일을 전송할 수 있지만, FTP는 큰 파일을 전송하거나 다른 형식을 사용한 파일을 전송할 경우에 장점이 있음 - 클라이언트는 사용자 인터페이스와 클라이언트 제어 프로세스, 그리고 클라이언트 데이터 전송 프로세스라는 세 가지 구성요소를 보유 - 반면 서버는 서버 제어 프로세스와 서버 데이터 전송 프로세스라는 두 가지 구성요소를 보유 - 제어 연결은 제어 프로세스 간에 만들어지고, 데이터 연결은 데이터 전송 프로세스 간에 설정 - 명령(command)과 데이터 전송의 분리는 FTP를 좀 더 효율적으로 사용할 수 있도록 만들어 줌 - 제어 연결.. 2022. 11. 7.
[데이터 통신과 네트워킹] 응용층 (WWW와 HTTP) 응용층은 사용자에게 서비스를 제공하며 통신은 논리적 연결을 사용하여 제공한다. 서비스 제공 표준과 비표준 프로토콜 인터넷의 원활한 동작을 제공하기 위해 TCP/IP 프로토콜의 처음 네 계층에서 사용되는 프로토콜들은 표준화되고 문서화되어야 함 보통 이 프로토콜들은 윈도우나 유닉스와 같은 운영체제에 포함되는 패키지의 일부로 포함되지만, 보다 더 융통성이 있기 위해서는 응용층 프로토콜들은 표준화와 비표준화 둘 다 될 수 있음 1. 표준 응용층 프로토콜 - 인터넷 관리기관에 의해 표준화되고 문서화된 여러 응용층 프로토콜이 있으며 오늘날 매일 인터넷과 대화하며 이 프로토콜을 사용하고 있음 - 각 표준 프로토콜은 사용자에게 특정한 서비스를 제공하기 위해 사용자 및 전송층과 상호 작용하는 한 쌍의 컴퓨터 프로그램임 .. 2022. 11. 4.
[데이터 통신과 네트워킹] Chapter 10 응용층 기본 연습문제 풀이 1. 클라이언트-서버 패러다임에서 _______ 프로그램은 (다른) _______ 프로그램에 서비스를 제공한다. 답: 3번(서버, 클라이언트) 2. 클라이언트-서버 패러다임에서 _______. 답: 3번(서버는 항상 실행되어야 하지만 클라이언트는 필요할 때만 실행된다.) 3. 네트워크 프로그래밍은 어떤 언어이든 반드시 _______와 _______를 다룰 필요가 있다. 답: 3번(IP주소, 포트번호) 4. 자바에서 IP 주소는 _______ 클래스의 한 인스턴스인 객체로서 정의된다. 답: 1번(InetAddress) 5. 자바에서 다음 어느 문장이 옳은가? 답: 3번(IPv4와 IPv6 주소들을 만들려면 InetAddress 클래스를 사용할 수 있다.) 6. 자바에서 포트 번호는 _______ 정수로 정.. 2022. 11. 2.