본문 바로가기

프로그래밍

(99)
파이썬 슬랙 챗봇 만들기 Slack Python ChatBot 코드 최신정보 파이썬 웹 크롤링 공부를 하면서 슬랙이라는 플랫폼을 알게되었고 파이썬으로 챗봇을 만들 수 있다는 것을 알게되었다. 이번에 파이썬으로 챗봇을 만들고 채팅오게 하는 방법을 써보려고 한다. 1. Slack 슬랙 회원가입 및 로그인 클라우드 기반의 비즈니스 커뮤니케이션 플랫폼 워크스페이스에서 팀원들과 협업이 가능하고 파일 및 공유가 가능하며 화상 회의도 가능하다 Slack은 생산성 플랫폼입니다 Slack은 팀과 커뮤니케이션할 수 있는 새로운 방법입니다. 이메일보다 빠르고, 더 조직적이며, 훨씬 안전합니다. slack.com 먼저 슬랙 사이트에 들어가서 회원가입 또는 로그인을 해준다. 구글 로그인 혹은 애플 로그인 연동이 가능하다. 이미 로그인된 상태라면 2번으로 넘어가면 된다. 2. Slack 슬랙 워크스페이스..
티스토리에 움짤 이모티콘 올리는 방법 feat. Tenor 티스토리 블로그의 단점이라고 한다면 일단 이모티콘이 별로 없다 물론 글쓰기 상단에 이모티콘이 있긴한데 이게 다인지는 몰라도 저거밖에 안보인다 카카오톡에서 구매한 이모티콘을 사용할 수 있으면 모르겠는데 그건또 아닌거같아서 진짜 별로인거같은데 그냥 글만 쓰는거보단 이모티콘을 넣어주면서 쓰면 좋을거같은데 이런 생각을 하다보니 네이버 블로그는 예전에 html 수정이 가능해서 거기에 이미지를 올리고 했던 기억이 떠올랐다 티스토리 글쓰기는 아직 HTML 수정 방식을 지원한다 글쓰기 상단에 기본모드를 누르면 HTML로 변경할 수 있는데 눌러보면 이렇게 HTML 태그로 이뤄진 화면으로 전환된다 HTML이 뭔지는 몰라도 되는데 정말 간단하게 생각하면 그냥 평소에 이렇게 우리가 글쓰는데 자동으로 저렇게 변환되어서 올라감 ..
운영체제 - 식사하는 철학자 문제와 교착상태에 대해 알아보기 식사하는 철학자 문제 (Dining Philosophers Problem) 운영체제 수업 시간에 식사하는 철학자 문제와 교착상태를 배우게 되었다. 교착상태는 티비에서도 가끔 나오고 그래서 대충 알고 있었는데 이번에 제대로 알게되었다. 식사하는 철학자 문제는 1965년 네덜란드의 대학교에서 병렬처리에서의 동기화 이슈와 해결 방법을 설명하려고 학생들에게 냈던 시험 문제라고 한다. 1. 5명의 철학자가 원탁에서 식사를 하려고 자리에 앉았있다. 2. 각각의 철학자들 앞에는 스파게티가 1접식씩 있고 철학자들 사이에 포크가 하나씩 있다. 즉 포크는 5개 3. 각 철학자는 옆의 철학자에게 말을 할 수 없으며, 두 가지 행동을 한다. 스파게티를 먹거나 생각하거나 4. 철학자는 식사를 하기 위해서 자신의 양옆에 있는 2..
반복하지 않는 수, 중복되지 않는 수, 0부터 9까지 순열 만들기 코드 0부터 9까지 총 10개의 숫자로 만들 수 있는 순열의 개수는 8877690개이다. 아래 코드는 반복하지 않는 수를 txt 파일로 저장하는 파이썬 코드이다. from itertools import permutations, chain, islice import math def make_no_repeats(length): my_iter = permutations(range(10), length) no_zero_start_index = math.perm(9, length - 1) no_lead_zeros = islice(my_iter, no_zero_start_index, None) return no_lead_zeros if __name__ == '__main__': my_list = [] iter_no_re..
비주얼베이직 계산기 만들기 코드 (후위 표기법) 비주얼베이직 수업 시간에 했던 후위 표기법을 이용한 사칙연산 계산기 과제이다 코딩 공부를 할 때 보통 if else 문을 이용한 계산기 만들기를 자주 할것인데 우리가 일반적으로 사용하는 계산기랑은 다른걸 그냥 봐도 알것이다 아래 방법은 우리가 일반적으로 사용하는 계산기를 만들어보는 방법이다 1 + 5 * 3 을 계산하려고 한다면 우리는 해당 수식을 바꿔야한다 이 때 배열과 스택을 사용하는데 배열에는 숫자, 스택에는 연산자를 넣는다고 생각하면 된다 예를 들어보자 1 + 5 * 3 - 2 라는 수식을 계산해야한다 우리는 연산자 우선순위에 의해서 곱하기를 먼저하고 그 다음 + 나 -를 하는 것을 알고 있다 그래서 다음과같은 규칙을 적용한다 수식을 문자열이라고 하자 문자열의 0번째 인덱스부터 읽기 시작하는데 1..
[인공지능 학습 노트] 파이썬 UCS 구현 상태 공간 그래프에 대한 균일 비용 탐색 알고리즘 균일 비용 탐색 UCS (Uniform Cost Search) 정의 무정보 탐색 알고리즘의 한 종류, 최소 경로 비용을 기준으로 아직 방문하지 않은 노드를 탐색하는 기법 무정보 탐색이란 상태공간에 대한 아무런 정보 없이 정해진 순서에 따라 진행 하며 얻은 정보만 활용하여 탐색하는 방법 최소 경로 비용이란 우선 UCS에서 경로 비용이란 시작 노드에서 현재 노드까지 발생되는 모든 비용의 합이다. 예를 들면 시작노드 A 노드에서 C 노드로 갈 때 발생하는 비용은 4이다. 그리고 D 노드를 가는데 C 노드를 통해서 가게 되었다면 A -> C -> D 즉 7이다. 노드를 탐색할 때 방문되지 않은 노드의 경로 비용들에서 가장 최소가 되는 노드를 선택하여 탐색하는 방법이 최소 경로 비용을 선택하는 것 즉, 균일 비용..
[운영체제 학습 노트] 스레드 매핑, 스케줄링 기법 라운드로빈, 스레드 동기화 멀티스레딩 매핑 N:1 장점 : 속도가 빠르다 단점 : 병렬성을 얻을 수 없다 1:1 장점 : 높은 병렬성 단점 : 컨텍스트 스위칭 등의 비용 부담이 크다 N:M 장점 : 커널 레벨 스레드가 적어 커널 부담이 적다 단점 : 매핑 스케줄링 과정이 복잡하다 멀티 스레드 운영체제에서 PCB에 저장하는것 환경 컨텍스트, 모든 스레드가 공유하는 프로세스의 정보 TCB에 저장하는것 실행 컨텍스트, 현재 실행중인 실행단위 정보 CPU 스케줄링 정의 Ready 상태의 스레드를 선택하여 cpu 할당 목적 cpu 유휴 시간을 줄여 cpu 활용률 향상 프로세스가 i/o를 요청하면 다른 프로세스에게 cpu 할당 CPU 스케줄링 선택 기준 = CPU 스케줄링 목적 1. CPU 활용률 향상 2. CPU 처리율 향상 3. 응답시간..
[운영체제 학습 노트] 프로세스와 스레드, 프로세스 관리 프로세스 프로그램과 프로세스의 차이 프로그램: 저장장치에 저장된 실행 가능한 파일 프로세스: 프로그램이 메모리에 적재되어 실행중일 때 운영체제의 프로세스 관리 1. 운영체제는 프로그램을 메모리에 적재하고 프로세스로 다룬다. 2. 프로세스들은 독립적인 메모리 공가늘 가지며 다른 프로세스의 영역에 접근할 수 없다. 3. 운영체제는 프로세스마다 고유한 번호 PID를 할당받는다. 4. 프로세스 정보는 커널에 의해 관리된다. 5. 운영체제 커널은 시스템 전체에 하나의 프로세스 테이블을 두고 모든 프로세스를 관리한다. 6. 프로세스를 실행할 때 프로세스제어블록 PCB를 생성하여 프로세스 정보를 저장한다. 구성 1. 코드영역 2. 데이터영역 3. 힙영역 4. 스택영역 프로세스 주소 공간 = 사용자 공간 + 커널 공간..