"손코딩뇌컴파일눈디버깅" 모임을 소개합니다.
백문이 불여일런, 트라이얼앤에러(Trial and Error) 식의 몹쓸 교육을 받아 온 개발자들이 코딩하기 전에 신중하고 꼼꼼하게 생각해보기란 쉽지 않습니다.
개발 시간 중 디버깅 시간이 절반 이상을 차지하고 있는 실정에 버그를 줄이기 위해 TDD니 유닛테스트니 많은 방법들이 개발되고 있지만 가장 일차적으로 중요한 것은 개발자들이 꼼꼼히 따져보는 것이 아니겠는지요?
미국의 선진 SW회사들은 이미 화이트보드에 PS문제를 푸는 것을 인터뷰 방식으로 채택하고 있습니다. 이는 이와 같은 풀이 방식이 개발자들의 기본 역량을 측정하기에 알맞은 지표라는 것이고, 개발자들이 기본적으로 갖춰야 할 역량이기도 하다는 것 입니다.
또한 자신의 생각을 명확하게 정리하고 다른 사람이 이해할 수 있도록 전달하는 Communication Skill 도 개발자가 갖춰야 할 역량 중 하나 입니다. 알고리즘을 어떻게 구현할 것인가를 팀원들과 소통하면서 자연스럽게 생각을 정리하고 전달하는 연습도 할 수 있습니다.
컴퓨터에 앉아 코딩하기 전 펜과 종이를 들고 눈과 머리와 손을 굴려 보시는 것은 어떠신지요??
미래를 살아갈 아이들을 위한 SW교육 이야기
01 소프트웨어와 미래
- 변화를 이끈 힘
- 우리 주변의 소프트웨어
- 소프트웨어와 미래
02 소프트웨어 교육의 목표
- 소프트웨어 교육의 필요성
- 소프트웨어 교육의 세계적 흐름
- 소프트웨어 교육의 목표
03 소프트웨어 교육의 방법
- 언플러그드 활동
- 알고리즘 활동
- 교육용 프로그래밍 언어
- 피지컬 컴퓨팅
"손코딩뇌컴파일눈디버깅" 모임을 소개합니다.
백문이 불여일런, 트라이얼앤에러(Trial and Error) 식의 몹쓸 교육을 받아 온 개발자들이 코딩하기 전에 신중하고 꼼꼼하게 생각해보기란 쉽지 않습니다.
개발 시간 중 디버깅 시간이 절반 이상을 차지하고 있는 실정에 버그를 줄이기 위해 TDD니 유닛테스트니 많은 방법들이 개발되고 있지만 가장 일차적으로 중요한 것은 개발자들이 꼼꼼히 따져보는 것이 아니겠는지요?
미국의 선진 SW회사들은 이미 화이트보드에 PS문제를 푸는 것을 인터뷰 방식으로 채택하고 있습니다. 이는 이와 같은 풀이 방식이 개발자들의 기본 역량을 측정하기에 알맞은 지표라는 것이고, 개발자들이 기본적으로 갖춰야 할 역량이기도 하다는 것 입니다.
또한 자신의 생각을 명확하게 정리하고 다른 사람이 이해할 수 있도록 전달하는 Communication Skill 도 개발자가 갖춰야 할 역량 중 하나 입니다. 알고리즘을 어떻게 구현할 것인가를 팀원들과 소통하면서 자연스럽게 생각을 정리하고 전달하는 연습도 할 수 있습니다.
컴퓨터에 앉아 코딩하기 전 펜과 종이를 들고 눈과 머리와 손을 굴려 보시는 것은 어떠신지요??
미래를 살아갈 아이들을 위한 SW교육 이야기
01 소프트웨어와 미래
- 변화를 이끈 힘
- 우리 주변의 소프트웨어
- 소프트웨어와 미래
02 소프트웨어 교육의 목표
- 소프트웨어 교육의 필요성
- 소프트웨어 교육의 세계적 흐름
- 소프트웨어 교육의 목표
03 소프트웨어 교육의 방법
- 언플러그드 활동
- 알고리즘 활동
- 교육용 프로그래밍 언어
- 피지컬 컴퓨팅
2016년 11월 모 대학에서 IT 계열 전공 재학생들을 대상으로 진행했던 진로 특강 자료입니다.
앞쪽의 제반 내용들은 다양한 자료들을 정리하면서 제 생각을 담았습니다.
이 자료의 가장 핵심적인 내용은 5가지 유형의 현직 선배들을 대상으로 설문을 실시하여 후배들에게 들려주고 싶은 현실적이고 진솔한 이야기를 정리한 부분입니다.
IT 분야 그리고 소프트웨어 개발자의 삶의 모색하는 분들에게 조금이나마 도움이 되길 바라는 마음에 자료를 공개합니다.
인터넷에는 수없이 많은 PHP 튜토리얼이 있다. 이들 대부분은 이미 낡고 쓸모없어진 지 오래지만 불행히도 구글 검색 결과에 살아남아 여전히 참조자료로 활용된다. 이런 낡은 정보를 무분별하게 받아들인 PHP 프로그래머는 자신도 모르는 사이에 느리고 보안에 취약한 PHP 애플리케이션을 만들게 된다.
이 책에서는 슬림(Slim) 프레임워크의 제작자이자 ‘PHP The Right Way’의 창안자인 조시 록하트가 최신 PHP 기술을 소개하는 한편, 자신의 오픈소스 프로젝트와 일상 업무에서 매일 사용하는 최신 기술을 보여준다. 독자 여러분도 이 책을 통해 PHP의 짜릿한 변화의 순간에 동참하고 진보된 PHP를 온전히 활용할 수 있게 될 것이다.
- 네임스페이스, 트레이트, 제너레이터, 클로저 등의 모던 PHP 기능
- PHP 컴포넌트를 검색, 사용, 작성하는 방법
- 보안, 데이터베이스 작업, 문자열, 스트림, 에러와 예외 등에 대한 모범 사례
- 프로비저닝, 배포, 튜닝, 테스팅, 프로파일링에 필요한 도구와 기술
- 페이스북이 선보인 HHVM과 Hack이 최신 PHP에 미친 영향
- 프로덕션 서버에 대응하는 로컬 개발 환경 구축
★ 대상 독자
- PHP에 대한 기본적인 이해가 있으며 자신의 기량을 강화하고 싶은 모든 개발자
- 수년 전부터 같은 패턴으로 개발하고 있는 PHP 개발자
- PHP의 최신 변화가 궁금하고 미래를 적극적으로 준비하고 싶은 개발자
- 호환되지 않는 여러 PHP 버전의 설명이 혼재된 인터넷 자료에 고생하고 있는 개발자
★ 추천사
나는 PHP 언어와 커뮤니티의 현 상황을 제대로 반영한 서적을 찾느라 수년을 보냈다. 이제 주저하지 않고 『Modern PHP』를 추천한다.
─ 에드 핀클러, 개발자 겸 블로거(funkatron.com)
프로그래밍에서 절대 변하지 않는 진리는 ‘프로그래밍은 변한다’는 사실뿐이다. PHP는 변하고 있고 여러분의 개발 방법 역시 변해야만 한다. 조시는 최신 PHP로 작성하기 위해 알아야 할 도구와 개념을 제시한다.
─ 캘 에번스, E.I.C.C. CEO
프랭크 D. 루나 지음 | 류광 옮김 | 한빛미디어
3D 그래픽 프로그래밍의 기초부터 최신 기법까지
이 책은 DirectX 12로 게임을 개발해가며 대화식 컴퓨터 그래픽 프로그래밍을 익히는 입문서다. 1부는 기본적인 수학적 도구들을, 2부는 Direct3D의 기본 과제들을 수행하는 방법을, 그리고 3부는 여러 응용 기법과 특수 효과를 설명한다. 그 과정에서 명령 목록, 파이프라인 상태 객체, 서술자 힙과 테이블, CPU 추가부담 감소 및 다중 CPU 코어를 효율적으로 사용하기 위한 명시적 자원 관리 같은 DirectX 12의 새 기능을 활용하는 방법을 보여준다. 하드웨어 테셀레이션, 계산 셰이더, 주변광 차폐, 실시간 반사, 법선 매핑과 변위 매핑, 그림자 렌더링, 캐릭터 애니메이션 같은 현대적인 특수 효과와 기법도 이 책으로 배울 수 있다.
2016년 11월 모 대학에서 IT 계열 전공 재학생들을 대상으로 진행했던 진로 특강 자료입니다.
앞쪽의 제반 내용들은 다양한 자료들을 정리하면서 제 생각을 담았습니다.
이 자료의 가장 핵심적인 내용은 5가지 유형의 현직 선배들을 대상으로 설문을 실시하여 후배들에게 들려주고 싶은 현실적이고 진솔한 이야기를 정리한 부분입니다.
IT 분야 그리고 소프트웨어 개발자의 삶의 모색하는 분들에게 조금이나마 도움이 되길 바라는 마음에 자료를 공개합니다.
인터넷에는 수없이 많은 PHP 튜토리얼이 있다. 이들 대부분은 이미 낡고 쓸모없어진 지 오래지만 불행히도 구글 검색 결과에 살아남아 여전히 참조자료로 활용된다. 이런 낡은 정보를 무분별하게 받아들인 PHP 프로그래머는 자신도 모르는 사이에 느리고 보안에 취약한 PHP 애플리케이션을 만들게 된다.
이 책에서는 슬림(Slim) 프레임워크의 제작자이자 ‘PHP The Right Way’의 창안자인 조시 록하트가 최신 PHP 기술을 소개하는 한편, 자신의 오픈소스 프로젝트와 일상 업무에서 매일 사용하는 최신 기술을 보여준다. 독자 여러분도 이 책을 통해 PHP의 짜릿한 변화의 순간에 동참하고 진보된 PHP를 온전히 활용할 수 있게 될 것이다.
- 네임스페이스, 트레이트, 제너레이터, 클로저 등의 모던 PHP 기능
- PHP 컴포넌트를 검색, 사용, 작성하는 방법
- 보안, 데이터베이스 작업, 문자열, 스트림, 에러와 예외 등에 대한 모범 사례
- 프로비저닝, 배포, 튜닝, 테스팅, 프로파일링에 필요한 도구와 기술
- 페이스북이 선보인 HHVM과 Hack이 최신 PHP에 미친 영향
- 프로덕션 서버에 대응하는 로컬 개발 환경 구축
★ 대상 독자
- PHP에 대한 기본적인 이해가 있으며 자신의 기량을 강화하고 싶은 모든 개발자
- 수년 전부터 같은 패턴으로 개발하고 있는 PHP 개발자
- PHP의 최신 변화가 궁금하고 미래를 적극적으로 준비하고 싶은 개발자
- 호환되지 않는 여러 PHP 버전의 설명이 혼재된 인터넷 자료에 고생하고 있는 개발자
★ 추천사
나는 PHP 언어와 커뮤니티의 현 상황을 제대로 반영한 서적을 찾느라 수년을 보냈다. 이제 주저하지 않고 『Modern PHP』를 추천한다.
─ 에드 핀클러, 개발자 겸 블로거(funkatron.com)
프로그래밍에서 절대 변하지 않는 진리는 ‘프로그래밍은 변한다’는 사실뿐이다. PHP는 변하고 있고 여러분의 개발 방법 역시 변해야만 한다. 조시는 최신 PHP로 작성하기 위해 알아야 할 도구와 개념을 제시한다.
─ 캘 에번스, E.I.C.C. CEO
프랭크 D. 루나 지음 | 류광 옮김 | 한빛미디어
3D 그래픽 프로그래밍의 기초부터 최신 기법까지
이 책은 DirectX 12로 게임을 개발해가며 대화식 컴퓨터 그래픽 프로그래밍을 익히는 입문서다. 1부는 기본적인 수학적 도구들을, 2부는 Direct3D의 기본 과제들을 수행하는 방법을, 그리고 3부는 여러 응용 기법과 특수 효과를 설명한다. 그 과정에서 명령 목록, 파이프라인 상태 객체, 서술자 힙과 테이블, CPU 추가부담 감소 및 다중 CPU 코어를 효율적으로 사용하기 위한 명시적 자원 관리 같은 DirectX 12의 새 기능을 활용하는 방법을 보여준다. 하드웨어 테셀레이션, 계산 셰이더, 주변광 차폐, 실시간 반사, 법선 매핑과 변위 매핑, 그림자 렌더링, 캐릭터 애니메이션 같은 현대적인 특수 효과와 기법도 이 책으로 배울 수 있다.
세바시 15분 다음 10년의 변화, 세상의 모든 것을 연결하다 @최형욱 Chief Maker & 매직에코 대표cbs15min
인터넷이 태동하고 있을 때 당신은 어디에 있었습니까? 그리고 스마트폰이 거의 모든 사람들의 손에 들려지는 그 몇 년간 또 당신은 어디에서 무엇을 하고 있었습니까? 우리는 인터넷을 통해 새로운 세상과 만났고 스마트폰을 통해 그 세상과 실시간으로 소통하고 있습니다. 세상은 계속 더 연결되어 가고 있고 또 한 번 새로운 물결이 우리를 향해 다가오고 있습니다. 우리는 이것을 인터넷, 모바일 다음의 변화, 사물인터넷이라고도 이야기 합니다. 인간이 주도하던 연결의 권한을 사물들에게 나눠주는 새로운 변화의 시작에 서있습니다. 사물들이 서로 소통을 하고 사람들에게 새로운 가치를 만들어 주는 새로운 10년을 다시 멀리 떨어져 보고 만 있으실건가요? 세상의 모든 것들이 연결되는 새로운 세상을 함께 만들어 보면 어떨까요? 우리는 이제 세상의 모두와 연결되는 날을 만나게 될 것입니다.
[메일 주소 변경되었습니다.]
송상수 sssong@swedunet.org / https://www.facebook.com/gi.sik.in / swedunet.org
이번 교육부 SW운영지침에 맞춘 강의입니다.
소프트웨어야 놀자 라는 주제로
소프트웨어가 가지고 온 생활의 변화 / SW의 놀라운 힘을 살펴보고.
소프트웨어를 만드는 기본원리인 순차적 실행, 반복, 조건을 언플러그드 활동으로 살펴봅니다.
이어서 엔트리 보드게임으로 기본원리를 실습하고
마지막으로 알고리즘 놀이활동 (엔트리 학습모드)와
교육용 프로그래밍 언어 활동 (엔트리 자유모드)를 가지고
프로그래밍 경험을 해 보는 3~4시간 짜리 강의 PPT입니다.
Softbox arduino software education, softbox 소프트박스 제품소개서 봉조 김
피지컬 아두이노 소프트웨어 교육도구
피지컬 아두이노 소프트웨어 교육도구 소프트박스(softbox)
softbox 교육도구는 주변환경과 밀접한 7종의 센서입력부와 입력부를 처리하여 제어와 통신을 담당하는 제어통신부, 센서 입력을 읽고 분석하여 제어가 가능한 5종의 구동출력부를 인쇄회로기판(PCB) 위에 견고하게 모아 제작한 피지컬 아두이노 소프트웨어 교육도구입니다.
softbox는 가장 기본적인 “아두이노 피지컬 소프트웨어 교육도구”로서 학생들과 일반인이 처음으로 소프트웨어를 배우기에 적합한 도구입니다. 기본 교육 과정을 마치면 수준에 따른 프로젝트를 진행하게 되는데 이러한 프로젝트를 통해 창의적인 아이디어를 소프트웨어로 구현하는 과정을 배우도록 하는 것이 바로 “프로젝트 실습에 따른 코딩교육”이며 프로젝트를 실행하기 위한 다양한 소스코드와 메이커 활동에 필요한 콘텐츠를 제공합니다.
softbox 특징
•견고하게 제작되어 고장이 없고, 반복적인 사용이 가능
•점퍼선을 제거하고 모듈화 하여 소프트웨어 교육에 시간 집중
•아두이노 통합개발환경인 Sketch 환경에서 소프트웨어 교육
•블럭코딩을 지원하는 엔트리, mblock 환경에서 모든 입출력 제어 가능
•arduino UNO 보드와 환경이 동일하고 확장이 용이한 mega2560 사용
•센서입력부(7종), 구동출력부(5종), 제어통신부(2종) 3부분으로 구성
•USB 연결 케이블로 간단한 소프트웨어 교육환경 구성
•태블릿, 스마트폰을 사용하여 프로그래밍이 가능함(otg usb 케이블)
•연결선과 USB 통신 케이블로 간단하게 실습
•다양한 프로젝트 기반의 소프트웨어 교육 프로그램 지원
•메이커들의 창작활동을 돕는 프로그램 개발과 필요 부품 지원
•창의적인 아이디어를 즉시 테스트 가능
•단순한 융합 프로젝트를 즉시 실행 가능
This slide describes why OpenStack is Operating System (OS).
오픈스택을 왜 클라우드 운영체제라고 부르는지, 운영체제가 반드시 가지고 있어야 할 구성요소들을 오픈스택 구성요소들과 비교 분석함으로써 오픈스택을 알아보는 내용을 담고 있습니다.
JavaScript Everywhere from Mobile and RobotCirculus
Build own idea using javascript from mobile and robot!
서큘러스 팀은 IoT 교육/개발 플랫폼과 데이터 수집 및 분석 시스템, 그리고 모바일과 봇 형 제품군까지 모든것을 JavaScript 하나만으로 제작및 통합하였습니다. 하나의 언어로 통합하여 얻게 되는 장점에 대해 살펴봅니다.
Expand your dimension using CODE
CODING, 그것은 21세기 자신의 철학을 표현하고,
행동으로 전 세계에 영향을 줄 수 있는 뛰어난 언어이자 효율적인 도구입니다.
Circulus 는 CODING 을 통해 거리의 제약 없이 사람과 사람간에 대화를 나누고, 생각을 기계와 기계와의 연결을 통해 현실화 할 수 있는 세계를 제공합니다.
Service Site > http://www.circul.us
Intro Video > http://www.youtube.com/watch?v=WqexMZfv7DU
Facebook Group > https://www.facebook.com/groups/loofin/
2. 1㈜디티웨어
나는 누구인가?
"나는 생각한다. 고로 존재한다." - 데카르트 –
"나" = "스스로를 자각하고 느끼고 생각하는 존재“
나는 사회와 구별된 독립된 자아이면서도 사회에 의해 만들어진 존재 (내
생각과 지식의 거의 전부가 과거 및 현재의 타인으로부터 받은 것이므로)
삶이란 무엇인가?
"느끼고(감정) 생각(이성)하는 활동“
감정과 이성 모두 중요
나는 왜 사는가?
삶에 대한 욕구
나는 어떻게 살 것인가?
(나에게 맞는) 행복한 삶
나는 어떻게 살 것인가?
4. 3㈜디티웨어
행복한 사람 ("하버드대 행복학 강의 - 해피어")
요약: 현재도 즐겁고 미래도 즐겁고 나도 좋고 다른 사람도 좋은 일에 힘쓰자.
조화로운 삶: 행복은 현재와 미래의 이익, 나의 이익과 타인의 이익을 동시에
추구하는 것 (어느 하나를 일방적으로 희생하지 않는 것)
흥미, 적성, 능력에 맞는 과제 수행: 너무 어렵지도 너무 쉽지도 않은 적절한
수준의 도전이어야 한다.
학습: 학습은 책을 읽고 생각하는 것을 즐기는 현재의 이익뿐 아니라 우리의
전반적인 성장에 기여하는 미래의 이익을 가져다 준다.
긍정적이고 낙관적인 시각: 모든 사람이나 사물은 좋은 점과 함께 좋지 않은
점을 함께 갖는다. 좋지 않은 점에만 지나치게 신경쓰기보다는 좋은 면을
높이 평가하고 활용할 수 있어야 한다.
지속적인 행복을 가져다 주는 좋은 인간 관계 유지: 사람을 좋아하거나
사랑할 때는 핵심 자아, 즉 우리의 가장 깊은 곳에 뿌리 박혀 있는 가장
안정적인 특성인 인격을 중시한다. 부, 권력, 명예, 외모는 핵심자아가 아니며
가변적이고 영속적이지 못하므로 이에 기반한 인간 관계는 불안정한
관계이다
행복한 삶이란? (2)
5. 4㈜디티웨어
학습 = 일 = 놀이
게임 (놀이, 사냥, 퍼즐)
육체 훈련 (운동)
두뇌 훈련 (문제 풀이)
육식 동물과 과거 우리 선조들은 사냥이 곧 학습이자 일이자
놀이였다.
현대는 학습, 일, 놀이가 분리되어 비효율적이고 재미가 없어졌다.
결론: “재미있게 공부하면서 일하자.”
행복한 삶이란? (3)
6. 5㈜디티웨어
프로그램 (Program)
컴퓨터가 문제를 해결하기 위해 수행할 명령들(instructions)을 명시한 것
프로그래밍 언어 (Programming Language)
프로그램의 문법(syntax)와 의미(semnantics)를 정의
프로그램 코드 (program code)
프로그램의 임의의 일부
소스 코드 (Source Code)
사람이 이해할 수 있는 프로그래밍 언어(일반적으로 텍스트 형태)를 사용하여
작성된 프로그램 코드. 소스 파일 (Source File)은 소스 코드로 이루어진 파일
소프트웨어 (Software)
컴퓨터 프로그램과 그와 관련된 문서들을 총칭
소프트웨어란 무엇인가?
7. 6㈜디티웨어
레고 블록을 쌓듯이 프로그래밍을 쉽고 재미있게 할 수 있다.
http://scratch.mit.edu
재미있고 쉬운 프로그래밍 - 스크래치
8. 7㈜디티웨어
레고블록을 쌓듯이 스마트폰 프로그래밍을 쉽고 재미있게 할 수 있다
http://appinventor.mit.edu/explore/
재미있고 쉬운 프로그래밍 - 앱인벤터
9. 8㈜디티웨어
레고블록을 쌓듯이 기계(로봇 등)를 쉽게 프로그래밍할 수 있다.
http://mindstorms.lego.com/
재미있고 쉬운 프로그래밍 교육 - 마인드스톰
10. 9㈜디티웨어
알고리듬(Algorithm)
단계적 계산 절차
사람이 보고 한 단계씩 따라서 수행할 수 있는 명료한 계산 절차이며 보통 자연어나 그림으로 표현한다.
알고리듬을 머릿속에 떠올리거나 작성한 후에 이를 특정 프로그래밍 언어로 프로그래밍한다.
알고리듬의 예
1. 함수 f(x) = 3 * x + 1라고 하자.
2. 입력 값 n이 0보다 작거나 같으면 프로그램의 실행을 끝낸다.
3. 입력 값 n에 대하여, x는 1부터 n까지 반복하여 f(x) 값을 계산하여 화면에 표시한다.
자바 프로그램 소스 코드와 실행 결과
일반적인 프로그래밍의 기본 원리와 예 (1)
public class MyProg {
public static int f(int x) {
return 3 * x + 1;
}
public static void main(String[] args) {
int n = Integer.parseInt(args[0]);
if (n <= 0)
return;
int x = 1;
while(x <= n) {
System.out.println(f(x));
x = x + 1;
}
}
}
w:>java MyProg 2
4
7
w:>java MyProg 4
4
7
10
13
11. 10㈜디티웨어
일반 프로그래밍의 기본 요소
알고리듬과 프로그램은 다음과 같은 단순한 요소들을 조합한 것이다.
수식: 수식의 결과값을 계산한다.
함수: 계산 절차를 하나의 단위로 묶어서 재사용할 수 있게 해준다.
순차 실행: 여러 명령들을 하나씩 순차적으로 실행한다.
조건 실행: 명시된 조건이 만족될 때만 지정된 명령을 실행한다.
반복 실행: 명시된 조건이 완료될 때까지 지정된 명령을 반복 실행한다.
고급 프로그램과 도메인 지식
아무리 복잡한 알고리듬과 프로그램도 이상의 단순한 기본 요소들의 조합에 불과하다.
프로그래밍 언어가 아무리 기능이 많아도 효율성, 편리성 등의 차이일 뿐 근본적인 표현력은
동일하므로 프로그래밍의 기본 요소들을 갖춘 언어이기만 하면 어떠한 알고리듬도 구현할 수
있다.
운영체제, 스마트폰, 비행기 등에 수천만 라인의 코드에도 단순한 기본 요소들의 조합에
불과하나 수천만 라인의 코드가 모여 매우 정교한 일을 처리해낸다.
고급 프로그램에는 매우 복잡한 기존 수학, 공학, 의학, 금융, 법률, 오락, 업무 처리 절차 등의
지식을 표현할 수 있다. 이와 같은 프로그래밍 외적인 전문 지식을 도메인 지식이라고 한다.
일반적인 프로그래밍의 기본 원리와 예 (2)
12. 11㈜디티웨어
프로그래밍 라이브러리
반복적으로 사용되는 함수들을 배포하고 사용하기 쉽게 묶어 놓은 것
개발자는 기존 라이브러리에 존재하는 함수는 별도로 프로그래밍하지 않고 사용하기만 하면
된다.
라이브러리가 매우 방대해져서 이를 익히는 데 많은 시간과 노력이 필요해졌다.
라이브러리를 사용하기 위해서는 그 라이브러리가 지원하는 프로그래밍 언어를 사용해야
한다.
그래픽 라이브러리: 프로그램이 문자를 입력하고 출력하는 대신 마우스로부터 입력값을 받고
그래픽 화면에 출력하면 그래픽 프로그램이 된다. 이를 간편하게 프로그래밍할 수 있게 해주는
라이브러리
시스템 라이브러리: 운영체제의 기능을 불러 쓸수 있도록 해주는 라이브러리
응용 라이브러리: 통신, 저장 등 기타 다양한 용도의 라이브러리
소프트웨어 서비스
다른 기기에서 동작하는 소프트웨어 기능을 통신을 통하여 요청하고 결과를 받아서
이용하도록 프로그래밍할 수 있다.
웹 서비스: 인터넷 상의 다른 기기에게 소프트웨어 기능을 제공하는 서비스
현대는 라이브러리뿐만 아니라 점점 더 늘어나는 서비스들을 익히고 프로그래밍에 활용한다.
일반적인 프로그래밍의 기본 원리와 예 (3)
13. 12㈜디티웨어
절차형 언어 (Procedural Language)
C, C++, 자바, C#, Objective-C, Swift, JavaScript, Python, PHP,
BASIC, ...
FORTRAN, COBOL, ALGOL, PL/1, ...
객체 지향 프로그래밍 언어 (Object-Oriented Programming)
C++, 자바, C#, Objective-C, ...
Simula, Smalltalk, Eiffel, ...
함수형 언어 (Functional Language)
Scala, F#, Oz, Lisp, Scheme, Standard ML, Haskell, ...
다범주형 언어 (Multi-paradigm Language)
C++, 자바, C#, Objective-C, …
프로그래밍 언어의 종류
16. 15㈜디티웨어
소프트웨어란 컴퓨터가 특정 영역의 문제를 해결하도록 지능을
구현한 것
지능: 지식을 사용한 문제 해결 능력
인류가 발전하여 지구를 지배한 주 원인: 뛰어난 지능, 지식의
교류와 축적
소프트웨어가 가전 기기, 의료 기기, 자동차, 항공기, 선박, 우주선
등에 내장되어 휠씬 더 가치를 높게 만듦
인간은 인간의 지식과 기능을 소프트웨어에 지속적으로 축적시키고,
소프트웨어는 산업의 중추적 역할을 한다.
소프트웨어가 왜 중요한가?
17. 16㈜디티웨어
소프트웨어 혁명: 소프트웨어 능력으로 경쟁의 법칙을 바꾸고 기존
시장 질서를 파괴하며 시장을 석권
“Software is eating the world” 소프트웨어가 세상을 먹어 치우고
있다. By Marc Andressen, Wall Street Journal, Essay,
2011.8.20
소프트웨어 혁명: 이메일, 게시판, 업무시스템, 온라인 마켓, 금융,
문화, 교육, 의료기기, (무인)차, 비행기, 선박, 우주선 등등
소프트웨어는 사회 각 분야에서 점점 더 중요한 위치를 차지
소프트웨어 중심 사회
18. 17㈜디티웨어
SW 중심의 산업 패러다임 도래
제품개발 원가 중 SW가 차지하는 비중이 지속적으로 확대
임베디드 SW의 신뢰성 문제 부각 (자동차, 항공, 의료 등)
개발원가 중 SW 비중 ('07)
정보가전: 53.7%
통신장비: 52.7%
의료장비: 45.5%
자동차의 전장화 비율 전망 (NIPA, '11)
2000: 22%
2010: 35%
2020: 50%
소프트웨어 중심 사회 – 개발 원가 비중
28. 27㈜디티웨어
소프트웨어 개발자
웹 개발자
모바일 개발자
서버 개발자
데이터 엔지니어
SW 아키텍트
기획자
UI 디자이너
테스트 엔지니어
소프트웨어 직업의 종류
29. 28㈜디티웨어
일반 개발자
내향적: 50 ~ 60% (인구의 25%만이 내향적. 내향적인 사람이 더 고등 교육을 추구)
사고형: 80 ~ 90% (인구의 50%가 사고형)
ISTJ(내향성, 감각형, 사고형, 판단형)이 가장 많으며 25 ~ 40% 차지.
도구를 잘 다루며 프로그래밍의 세부적인 구현들을 잘 다룬다.
프로그래밍 관련 이론과 기반 지식은 잘 바뀌지 않으나 프로그래밍 도구와 각종 실무 기술들은 매우 빠르게 바뀌므로
끊임없이 공부하며 일해야 한다.
결론: 논리적 사고, 공부, 도구 다루기를 좋아하는 사람이 소프트웨어 개발 업무에 잘 맞는다.
기획자, 디자이너
직관형, 인식형(NP형)
SW 아키텍트, 위대한 설계자
추상화할 수 있는 능력과 창의성을 갖춘 직관형 인재
창조적인 문제 해결사
감각형/직관형, 사고형/감정형, 인식형/판단형의 경계를 쉽게 이동
그들은 다양한 관점으로 문제를 볼 수 있다.
예: 레오나르도 다빈치, 알버트 아인슈타인
결론: SW 아키텍트는 전체를 파악하고 설계할 수 있으면서도 핵심 부분을 직접 구현하고 검증할 수 있는 개발 능력을
갖추어야 한다.
소프트웨어 개발자와 MBTi 성격
30. 29㈜디티웨어
컴퓨터 구조
운영체제
프로그래밍 언어론
자료구조/알고리듬
컴파일러
소프트웨어 공학
컴퓨터 그래픽스
컴퓨터 네트워크
데이터베이스
컴퓨터 보안
인공지능
컴퓨터공학과에서 배우는 주요 전공 과목
32. 31㈜디티웨어
재미있고 다재다능한 교육 도구
논리적, 수학적, 분석적, 창의적 사고 능력 함양
기획, 디자인, 협업 능력 함양
어떤 일을 하든지 SW를 잘 이해함으로써 잘 구매하고 잘 활용하는
능력이 필수
어떤 일을 하든지 SW 개발에 직간접적으로 관여될 가능성이 점점
더 높아짐
소프트웨어 전공자도 어렸을 때부터 코딩하지 않으면 학업 부담으로
코딩을 능숙하게 배울 시간이 많지 않음
소규모 창업 용이
최근, 미국, 영국, 일본, 프랑스, 중국 등이 잇달아 SW 교육을 독립
정규 과목으로 채택함
프로그래밍 교육은 어릴때부터
33. 32㈜디티웨어
본 자료의 내용중 소프트웨어 산업 현황과 관련된 부분인 16, 17,
18, 19, 20, 21, 21, 22, 23, 24, 25 페이지는
소프트웨어정책연구소 김진형 소장님의 발표 자료 "우리는
소프트웨어 중심사회를 준비하고 있는가?"에서 발췌한 것임을
밝힌다.
http://www.slideshare.net/primebae/ss-36412546
참고