전체보기 219

다익스트라 알고리즘 (1) - 동작 원리

이번 시간에는 다익스트라 알고리즘의 동작 원리를 살펴보겠습니다. 다익스트라 알고리즘(Dijkstra Algorithm) - "둘러보면서 작은 값으로 바꾸자" - 그래프의 출발점에서부터 각각 최단 경로를 찾는 알고리즘 입니다. - 가장 좋아보이는 것부터 찾아가므로 그리디 알고리즘에 해당합니다. 위의 그래프에 데이크스트라 알고리즘을 적용할 것입니다. 초반에는 노드 값(S에서 *까지의 거리)을 모두 ∞로 둡니다. 우선 시작점인 S에 포커스를 둡니다 포커스에서부터 주위를 둘러보면서 값을 비교할 것입니다. 만약 '포커스된 노드 값 + 간선 값' 이 '발견된 노드 값' 보다 더 작으면 더 작은 값(더한 값)으로 대체합니다. 위의 사진의 경우 아래와 같습니다. 포커스된 노드 (S) : 0 간선 (S-e) : 4 발견..

크루스칼 알고리즘 (1) - 동작 원리

이번 시간에는 크루스칼 알고리즘의 동작 원리를 살펴보겠습니다. 크루스칼 알고리즘(Kruskal Algorithm) - "가장 작은 값부터 잇자" - 간선 비용이 가장 적은 것부터 이어나가되 사이클이 형성되지 않게 하는 최단 경로 알고리즘 입니다. 가장 좋은 것부터 찾아나가므로 그리디 알고리즘에 해당합니다. 위의 그래프를 비용이 가장 적은 것부터 차례대로 이어나갈 것입니다. 비용이 가장 적은 1을 잇습니다 그 다음으로 적은 2를 잇습니다 그 다음으로 적은 3을 잇습니다 그 다음으로 적은 4를 잇습니다. 같은 비용인 간선이 2개 있을 때는 왼쪽 상단에 있는 것부터 잇도록 하겠습니다. (오른쪽에서부터 이어도 상관 없습니다) 두 번째 4를 잇습니다 그 다음으로 적은 5를 이었으나 사이클이 형성되므로 제외합니다 ..

あげる, くれる, やる, もらう의 차이점

우선 이 내용은 제가 일본어 공부하면서 많이 햇깔려했던 내용이고 실제 우리나라 사람들도 많이 햇깔려하더라구요 ㅠㅠ 그래서 햇깔리는 내용을 정리하고자 해서 ㅋㅋ 이번 시간에는 あげる, くれる, やる, もらう의 차이점을 살펴보겠습니다. 우선 이 표현들은 일본에서 상대방과 주고 받을 때 사용되는데요. 우리말로 해석하면 아래와 같습니다. 1) 받다: もらう [존경어: いただく] 2) 주다 - あげる [존경어: さしあげる] - くれる [존경어: くださる] - やる : 요즘 일본인들은 사용 안하지만 어학 시험(JLPT, JPT, 수능일본어 등)에는 나옵니다 ㅠㅠ [차이점] - あげる : 내가 남한테 줄 때 사용합니다. 남이 또 남한테 줄 때도 사용합니다. - くれる : 남이 나 또는 가족한테 줄 때 사용합니다. -..

메모리의 구조와 저장되는 내용

이번 시간에는 메모리의 구조와 각 영역에 저장되는 내용을 살펴보겠습니다. 요약한 내용은 위의 사진과 같습니다. 메모리는 아래와 같이 4가지 영역으로 나누어져 있습니다. Code: 상수, 명령문(코드)을 저장 Data: 전역 변수, 정적 변수를 저장 Heap: 동적 배열(동적 메모리)을 저장 Stack: 지역 변수, 매개 변수, 정적 배열을 저장 그리고 메모리는 아래와 같이 2가지로 나누어집니다. 정적 메모리(static memory): 프로그램이 실행 되자마자 만들어집니다. 동적 메모리(dynamic memory): 프로그램 실행 후 명령문이 실행될 때 만들어집니다. C++ 소스 코드로 살펴보겠습니다. #include using namespace std; int a = 1; // 전역 변수, 실행 되자마..

내 IP 주소 확인 방법

이번 시간에는 본인의 IP 주소를 조회하는 법을 살펴보겠습니다. 먼저 IP 주소는 사설 IP 주소와 공인 IP 주소로 나누어집니다. (1) 윈도우 명령 프롬프트(cmd)를 열고 ipconfig 라고 입력합니다. 보통은 Wi-Fi 부분에서 'IPv4 주소'에 본인의 로컬 IP 주소가 나와있습니다. 만약 유선랜이면 유선랜 부분을 봐야 합니다. (2) 맥OS, 리눅스, 유닉스, 라즈비안 터미널(Terminal)를 열고 ifconfig 라고 입력합니다. 보통은 'en0' 부분에서 'inet'에 본인의 로컬 IP 주소가 나와있습니다. en0 부분에 inet이 없다면 en1 이나 en2 등 다른 부분을 보셔야 할 것 같습니다.

