분류 전체보기 썸네일형 리스트형 [Docker/도커] MacOS에서 Docker 설치하기 아래의 사이트에 접속한다.https://www.docker.com/products/docker-desktop/ Docker Desktop: The #1 Containerization Tool for Developers | DockerDocker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.www.docker.com 각자의 환경에 맞는 버전의 Docker를 설치하자.별도로 설정할 것도 없이 바로 설치가 되었다..dmg 파일 옮기기 작업은 해야함Docker가 잘 깔렸는지 궁금하다면 터미널 창에 docker .. 더보기 [AI] SLAM(Simultaneous Localization and Mapping)이란? 이번 글에서는 자율주행, 로봇, 증강현실(AR) 등의 핵심 기술 중 하나인 SLAM(Simultaneous Localization and Mapping)은 자신의 위치(Localization)를 파악하면서 주변 환경의 지도(Map)를 동시에 생성하는 기술에 대해 알아보고자 한다. 1. SLAM이란?SLAM은 이동하는 기기(로봇, 차량, 드론 등)가 자신의 위치를 파악하면서 주변 환경을 실시간으로 지도화하는 기술이다. 즉, SLAM이 가능하면 GPS가 없는 실내에서도 로봇이 스스로 이동할 수 있고, 자율주행차가 도로를 인식하며 주행할 수 있다.SLAM을 수행하려면 다음 두 가지 작업을 동시에 진행해야 한다.위치 추정(Localization) → "나는 지금 어디에 있는가?"지도 작성(Mapping) → .. 더보기 [운영체제] 가상기억장치란? 1. 가상기억장치보조기억장치(하드디스크)의 일부를 주기억장치처럼 사용하는 기법이다.주기억장치 용량이 작더라도 가상기억장치를 통해 큰 용량처럼 사용 가능하다.2. 블록 분할 방법(1) 페이징 (Paging) 기법가상기억장치를 같은 크기의 블록(페이지)으로 나누어 운용하는 기법이다.외부 단편화는 발생하지 않으나, 내부 단편화는 발생한다.페이지와 메모리 영역 구분페이지 크기별 비교페이지 크기기억장소 효율단편화입출력 시간맵 테이블클수록감소증가감소감소작을수록증가감소증가증가 (2) 세그멘테이션 (Segmentation) 기법가상 메모리를 크기가 다른 논리적 단위(세그먼트)로 분할하여 메모리를 할당하는 기법이다.세그먼트 테이블을 참조하여 주소 변환을 수행한다.내부 단편화는 발생하지 않으나, 외부 단편화는 발생한다.세.. 더보기 [운영체제] 프로세스(Process)란? 1. 프로세스 (Process)컴퓨터에서 연속적으로 실행되고 있는 프로그램이다.프로세스 제어블록(PCB)을 가진 실행 가능한 프로그램이다.운영체제가 관리하는 실행 단위이며, 프로세서가 할당되는 곳이다.2. 스레드 (Thread)프로세스 내에서 실행되는 흐름의 단위이다.하나의 프로세스는 최소 하나 이상의 스레드를 가지며, 스레드는 경량 프로세스라고 불린다.각 스레드는 독립된 스택 영역을 가지지만, 부모 프로세스의 코드, 데이터, 힙 영역을 공유한다.3. 메모리상의 프로세스 영역프로세스 영역설명코드 영역- 실행할 프로그램의 코드가 저장되는 공간- 함수, 제어문, 상수 등이 포함데이터 영역- 전역 변수와 정적 변수가 할당되는 공간- 프로그램 종료 시 메모리에서 소멸스택 영역- 지역 변수와 함수 매개 변수가 저.. 더보기 [백준] 1436번 : 영화감독 숌 - C/C++ 문제 풀이 순서는 간단하다.1. 몇 번째 영화 시리즈인지 n 값 입력 받기2. 초기값 설정3. 종말의 수 구하기 1번과 2번 과정을 한 번에 수행하면 아래와 같다.int n;cin >> n;int num = 666;int cnt = 1; cnt 값의 초기값을 1로 설정한 이유는 다음과 같다.첫 번째 '종말의 숫자'는 666이기 때문에 하나를 이미 찾았다고 가정한다. n번째 종말의 수를 찾을 때까지 while 문을 돌려주자.while (cnt != n) { num++; ... }} n의 값을 증가시켜주는 이유는 숫자를 하나씩 키우면서 666이 포함된 수를 찾아야하기 때문이다.666이라는 수가 포함되어있는지의 여부를 판단하기 위해서는int → string 의 형변환 작업이 필요하다.stri.. 더보기 [Android/Kotlin] Activity와 AppCompatActivity 이번 글에서는 Android에서 쓰이는 Activity에 대해서 알아보고자 한다. Activity 클래스는 Android의 중요한 구성요소 활동이 시작되고 결합되는 방식은 플랫폼 애플리케이션 모델의 일부이다.기존의 프로그래밍 패러다임과 달리 main() 메서드로 실행되는 앱인 경우,Android 시스템은 다음과 같은 방법으로 Activity 인스턴스의 코드를 시작한다.호출의 특정 단계에 해당하는 특정 콜백 메서드를 수명 주기를 지원한다. 새로운 Activity는 어떻게 만들 수 있을까.총 3단계로 나눌 수 있다. 1. Activity 클래스 상속android.app.Activity 또는 androidx.appcompat.app.AppCompatActivity 를 상속받아서 새로운 Activity를 생성한.. 더보기 [백준] 5347번 : LCM - C/C++ 두 수의 최소공배수를 출력하는 간단한 문제이다.1. 테스트 케이스 n 입력 받기2. a, b 입력 받기3. 최소공배수 구하기 vector를 이용하여 a, b를 입력 받을 것이다.그럼 헤더를 추가해주어야 한다.#include 그리고 테스트 케이스와 vector를 통한 a, b 입력 받기int n;cin >> n;vector> vec;int a,b; for(int i = 0; i > a >> b; vec.push_back(make_pair(a,b));} 완벽하게(?) vector에 값이 들어간다. 그리고 이 문제를 해결하는데에 핵심 역할이 되는 함수를 선언해준다.int lcm(ll a, ll b){ return (a * b) / gcd(a, b);} 위와 같이 최소공배수를 구할 수 있다.gcd라.. 더보기 [AI] 스마트시티에서 데이터를 얻는 방법과 가상 환경 활용법 이번 글에서는 네 가지의 질문에 대한 답을 기재하는 방식으로 글을 작성하려 한다. 1. 이미 취득 된 데이터는 어디서 구할 수 있나?이미 취득된 데이터는 KITTI Dataset에서 얻을 수 있다.KITTI Dataset은 지난 글에서 잠깐 언급했었지만 다시 이야기를 이어나가보자. KITTI Dataset은 고해상도 RGB, 회색조 스테레오 카메라 및 3D 레이저 스캐너를 포함한 다양한 센서 모달리티로 기록된 많은 시간의 교통 시나리오로 구성되어 있다.2012년, KITTI Benchmark Suite를 온라인을 통해 딥러닝 학습을 위한 데이터셋을 공개했다.KITTI는 차량에 여러 환경 센서를 탑재하여 취득한 센서의 Raw 데이터를 공개했다. KITTI Dataset은 크게 4개의 구성 요소로 구분할 수.. 더보기 이전 1 2 3 4 5 6 ··· 8 다음