본문 바로가기

전체보기

(448)
[56] python 프로그램 수행 시간 구하기(time 모듈) 프로그램 수행 시간 측정이 필요한 이유 어떤 문제 해결하는 방법은 여러 가지가 있습니다. 방법 마다 사용한 알고리즘에 따라 효율적인 방법이 있고, 반대로 비효율적인 방법이 있습니다. 프로그램을 비효율적인 알고리즘으로 만든다면 그만큼 수행 시간이 오래 걸리고, 실제 서비스 되는 경우에는 비용 문제로 이어질 수도 있습니다. 이처럼 효율적인 알고리즘으로 프로그램을 만드는 것은 매우 중요하다고 할 수 있습니다. 어떤 프로그램이 효율적인지 비효율적인지 판단하는 가장 쉬운 방법은 바로 수행 시간을 측정하는 것입니다. python에서는 time이라는 모듈을 제공하고 있습니다. time 모듈을 사용하여 프로그램의 수행 시간을 측정하는 방법을 알아봅시다. time 모듈 사용하기 >>> import time >>> tim..
[55] 파이썬 iterable, iterator 이해하기 >>> a = map(int, ["1", "2", "3"]) >>> print(list(a)) >>> print(list(a)) 위와 같은 코드를 실행시키면 어떤 값이 출력될까요? 정답은 >>> a = map(int, ["1", "2", "3"]) >>> print(list(a)) [1, 2, 3] >>> print(list(a)) [] 입니다. 어째서 1, 2, 3이 담긴 배열이 두 번 출력되지 않는지 iterable과 iterator를 통해 알아봅시다. 1. Iterable Iterable은 반복할 수 있는 객체입니다. Iterable은 for 문에서 사용할 수 있습니다. list, str, tuple, dict, set 등은 모두 Iterable 객체입니다. 이러한 Iterable 객체는 __ite..
[54] "구루급 개발자"라는 용어를 아시나요? 개발 관련된 글을 읽다보면 "구루급 개발자"라는 용어가 종종 나오는데, 처음에는 이게 무슨 뜻인가 했습니다. '개발자들의 등급이 나뉘어져 있나?'하고 생각했는데 그게 아니었습니다. "구루"는 산스크리어로 정신적 스승을 의미하는 말이라고 합니다. https://ko.wikipedia.org/wiki/구루 구루 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 따라서 구루급 개발자라고 하면 "다른 개발자들에게 영감과 감명을 주는 개발자" 정도로 해석할 수 있을 것 같습니다. 검색하다 흥미로웠던 것이 있는데, 현직 개발자이신 신현묵님(https://kr.linkedin.com/in/zetlos)께서 구루급 개발자에 대한 의견을 적은 글이었습니다. https:/..
[53] 소프트웨어 개발 원칙, 세 가지(KISS, DRY, YAGNI) 개발과 관련된 책들을 읽다보면 심심찮게 등장하는 단어들이 있습니다. DRY, KISS 등과 같은 단어들입니다. '처음에는 왜 이상한 단어들이 갑자기 튀어나오지?'라는 생각이 들었는데, 나중에 알고 보니 이 단어들이 소프트웨어 개발 원칙과 관련된 단어들이었습니다. 이번 글에서는 이 소프트웨어 개발 원칙에 대해 이야기해보고자 합니다. 1. KISS(Keep It Stupid, Simple!) KISS는 "Keep It Simple, Stupid!"의 약자로, 우리말로 "간단하고 단순하게 해라!" 정도로 해석할 수 있습니다. KISS는 소프트웨어 개발 원칙으로도 사용하지만, 우리 삶의 많은 부분에 적용됩니다. 인류 역사를 바꾼 천재로 불리는 레오나르도 다빈치는 "단순함은 궁극의 정교함이다.(Simplicity..
[52] Git을 알아보자(2) - Git에 대한 궁금증? Q. commit은 작은 변경에 사용하고, push는 큰 변경에 사용하나? A. 버전 관리를 위해 git을 사용하다보면 자연스럽게 원격저장소를 제공하는 서비스인 github를 함께 사용하게 된다. 이 때 작업 과정을 단계별로 나누어 생각해보면 다음과 같다. 1. 내 컴퓨터(로컬)에서 작업을 하다보면 수정사항이 발생한다. 2. 일정 단위의 작업이 끝나면 해당 작업 내용을 로컬저장소(local repository)에 commit한다. 3. 내가 원하는 모든 작업이 끝날 때 까지 1~2단계를 반복한다. 4. 내가 해야할 모든 작업이 끝났을 때 원격저장소(remote repository)인 github에 push한다. 이와 같은 과정을 거치다보면 작은 변경을 마쳤을 때 commit, 큰 변경을 마쳤을 때 pus..
[51] Git을 알아보자(1) - 기본 개념 Git이란? 어렸을 때 파랜드 택틱스, 삼국지 조조전 같은 게임을 하다보면 게임이 뜻대로 풀리지 않아 게임오버 되는 경우가 있었다. 이 경우 처음부터 다시 해야하는 불상사가 생기게 되는데... 다행이도 맨 처음이 아닌 괜찮았던 중간 상황으로 돌아갈 수 있는 방법이 있었다. 그것이 바로 "세이브 & 로드" 신공! 적당히 좋은 상황에서 부지런히 세이브를 해둔 후, 뜻대로 풀리지 않는 상황에 마주하였을 때 좋았던 세이브 파일을 로드하여 좋았던 분위기를 이어나간다.(뜻대로 안 풀릴 경우, 될 때까지 세이브 & 로드를 반복한다.) 그러나 게임에서 제공하던 세이브 공간은 제한적이었으므로 이를 효율적으로 사용하기 위해 세이브할 상황을 잘 파악하는 능력이 필요했다.(잘못 저장하였다간 안 좋은 상황을 강제로 로드해야하는..
[50] 경인교육대학교 교육전문대학원 2023학년도 석사과정(AI교육 전공) 준비하기(13) - 인공지능 교육개론 챕터11(로봇과 인공지능) 마이크로 비트 영국방송공사(BBC)에서 SW 교육용으로 설계된 4 × 5 cm 크기의 오픈소스 하드웨어. 가속도계 센서, 자기장 센서, 블루투스, LED 25개, 버튼 2개를 갖춤. MakeCode Microsoft에서 개발한 개방형 프로그래밍 환경 https://makecode.microbit.org/ Microsoft MakeCode for micro:bit A Blocks / JavaScript code editor for the micro:bit powered by Microsoft MakeCode. makecode.microbit.org 마이크로비트와 엔트리 연결하기
[49] 경인교육대학교 교육전문대학원 2023학년도 석사과정(AI교육 전공) 준비하기(12) - 인공지능 교육개론 챕터10(인공지능으로 앱 만들기) MIT 앱인벤터 블록 기반의 안드로이드 프로그래밍 환경 https://appinventor.mit.edu/ MIT App Inventor App Inventor Foundation Presents: Anant Bhaskar Garg Empowering STEM changemakers in rural India As a computer science teacher, Anant Bhaskar Garg sees his duty as more than just teaching things like algorithms and data structures. To him, these are merely appinventor.mit.edu 디자인 기반 학습 방법(Design Based Learning, DBL) 1. ..