운전 면허 취득 절차

이번 시간에는 운전 면허를 취득하기 위한 절차가 어떻게 되는지 살펴보겠습니다. 간략하게 말씀드리면 취득 절차는 '교통 안전 교육 → 신체 검사 → 학과 시험 → 기능 시험 → 도로 주행 시험 → 면허 발급 신청' 순서대로 진행됩니다. 여기서 '교통 안전 교육 → 신체 검사 → 학과 시험' 은 혼자서 준비하는 것을 추천하고 '기능 시험 → 도로 주행 시험' 은 학원에서 준비하는 것을 추천합니다. (실제로 제가 이렇게 했습니다 ㅎㅎ) (1) 교통 안전 교육 - 1시간짜리 교통 안전 영상을 봅니다. 멍 때리고 봐도 되지만 교육 중 휴대폰을 하거나 자면 밴 한다고 하네요 ㅋㅋㅋ - 보통은 한 사람 당 딱 1번만 봅니다. 자격증 필기 시험처럼 유효기간이 없기 때문입니다. - 온라인으로 시간과 장소를 예약해서 해당..

강의/관공서 2021.07.21

프로세스와 스레드의 차이

이번 시간에는 프로세스와 스레드를 차이를 살펴보겠습니다. 먼저 요약하면 아래의 사진과 같습니다. 먼저 운영 체제(Operating System)란 시스템 하드웨어를 관리하는 것은 물론 응용 소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어를 의미합니다. 운영 체제 내에서 여러 개의 프로세스가 실행될 수 있습니다. 따라서, 프로세스 (Process) - 컴퓨터에서 실행되고 있는 프로그램을 의미합니다. - 프로세스마다 메모리 영역을 보유하고 있고 메모리 영역은 Code, Data, Heap, Stack으로 구성되어 있습니다. - 하나의 프로세스는 여러 개의 스레드를 보유할 수 있습니다. 스레드 (Thread) - 프로세스 내에서 실행되는 흐름의 단위를 의미합..

GitHub에 새로운 프로젝트 업로드 방법

이번 시간에는 GitHub에 내가 한 프로젝트를 업로드 하는 방법을 살펴보겠습니다. 우선 git을 설치해야 합니다. 터미널에 아래의 명령문들을 그대로 복사+붙여넣기 해서 username과 email을 설정합니다. 이 때 회원가입 한 계정의 username과 email을 넣어주어야 합니다. git config --global user.name "(your username)" git config --global user.email "(your email)" https://github.com/ 잠시 터미널을 닫고 위의 링크(GitHub 사이트)로 들어갑니다. Sign-up 버튼을 눌러서 회원가입 한 다음 Sign-in 버튼을 누르고 로그인합니다. 이 과정은 생략하겠습니다. 로그인을 하면 왼쪽 상단에 New 버..

IT강의/(Others) 2021.07.21

객체지향 프로그래밍 언어의 특징

이번 시간에는 객체지향 프로그래밍 언어의 특징을 살펴보겠습니다. 객체지향 프로그래밍 언어는 아래와 같이 4가지 특징이 있습니다. (1) Data Abstraction (데이터 추상화) - "목록 형태로 정리" - 복잡한 프로그램에서 핵심적인 기능을 간추려 내는 것을 의미합니다. - 가장 대표적인 예시로 구조체와 클래스가 있습니다. 구조체와 클래스에서는 변수와 함수를 정리된 형태로 선언할 수 있습니다. (2) Information Hiding (정보 은닉) - "세세한 건 보여줄 필요 없지" - 구현한 내용 일부를 외부에서 보이지 않게 감추는 것을 의미합니다. - 가장 대표적인 예시로 클래스 내에서의 private 선언이 있습니다. private으로 선언된 변수와 함수는 클래스 내부에서만 접근할 수 있고 ..

웹 해킹 기초

이번 시간에는 웹 해킹의 기초를 살펴보겠습니다. 먼저 예시로 사용할 프로그램을 소개해드리겠습니다. 이 프로그램은 send 버튼을 누르면 입력한 내용이 그대로 보여지는 웹사이트 입니다. (JSP-Servlet 기반) 밑으로 내려가면 다운로드 할 수 있으니 직접 실행시키고 싶다면 다운받아서 실행시키면 됩니다. 위의 사진에서 표시한 것과 같이 같이 내용을 입력하고 send 버튼을 클릭하겠습니다. 예전에 입력한 내용이 그대로 나타나는 것을 볼 수 있습니다. 웹페이지의 소스 코드를 조회해보겠습니다. 예전에 입력한 내용이 body 태그 안에 담긴 것을 볼 수 있습니다. 그렇다면 이 웹사이트에 해킹을 시도해보겠습니다. 위의 내용은 경고창(alert)을 띄우는 JavaScript 명령문 입니다. 이렇게 입력하고 sen..

728x90
반응형
LIST