본문 바로가기

전체 글

[Data Structure] Graph 와 Tree 의 차이점 Graph(그래프) 1. 정의 - 노드(정점)와 노드(정점)간을 연결하는 간선으로 구성된 자료 구조 - 연결되어 있는 객체간의 관계 표현 가능 - 계층이 없는 네트워크 모델 2. 특징 - 노드 간에 2개 이상의 경로도 가능 - 순환(사이클)/비순환 구조 가능 - 방향성 있는 그래프와 방향성이 없는 그래프 모두 가능 Tree(트리) 1. 정의 - 그레프와 같이 노드와 노드 간을 연결하는 간선으로 구성된 자료 구조 - 그래프의 한 종류 - 루트 노드가 존재하고 -> 부모-자식 관계로 이루어진 계층적인 모델 2. 특징 - 방향성 O - 사이클이 존재하지 않는 비순환 구조 - 계층 모델로, 깊이와 높이라는 개념 존재 그래프(Graph) 트리(Tree) 정의 노드와 그 노드를 연결하는 간선으로 구성된 자료 구조 .. 더보기
[Android] 안드로이드 핸들러(Handler) 앞 부분에서, 핸들러를 통해 안드로이드 스레드 통신 수행시 필요한 메시지 전달 시스템 구성 요소에 대해 정리했다면! 이 부분은, 안드로이드에서 핸들러를 사용해 스레드 통신을 구현하는 방식에 대해 집중적으로! 1. 메시지 수신 스레드 - Handler 객체 생성 및 handlerMessage() 메서드 오바라이드 (1) 가장 먼저, 메인 스레드에서 수신 메시지를 처리하기 위한 핸들러 객체 생성 Handler handler = new Handler() { } ; 1) 핸들러는, 생성과 동시에 코드가 실행된 스레드에 연결(bind)됨 - Handler 클래스 생성자에서, 현재 스레드의 루퍼(Looper) 및 메시지 큐(MessageQueue)에 대한 참조를 가지게 됨 -> 이후 단계에서, 메시지 전달 시 이 .. 더보기
[Android] Thread / Handler / Message 매번 미루던 안드로이드 정리,, 한다 이젠,, + Service 정리도 해야한다. - 안드로이드에서는, Main Thread 를 통해서만 화면 UI 를 변경할 수 있다. -> 따라서, 핸들러를 통해서 Main Thread 에 접근하여 UI 를 수정할 수 있다. - 안드로이드에서 반복 작업을 하기 위해서는 핸들러 객체를 써야 하는데, '반복 작업'을 하는 타이머와 같은 것들을 구현하면서 가볍게 넘겨버린 개념이 확실하지 않아서,, - 스레드와 핸들러의 개념은 꼭 정리해야 하는 것,, 스레드(Thread) 란? 1. 스레드의 정의 1) 동시에 수행 가능한 작업 단위 - 하나의 프로세스 안에서 동시에 수행되어야 하는 작업을 위해 사용 2) 프로세스 내에서 '순차적으로 실행되는 실행 흐름' 의 최소 단위 - 프로.. 더보기
Natural Languae Model 및 한국어 자연어 모델 정리 자연어 처리 주요 모델 1. T5(Text-to-Text Transfer Transformer) - Tensorflow - “Colossal Clean Crawled Corpus” (C4) 데이터셋으로 사전 훈련된 모델 - 기계 번역, 질의 응답, 텍스트 요약 작업 수행 가능 - 소개 내용 : https://ai.googleblog.com/2020/02/exploring-transfer-learning-with-t5.html Exploring Transfer Learning with T5: the Text-To-Text Transfer Transformer Posted by Adam Roberts, Staff Software Engineer and Colin Raffel, Senior Research S.. 더보기
[Algorithm] 백트래킹(Backtracking) BOJ 1987번 알파벳 문제를 단순히 DFS로 풀다가, dx, dy로 나아가는 방향 선정에 따라 답이 달라지는 것을 느껴 관련 알고리즘인 백트래킹에 대해 정리하려고 한다! 백트래킹(Backtracking) 알고리즘의 정의 - ' 가능한 모든 방법을 탐색한다 ' 라는 아이디어를 가진 알고리즘 - 백트래킹(Backtracking)이란, 현재 상태에서 가능한 모든 후보군을 따라 들어가며, 해결책에 대한 후보를 구축해 나아가다, 가능성이 없다고 판단되는 즉시 후보를 포기하면서 정답을 찾아가는 알고리즘이다. - 즉, 해를 찾는 도중 해가 아니어서 막히게 되는 경우 -> '다시 되돌아가서' 해를 찾아가는 기법 - 최적화 문제와 결정 문제를 푸는 방법 DFS와 백트래킹 1. 깊이 우선 탐색(DFS) - DFS는 가.. 더보기
[Network] VoIP OpenSource 종류 별 기능 VoIP 오픈소스가 제공하는 기능 1. Messaging 2. Automated Attendant : 자동 전화 교환(가상 접수원) - 교환원의 개입 없이 수신 전화를, 발신자가 지정한 다양한 내선 번호로 전달하는 전화 통신 시스템 - 유선 전화나 휴대폰, VoIP 장치나 기타 AA로 통화를 라우팅 할 수 있는 기능으로, - 전화를 받는 사람에게 다양한 키패드 키를 눌러 응답하는 메뉴를 제공하는 것 예를 들어, 기계가 " ABC Enterprises 서비스 입니다. 판매를 원하시면 1번을, 서비스를 원하시면 2번을, 운영 시간 을 원하시면 3번을 누르세요. 기타 문의 사항이 있는 경우 4번을 누르세요. " 와 같이 응답하고 사용자의 키 선택에 따라 해당 서비스로 연결되는 것을 말한다. 3. Video S.. 더보기
[Web/DL] Django 기반의 자연어 처리 서비스 구현 System Architecture - Django 와 Pytorch 를 이용한 자연어 처리 서비스를 구현한다고 할 때, 생각하는 시스템의 아키텍처는 아래와 같다. 현재 루트 디렉토리 파일 구조 - 우선, Django 프로젝트 생성 과정에 대한 설명 전 프로젝트 구성 후의 루트 디렉토리 파일구조는 아래와 같다. pyDjango 디렉토리 내에 pyDjango (루트 디렉토리) ├── sampleDjango (프로젝트 설정과 웹 실행에 필요한 파일이 있는 디렉토리) └── djangoApp (생성한 앱) └── djangoVenv (가상환경 폴더) Django 설치 1. Django 프로젝트 폴더 생성 - 클론 받은 프로젝트 폴더 내에서 테스트용 flask 웹 어플리케이션을 생성할 디렉토리(pyDjango).. 더보기
[Web Server] Django와 Web Server Django 를 통해 간단한 pytorch 자연어 처리 모델 배포를 위해 정리한 내용 우선, Django 는 Web Framework 라는 생각으로, 그럼 Django 를 사용할 때 웹 서버는 무엇인지에 대한 의문으로 검색을 시작했다. 우선, 결론적으로 말하자면 Django 는 웹 서버가 아니다!! Django 란 ? 1. Django 개념 - 파이썬으로 작성된 오픈 소스 웹 프레임워크이다. 즉, Web Server 가 아닌 ' Web Application Framework ' 이다. - Django는 모델-뷰-컨트롤러의 MVC 패턴을 따르고 있다. 2. Django 서버 실행 - Django 프로젝트 생성 후 서버를 실행할 때, 아래 명령어를 사용하는데 ./manage.py runserver (= py.. 더보기