본문 바로가기

아이티

(10)
리액트 네이티브 expo 연결 에러 Something went wrong. Network response timed out. 해결 (필자의 PC 운영체제는 Window 10이며, 스마트폰은 안드로이드 11 입니다.) 개발 서버를 다음 명령어를 통해 실행 하면 QR코드가 뜬다. npx expo start 스마트폰의 expo 앱에서 QR scan을 눌러 스캔을 하면, 원래 연결이 되어야 정상이다. 하지만, 다음과 같은 에러가 나온다. 아래 View error log 를 눌러 에러 로그를 살펴보자. Uncaught Error: java.net.SocketTimeoutException: failed to connect to... Fatal Error가 뜬다. 해당 에러가 뜨는 원인을 검색해 보니, 윈도우 운영체제의 firewalls 즉, 방화벽 문제 같았다. 해결 방법은 다음과 같다. 서버를 시작할 때, 다음 명령어로 시작하는 것. npx..
몰빵 [문제] 어떤 벤처 기업에서 인공지능을 이용한 주식투자 프로그램 을 개발하였다. 우리는 이 투자 프로그램의 성능을 평가하려고 한다. 성능 평가는 몰빵으로 얻은 이득과 이론상으로 가능한 최고 이득과 비교하는 작업이다. 따라서 주식 시세를 미리 안다고 가정했을 때 얻을 수 있는 이득의 최대치를 계산해야 한다. 투자의 기본적인 전략은 낮은 가격일 때 사서 이후 상황을 보다 가장 높아졌을 때 파는 것이다. 표-1에 제시된 12 초 동안의 주식 시세로 설명해보자. 만일 $13인 t=1에 사서 t=6일 때 $15에 팔면 $2의 이득을 얻을 수 있다. 그런데 t=4에서 사서 t=9일 때 팔면 $6의 이득을 얻는다. 단 가장 쌀 때 구입하는 것은 좋은 전략이 아니다. 전체에서 가장 낮은 t=10일 때 $7로 구입했다면..
fork()란 무엇인가? fork() 함수는 유닉스 운영체제의 프로세스 생성 함수이다. 한 프로그램 안에서 fork() 함수를 사용하면 그 프로그램과 똑같은 프로세스가 만들어진다. 이 fork() 함수를 호출한 프로세스를 parent 프로세스라고 하고, 이 fork() 함수에 의해 만들어진 프로세스를 child process라고 한다. 이 parent process와 child process는 동일한 내용의 코드이다. 심지어 PC(Program Counter) 또한 똑같이 복사되기 때문에 parent process와 child process는 fork() 함수를 호출하는 순간 프로그램 내에서 같은 명령어 부터 수행하게 된다. 이때, 프로그램 안에서 if문을 사용하여 부모 프로세스인지 자식 프로세스인지 구분하여 원하는 방향으로 프..
백그라운드 프로세스 & 포그라운드 프로세스 유닉스에서 키보드로부터 입력받을 수 있는 프로세스는 한 순간에 하나만 가능하다. 그 입력 가능한 상태에 있는 프로세스를 포그라운드 프로세스라 하고, 나머지 프로세스를 백그라운드 프로세스라고 한다. 예를 들어 윈도우 환경에서 웹브라우저를 여러개 띄워 놓고(여러 프로세스) 검색을 하려고 할때 한 번에 하나의 웹브라우저에만 키보드로 입력받을 수 있는 것과 같다. 유닉스환경에서 예를 들자면 키보드 입력 대기상태에는 bash shell 프로세스가 foreground process이다. 이 때 sleep 명령어를 사용하면 bash shell 프로세스는 background process로 변환되는 것이다. sleep 함수가 종료되면 다시 foreground process가 되어 키보드 입력을 받을 수 있는 상태가 된다.
HAL (Hardware Abstraction Layer) HAL (Hardware Abstraction Layer) (하드웨어 추상화 계층) 은 무엇인가? HAL은 유닉스 운영체제에서 커널과 하드웨어 사이의 인터페이스를 제공하는 소프트웨어 집합이다. 만약 우리가 각각 다른 구조를 가진 하드웨어들의 운영체제를 만들때 일일이 각 하드웨어 마다 따로 운영체제를 만들어야 하려면 많은 시간과 비용이 들 것이다. 이를 피하기 위해서 고안된 소프트웨어 집합이 HAL이다. HAL을 이용하면 우리가 여러 하드웨어(스마트폰, PC 등..)의 리눅스 운영체제를 만든다고 할때 운영체제를 처음부터 끝까지 전부 수정할 필요 없이 하드웨어에 의존적인 코드 부분만 수정하면 된다. 자주 쓰이는 하드웨어 의존 코드들을 인터페이스(Function)으로 묶어 함수 이름은 그대로 두고, 관련 하드..
정거장 통로 [문제] 긴 막대(segment) 모양의 우주 정거장 2개 S1 = (A, B), S2 = (C, D)가 있다. 이 두 우주 정거장을 연결하는 가장 짧은 길이의 연결 통로 T를 건설하려고 한다. 우주정거장 문제에서는 점과 선분과의 거리를 계산했다면, 이번 문제는 두 개의 선분 간의 최단 거리를 계산해야 한다. 즉 T는 S1과 S2를 연결하는 최소 정수 길이의 선분이 되어야 한다. 경우에 따라서는 정거장의 끝 점이 통로의 시작과 끝 점이 될 수도 있다. [입출력] 입력 파일 stube.inp 의 4개 줄에 두 우주 정거장의 끝 점 A, B, C, D의 각 좌표 (x, y, z)가 3개 정수가 주어진다. 각 좌표의 범위는 -10,000
알고리즘 이란? 과학을 공부하는 목적은 무엇일까? 특히 Mathematical Science의 궁극적인 목적은 무엇일까? 우리가 세계에서 겪는 현상들을 일일이 다 실험을 해서 알아보기는 힘들것이다. 그러므로 우리는 예측을 해야 한다. 예를 들어, 시속 몇km로 달려서 교통사고가 났을때 사람이 죽는가? 같은 문제는 일일이 실험을 할 수 없다. 수학과 통계적인 방법을 사용하여 예측하여야 하는 것이다. 마찬가지로, Computer Science에도 예측이 필요하다. 어떤 데이터를 가져와 프로그램을 실행했을때 결과가 어떻게 나올 것인가? 메모리는 얼마나 필요한가? 시간은 얼마나 걸리는가? 를 미리 알기 위한 예측이 필요하다. 이때 도움이 되는 과목이 알고리즘이다. 알고리즘은 여러가지가 있지만. 이 블로그에서 주로 포스팅 될 알..
우주 정거장 [문제] 선분(line segment) 모양의 우주 정거장 S=(A, B)가 있다. 우주 정거장의 시작점과 끝점은 3차원 좌표 A와 B이다. 우리는 점 P(x, y, z)에 존재하는 인공위성에서 우주 정거장 S에 이르는 가장 짧은 길이의 연결 통로 T를 건설하려고 한다. 이를 위해 점 P(x, y, z)와 선분 S를 연결하는 통로 T의 최소 정수 길이 L이 필요하다. 즉 T의 실제 길이가 34.56018이라면 정답 L은 이를 올림 한 35가 되어야 한다. 점 P에서 S에 가장 가까운 점은 선분 S 위에 존재한다. 선분 S 상에 존재하는 모든 점은 아래 직선의 방정식으로부터 parametric 한 방식으로 만들어 낼 수 있다. 이는 t=0일 때 A, t=1일 때 B, t=1/2일 때 A와 B의 중점이 된다..