유튜브에서 방송한 자료입니다. https://www.youtube.com/watch?v=pcQeIW5v8S4
개발 이야기 유튜브 리스트는 다음과 같습니다: https://www.youtube.com/playlist?list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg
유튜브에서 방송한 자료입니다. https://www.youtube.com/watch?v=pcQeIW5v8S4
개발 이야기 유튜브 리스트는 다음과 같습니다: https://www.youtube.com/playlist?list=PLdntWJk2tJPKvRB0mSqC5tyKUv7HFtcqg
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
머신러닝 및 데이터 과학 분야의 컴퓨팅 수요는 해가 갈수록 급증하고 있습니다. 이와 더불어 분산처리 기술, 데이터 파이프라이닝 및 개발 환경 스택 관리 등의 관련된 다양한 이슈들 또한 엄청나게 늘어나고 있습니다. 머신러닝 모델의 기하급수적인 모델 복잡도 증가 추세와 마찬가지로, 모델 학습을 위한 환경 관리 또한 갈수록 복잡도가 높아지는 추세입니다.
이 세션에서는 이러한 문제를 해결하기 위해 python 언어 기반의 분산처리 스케쥴링/오케스트레이션 미들웨어 플랫폼을 개발한 4년간의 과정에서 겪은 다양한 문제들에 대해 다룹니다. 2015년 컨테이너 기반의 고밀도 분산처리 플랫폼 설계 및 프로토타이핑 과정을 PyCon KR에서 발표한 이후, 실제 구현 및 오픈소스화, 안정화를 거치며 겪은 다양한 기술적/비기술적 문제들에 대한 경험을 공유합니다.
기술적으로는 최근 몇 년 간의 클러스터 플랫폼 관련 기술의 진보와 함께 탄생한 다양한 도구들과, 이러한 도구들을 python 기반으로 엮어내기 위해 사용하고 개발한 다양한 오픈소스들을 다룹니다. Python 기반의 컨테이너 스케쥴링 및 오케스트레이션 과정의 구현과, 다양한 프로그래밍 언어로 만든 SDK를 graphQL을 이용하여 연동하는 과정에서의 몇몇 유의점을 설명합니다. 아울러 python 기반의 SDK를 다양한 언어로 포팅했던 경험을 간단하게 안내합니다.
플랫폼을 개발하는 중 등장한 TensorFlow, PyTorch 등의 다양한 머신러닝 프레임워크들을 도입하며 겪은 문제와 해결 과정에 대해서도 나눕니다. 연구 분야에는 Python 2.7 기반의 프레임워크들이 여전히 많습니다. 이러한 프레임워크 및 라이브러리의 지원을 위하여 Python 2 기반의 프레임워크와 Python 3.7로 구현한 컨테이너 인터페이스를 단일 컨테이너 환경에 중복 빌드 및 상호 간섭 없이 공존시키기 위해 개발한 아이디어를 소개합니다.
마지막으로 Python 기반의 프레임워크를 개발, 배포 및 상용화 하는 과정에서 겪은 다양한 어려움을 소개합니다. 솔루션을 배포 및 보급할 때 겪는 다양한 런타임, 하드웨어 환경 및 개인 정보 보호를 위한 폐쇄망 대상의 디플로이 등에 대응하기 위하여 Python 응용프로그램을 단독 실행용으로 패키징하는 과정에서 겪은 팁들을 설명합니다. 또한 GUI 빌드 및 Python, Go 및 C++을 함께 사용한 드라이버 가상화 레이어 개발 등의 내용도 살짝 다룹니다.
이 슬라이드는 PyCon KR 2019의 발표 슬라이드입니다. ( https://www.pycon.kr/program/talk-detail?id=138 )
게임엔진 전문 교육 기관 스킬트리랩 소개 자료입니다. 유니티, 언리얼4, 게임 샐러드 등 다양한 교육을 진행합니다. 또한 세미나, 부트캠프, 인큐베이팅 등 개발자들에게 도움되는 행사를 진행중입니다. cafe.naver.com/skilltreelab 에서 최신 정보를 얻기 바랍니다.
2. 발표자 소개
기술 배경
전문 검색 엔진, 임베디드 시스템(리눅스 커널 디바이스 드라이버), 빅데이터/인공지능 연구 개발,
고성능 고가용성 데이터베이스
주요활동
IT 전문서 번역 (클린 코드, 피플웨어, 해커: 광기의 랩소디, 게임 엔진 블랙 북 등)
개발강의 (삼성전자, SK C&C, 현대자동차 기술 세미나와 교육)
활동채널
블로그: https://jhrogue.blogspot.com
슬라이드 셰어: https://www.slideshare.net/jrogue/presentations
유튜브: https://www.youtube.com/c/박재호dev
문의 jrogue@gmail.com
박재호
3. 즐겁게 배우는 SQL
목표
• 데이터베이스 학습을 위한 설치/설정 관련 장애물을 제거
• 가장 많이 쓰는 질의(query)를 중심으로 핵심만 공략
• 직접 따라하기!
SQL이 어렵다고 느껴지시는가요? 핵심만 즐겁게 배워봅시다.
4. 즐겁게 배우는 SQL
실습 대상
• 전세계에서 가장 많이 사용하는 SQLite
• 최대한 표준 SQL을 중심으로 진행(vendor locking 방지)
교재(온라인)
• https://www.sqlitetutorial.net/
• 특징
• SQL을 백엔드 데이베이스로 활용하거나 데스크탑, 웹, 모바일 앱을 포함한 애플리케이션에서 구조화된 저장소로 활용
• 온라인 SQL 인터프리터로 실습(설치 X, 설정 X, 인터넷이 연결되면 언제 어디서나!)
5. 즐겁게 배우는 SQL
목차
1. 정말 간단한 질의부터 시작하자
2. 행을 정렬하자
3. 데이터를 필터링하자
4. 테이블을 조인하자
5. 데이터를 그룹으로 묶어보자
6. 집합 연산자를 배우자
7. 서브 질의를 배우자
8. CASE 표현식을 배우자
9. CRUD 연산의 기본기를 배우자
10. 트랜잭션이 뭐지?
11. 테이블을 만들어보자
12. 스키마에 제약을 걸자
13. 뷰 만들어보기
14. 검색 속력을 높이기 위해 색인을 걸자
15. 트리거를 걸자
16. 전문 검색을 해보자
17. SQLite 도구를 사용해보자
6. 즐겁게 배우는 SQL
SQLite 특징
• 관계형 데이터베이스 시스템(RDBMS)을 제공하는 소프트웨어 라이브러리
• 경량이므로 설정/관리/자원 사용에 있어 유리하다
• 서버리스: 오라클/MySQL/PostgreSQL과는 달리 별도 서버가 없다
vs
• 독자적으로 동작 가능하다: 스마트폰, 게임 콘솔, 심지어 웹 브라우저에도 탑재
• 복잡한 설정이 필요하지 않다
• 트랜잭션을 지원한다: ACID(Atomic, Consistent, Isolated, Durable) → 주의) 쓰기는 한 번에 하나만 가능하다!
• SQLIte는 멀티스레드 모델을 지원한다: 단일/멀티/직렬화