비트캠프 웹 개발자 교육 과정을 수강한 이유
개발이 좋은데 그 실력을 혼자서 끌어올리기 어려웠던 게 다들 생각하는 기본적인 이유고 나도 그렇다.
나는 거기에 추가로, 솔직히 혼자서 자기 관리가 어려워서 수강했다.
나는 내가 자기 관리를 할 수 있는 환경을 찾아서 들어가야 한다.
나는 장기 기억력이 특출나지 않은 사람이고 환경이 구성되지 않으면 의지가 빈약해지는 사람이다.
그걸 메타인지하기까지 오래 걸렸다.
다른 이유로는 웹이 서비스 개발의 기본이고, 국내 수요가 있는 Java, Spring Boot를 배울 수 있는 과정이라 골랐다.
어느정도 진입장벽이 낮은 것도 이유다. 국비지원이 되므로 금전적인 부담이 적기도 하고, 입과하기에 그 난이도도 낮다고 생각한다.
솔직히 말하면, SSAFY나 우테코에 입과할 수 있었다면 거기로 가는 게 나았겠지만 생각보다 쉽지가 않더라.
입과 과정은 간단하다.
사전에 비트캠프 면접일을 잡고, 면접을 보고 사전기술교육 수강(온라인) + 시험(온라인)을 보면 합격여부를 알려준다.
합격하면 HRD에서 신청해서 교육이 시작되는 일자부터 수강하면 된다.
*사전기술교육과 시험에 대해서
사실 기대했던 것보다 내용이 괜찮아서 놀랐다.
솔직하게 말하면 내가 국비교육에 대한 선입견을 가지고 있었구나 하는 생각을 했다. (아주 시건방진 생각이며 반성했다.)
시험은 난이도가 높지는 않지만 영상을 주의깊게 봤어야지 풀 수 있는 문제라고 보면 된다.
기술교육 관련 간략히 정리했던 내용을 남겨둔다.
사전 기술점검; 트렌드
매직에꼴 최재규
1강 : OT
디지털 리터러시가 뭔가?
리터러시는 문해력이라고 표현하는데, ‘할 수 있음’을 넓게 표현하는데 쓰이는 용어이다.
지금 과정은
- 인터페이스: 웹, 모바일, 사물인터넷(IoT)
- 데이터 : 빅데이터, 클라우드 AI
- 비즈니스: 블록체인(신뢰), 메타버스, 메이커 무브먼트 등..
어떻게 배우는게 좋을까?
- 메가트렌드 용어로 시작할 것이며,
- 왜 만들어졌고 어디에 쓰는지
- 구성요소가 무엇인지
- 전문가로 가는 길은 무엇인지?
메가트렌드는 대략 10년 주기로 등장하는데..
- 가트너는 그걸 시기별로 분류했다
4차 산업혁명은 뭔가?
수렵채집 >> 정주농경(농업혁명) >> 산업혁명 >> 4차 정보
- 변호사, 의사 등 라이센스에 의존한 전문가 집단에 큰 영향
- 기존 산업 플레이어의 경쟁력 약화 예상
00년도에는 웹
10년도에는 모바일
20년도에는 IoT
>>모바일 다음의 세대로 IoT를 언급하는 것은 센서, 엑추에이터, 엣지 컴퓨팅에서 발생하는 방대한 데이터 발생에 포커스를 맞춘 것임.
왜 배워야 하나?
- 이런 트렌드 변화를 이용하는 경우 비용과 시간을 대폭 줄일 수 있는 경우가 있음
- 새로운 게임의 규칙 : 게임체인저 >> 포스트코로나
- 국/영/수/소프트웨어 … 기본 교양이 되어 가는 중
- 앞으로도 기술 발전과 사회 변화는 더욱 심해질 것
- 디지털 리터러시
디지털 네이티브, 디지털 노마드, 온라이프, 긱이코노미, 디지털 트랜스포메이션 등…
- 왜배우나?
국어 수학 영어를 학교에서 가르치는 이유 : 일시키려고 - 이해하고 활용하려면
스토리 중심
사용성 중심 - 학습은 어떻게 해야 하나
언어 배우는 것과 비슷. 필수적인 단어와 문법은 외우고, 회화를 통해 연습을 반복하고 응용을 반복한다. IT기술도 똑같다. 필수적인건 외우고(입력하고 꺼내고 반복), 활용을 반복하면 된다.
인터페이스, 데이터, 비즈니스 상세
사용자 접점(UI) 기술
00년대 웹: 모니터-마우스-키보드 >> 플래시 등..
10년대 모바일: 터치스크린, 햅틱
20년대 IoT: 비전, 음성 인식
구글 어시스턴스 >> 듀플렉스 >> AI가 대신 통화해서 일정잡고 했던게 2018년
23년이 되니 GPT가 퐈파팍 떴지
인터페이스 1, 웹 탄생 스토리
PC통신이 1세대 (모뎀을 이용했던 시대) 이고, 이 때는 통신하는 것이 ‘웹 페이지’가 아니었음.
이 때는 하이텔, 나우누리같은 서비스 제공자에 따라 접속 방법도 다르고 파편화된 상태였음
CERN의 팀 버너스리가 최초의 웹사이트를 만들었음.
웹 브라우저도 넷스케이프부터 IE, 모질라>파이어폭스부터 크롬~엣지, 브레이브까지.. 지금은 완전 크로미움 엔진 천하지.
HTML CSS JS 가 웹페이지를 이루는 것
Mashup : 확장성 강화
Web - WAS - DB
인터페이스 2, 웹을 갖고 할 수 있는 일
00년도
- 검색엔진 / 포털 (야후, 라이코스 등)
- 메일 서비스
- SNA (싸이월드, 프리첼 등..)
소비 패턴의 변화
- 포털 쇼핑몰 (네이버와 다음)
- 특화 쇼핑몰 (옥션 등 경매)
- 블로그/카페 커뮤니티
10년도 모바일과의 연계
- 위치정보 등 밀착되고 더 많은 센서로 데이터 발생
- 반응형 웹 > 모바일 대응
- 새로운 개념의 포털 서비스
- 웹 기반 컨텐츠 배포 (만화, 소설, 숏폼, 영상 등)
- O2O(Online to Offline)
20년도 IoT와 인공지능
- IoT는 폰, 글래스 등 센서 밀접, 다양화와 데이터 발생에서 그 의의가 있음
- 앞으로 웹은 IoT와 융합되며 터치스크린 말고 더 많은 정보를 입력하면서 가치를 만들어 낼 것으로 예상
- 거기에 블록체인도 있을 걸로 예상됨
인터페이스 3, 웹의 기술
웹 3총사; 자바스크립트와 HTML, CSS…
다층구조; 3 tier를 알면 프론트엔드와 백엔드를 이해할 수 있다.
웹브라우저와 서버간 기능 구현 : 프론트엔드
서버와 데이터 간 기능 구현 : 백엔드 (Web Application Service) 개발자
기술 스택이 LAMP(Linus Apache, MySQL, PHP …) 같은
클라우드에 올리거나 온프레미스로 올리거나 도커/쿠버네티스로 컨테이너화하거나..
데이터를 다루려면 데이터베이스를 다뤄야하는데,
가장 자주 쓰는게 MySQL, MariaDB(오픈소스)
브라우저 엔진: V8(크로미움 자바스크립트 엔진)
위 엔진으로 오픈소스 브라우저 만든 거: Chromium
깃에서 소스코드 받기 가능
웹은 모바일앱에서도 쓰이고 로컬앱에서도 쓰임
VSCode는 js로 만들어졌음. 아톰도 js로 만들어졌음.
일렉트론으로 만들어서 그럼.
웹 개발이 포괄할 수 있는 범위가 넓다는 것임.
SPA: 리액트(페북) 앵귤러(구글), 뷰(오픈소스커뮤니티)
인터페이스 4,웹 전문가로 가는 길 [조언]
- 개발자가 되겠다
- 기획자가 되겠다
둘 다 상관없이 뭐라도 따라서 만들어보는게 필수 (책이나 강의, 영상 등)
그리고 그 과정에서 용어들을 찾아보면서 정리해나가기 - 게시판 만들기 ㅋㅋ
게시판이 곧 쇼핑몰이고 홈페이지고 블로그다. 게시판을 만들어봐야한다.
단순/다중/자료 업로드 - 프로젝트 해보기
자기 컴퓨터에 로컬로 올려보고
무료 호스팅 서비스에 올려보고
천리길도 한걸음부터다…
인터페이스 6, 모바일 탄생 스토리
- 하드웨어
지속적으로 작아지고, 성능이 높아짐 - 통신망 (인프라)
2G부터 지금 5G까지.. 10kbps to 10Gbps 까지.. - 주도권 (소프트웨어)
단말기 제조사 > 통신사 주도 > SW 플랫폼 주도
겁나게 많고 다양한 형태를 가졌던 모바일 기기는 아이폰 출시 이후 아이폰과 유사해짐
07년도 잡스가 아이폰 발편하는 건 진짜 레볼루숑이긴 하다 크
84년 매킨토시 >> PC
01년 아이팟 >> MP3 Player
07년 아이폰 >> 아이팟 + 전화 + 인터넷 브라우징…
Steve jobs도 이게 어떻게 세상을 바꿀지 그걸 다 상상하진 못했을 거야
앱스토어에 무엇들이 나올지…
모바일 구성은..
- OS : 안드/iOS
- 앱 유통 : PlayStore/AppStore
- 통신
- 장치
특히…
- 카메라는 똑딱이 디지털을 멸종시킬 정도로 폰카가 아주 아주 좋아짐
애플은 1년에 한번씩 신규 스마트폰을 출시함
몇몇 서비스(앱)이 대부분의 앱 시장을 과점하고 있음
AR, VR, MR, Metabus..
모바일 유통 구조는…
플랫폼/퍼블리셔가 끼기 전에는 애플/구글이 30퍼, 나머지가 개발사
카카오나 라인 같은 플랫폼이 끼고, 거기에 퍼블리셔가 더 끼면 개발사가 20퍼 30퍼 남는..
퍼블리셔 : 광고, 홍보, 유통, 마케팅 등 하고 개발사 이익에 수수료 가져감
이렇게 개발사 수익이 떨어지다보니 게임엔진이 치고들어옴
Ios and 따로 개발하기도 힘드니 유니티 언리얼 같은 엔진 개발자 하나 고용하는게 이득이니까
인터페이스 8, 모바일의 기술
iOS: Object C++ >> Swift
IDE: Xcode
Android: Java >> Kotlin
IDE: Android Studio
그 외에 유니티를 이용하여 웹앱이나 게임 앱을 제작할 수도 있음.
로컬 리소스를 이용하여 서비스를 제공하는 경우는 이제 예전이 되었고
클라우드에서 제공하는 서비스를 이용하는게 현실이라
클라우드는 웹이나 앱이나 모두 필요한 인프라가 되었음
애플은 CoreML이 있고
구글은 ML Kit이 있다
머신 안에 NPU가 있다보니
그걸 다루는 방법을 개발자에게 API로 제공한다.
한번 봐봐 쩔엇…
인터페이스 9, 모바일 전문가로 가는 길
- 플랫폼 언어 학습
- 관련 용어의 이해
- 자료 취합하기
개발자 페이지를 잘 활용해야 함.
개발 환경을 이해해야 함. Xcode와 Android Studio.
해외 컨텐츠들이 많고 좋다고 한다.
유니티는 iOS android 크로스개발 한다면…
앵그리버드스타일 게임을 만드는 오픈소스가 있음
깃헙에서 오픈소스 찾아보고 이해하는게 엄청 도움이 됨
오픈소스!! 오픈소스!! 매우 중요!!
PC 파이썬 앵그리버드 인 파이썬…
그리고 만든 게 허접해도 신규 앱 등록해보는 거. 이것도 진짜 중요하다.
인터페이스 10, 사물인터넷의 탄생 배경
우선 사물인터넷이 뭔지 알아보자
웹>모바일>사물인터넷
이 순서 각각에, 웹의 사물은 PC고, 모바일의 Thing은 Phone이다.
이제 뭐든간에 센서붙이고 네트워크 접속시킬거라는 거고
예전 1966년 웨어러블부터 유비쿼터스 개념이 나왔다.
기술 계통도에서 하위 기술들이 채워져야 상위 기술이 해금되듯..
임베디드 기술 쌓고
네트워크 기술 쌓고
모바일 기술(APU성능부터 네트워크 등등) 쌓고
클라우드 기술 해금하고 그러면
인터넷에 연결되는 Things들이 지금 PC와 폰에서 그 외의 것으로 더 확대될 것이라는 거다.
IoT 디바이스 관련 대규모 M&A가 발생했고 발생하고 있음
LoRa, NB-IoT, Bluetooth 5.0 …
최근에 이어폰이 와이파이 쓰자고 하는 것도 이런 흐름의 하나려나
네트워크 인프라, 스토리지 인프라는 심해 광케이블과 데이터센터 확충으로 IoT 발전의 배경이 될 것
Google Cloud, AWS, Azure와 같은 클라우드 서비스가 플래폼이 되어줄 것
Google의 Nest인수(3조) 건을 참조할 수 있고
삼성도 관련사 인수했었음
인터페이스 11, 사물인터넷을 가지고 할 수 있는 일
웹, 모바일 기술과 연계된 서비스를 제공하고, 대량의 데이터를 취합/활용하여 사용자에게 가치 제공하는 것
ICBM(missile? IoT, Cloud, BigData, Mobile) 대륙간탄도미사일이냐구
왜 그러한 시대가 도래하나
컴퓨팅 성능/가격비가 기하급수적으로 상승했기 때문에
무어의 법칙(인텔창업자 고든 무어)
한국지능형사물인터넷협회에서 기업, 제품들 확인할 수 있음
인터페이스 12, 사물인터넷에 사용되는 기술은?
- 임베디드 프로그래밍:
- 사물인터넷 디바이스 개발은 임베디드 개발
- 통신
- WPAN [개인근거리무선통신네트워크]
인터페이스 13, 사물인터넷의 전문가로 가는 길
기초잡기
- 디바이스, 네트워크, 데이터에 대하여..
- OCF[Open Connectivity Foundation]
- MATTER; 디바이스 중심의 개별적 파편화된 플랫폼 문제
- ODIY 채널같이 아두이노 등 임베디드 공부해보면 응용 가능할 것
- 유튜브에 자료가 엄청나게 많은 상황이다
Maker movement
- 한국에서는 Makeall이라는 웹사이트가 중심 커뮤니티
요즘 학습은, 유튜브 > 오픈소스 프로젝트 활용 (깃헙, 깃랩) 순
*NodeMCU: Wifi 모듈 달렸고, nodejs로 IoT 통신기기 만들기 가능
데이터 1, 데이터란 무엇인가?
데이터는 머.. 0과 1의 기록들이지
크기, 다양성, 속도(활용 주기)가 데이터마다 다를 수 있다
테라 > 페타 > 엑사 > 제타 > 요타
개인 디바이스의 데이터는 다 테라 단위가 한계지
처리는 어찌하나?
- 소스 [내/외부]를 구하고
- 수집하고 (로그, 통합, 로봇, RSS feed, Open Api) 등
- 저장하고 [분산 스토리지, 검색, 실시간&배치]
- 분석하고 [분석알고리즘, 스크립트엔진, 분산병렬처리
- 표현하기 [테이블, 차트, 그래프, 웹 등…]
위 처리들을 잘하면 데이터를 활용하는 것
내가 했던 QGIS 데이터 분석도 이런 거였지 ㅋㅋ
데이터 2, 클라우드의 탄생 스토리
2006년 구글 직원인 크리소ㅌ토프 비시글리아가 언급했던 게 ‘클라우드 컴퓨팅’
특징: 실질적으로 무한한 컴퓨팅 자원, 단기계약의 가능, 종량제의 비용 구조(Business Model) 쓴 만큼 낸다.
그리드컴퓨팅 > 유틸리티 컴퓨팅> SaaS (서버에 저장된 소프트웨어를 서비스로 제공) > 클라우드 컴퓨팅(10년도) 이렇게 00년도부터 10년도까지 아주 빠르게 발전해 왔음.
XaaS > X as a Service (Anything as a Service)
IaaS > Infrastructure as a Service (amazon web service-Black friday 등 수요가 특정 시기에 집중되는 경우.. 맞춰서 스펙 높이면 수요 빠지고 노니까 그거 해결해보려고 함) vmware도 IaaS
PaaS > Platform as a Service > MS Azure, oogle App Engine, force.com
SaaS > Software as a Service > Gmail, Google Map, Dropbox, AI OOO (AI as a Service - AIaaS)
데이터 3, 클라우드를 가지고 할 수 있는 일
클라우드로 오기까지 트렌드, 패러다임
- 메인 프레임; 애플리케이션 및 데이터 모두 메인프레임에서 처리
- 클라이언트/서버 ; 단말기 성능 향상되어 분산 처리 가능
- 네트워크 컴퓨팅; 네트워크 속도 발달하여 웹브라우저 기반 애플리케이션 제공
- 클라우드 컴퓨팅; 서버를 직접 보유하지 않고, 가상화(현재는 컨테이너) 기반 분산
네이버에서도 XaaS들을 제공하고 있는데, 한번 볼만 할 것임
네이버 클로바(음성인식, 대화)에서는 데브옵스도 제공하고
이걸 사용하는 업체가 늘어날테니 지금 캠프가 있다는 거겠지
데이터4, 클라우드에 활용되는 기술
- 가상화
하나의 서버에서 여러 애플리케이션을 리소스 낭비 없이 사용하려고 시작됨. 호스트 가상화, 하이퍼바이저 가상화, 컨테이너 가상화로 (도커와 쿠버네티스) 그 세대가 발전하면서 클라우드가 컸음. - 서버리스
클라우드 제공자가 동적으로 자원을 할당해 코드를 실행함. - 로드 밸런싱
특정 서버(IP)에 트래픽이 몰리는 경우 등 부하 분산을 위한 것 - 오토스케일
스케일업, 스케일아웃, 스케일다운, 스케일인… 노드 추가, 서버 업글 등 트래픽에 따른 스케일링의 자동화. 도커와 쿠버네티스가 아주 잘 하는 일 - 데브옵스
개발팀과 운영팀의 원활한 소통을 위한 클라우드의 기능
클라우드 서비스의 제공자들
- Amazon: AWS
- MS: Azure
- Google: GCP
- Oracle: Oracle Cloud
- Tencent: Tencent Cloud
- Naver: Naver Cloud Platform (NCP)
각 제공자들의 서비스들은 겁나 다양함
EC2: 컴퓨팅
S3: 스토리지..
서버리스나 AI 관련한 많은 서비스들도 운용 중
*웨비나나 온라인 교육 등 학습컨텐츠도 많이 제공함
데이터 5, 클라우드 전문가로 가는 길
뭘 배워야 하나?
- 대표적 운영체제부터 인프라 기술, 네트워크 및 XaaS 개념을 이해해야 함
- 가장 좋은 학습 방법 중 하나는 일단 써 보는 것이다.
- AWS re:Invent 같은 벤더사의 행사나 관련 커뮤니티를 하는 게 좋다.
인프라 비용에 대한 초기부담이 거의 없이 서비스를 개발할 수 있는 시대가 10년대부터 시작된거다.
데이터 6, 빅데이터가 뭔가요?
Volume, Variety, Velocy로 정의되는 빅데이터…
신용카드 사기거래 방지에 가장 열렬히 쓰였었음
데이터 수집과 가공이 얼마나 비용이 저렴해지는가에 따라 빅데이터가 함께 발전했고, 디바이스의 센서들로 생산되는 정보가 SNS에 올라가고, 이걸 클라우드로 받아내면서 빅데이터가 ‘의미있는’ 수준으로 점점 발전함
데이터 7, 빅데이터 처리
21세기의 원유로 언급되는 빅데이터…
사물인터넷 발전으로 (phone > SNS) 데이터 증가량이 아주 팍팍 늘어나기 시작
저비용으로 저장 및 분석 가능해지며, AI모델 기반으로 새로운 제품, 서비스 개발 가능한 상황
- 수집
- 가공
- 분석
- 모델링
- 평가
- 배포
모델링 예시 : 일주일 후 날씨 예측 모델, 한달 후 주식거래 동향 예측 모델
수집 예 : 날씨 관련 정보, 주식 거래 정보 …
데이터 수집 채널
- 공고데이터; 공공데이터포털, 기상청날씨마루, 서울시 열린데이터광장 등
- 민간데이터; SKT 빅데이터 허브, 네이버 데이터랩
분석에 대하여
- 전투기 생존확률에 대해
- 무릎이 아프면 비가 온다
- 제비가 낮게 날면 비가 올 확률이 높다
사람은 자기추론, 정형화 과정을 거치는데, 정확한 추론을 만들어내기 힘들어한다.
데이터 8, AI의 탄생 배경
미래에는…
- 터미네이터가 나올까
- AI가 인류를 멸망시킬까
- 로봇이 인류를 잉여 존재로 만들 것인가
개념의 벤 다이어그램
- 인공지능은 머신러닝을 포함한다.
- 머신러닝은 딥러닝을 포함한다.
현대 인공지능은 신경망을 수학적으로 모방하고, 이것을 컴퓨터 회로로 구현한 것이다. 신경망의 가중치와 편향을 구현해 본 거지요.
일반 프로그래밍은 규칙을 우리가 넣어주거나 만들어줘야 한다. 머신러닝은 데이터와 해답을 주면 그 규칙을 컴퓨터가 만드는 거다.
딥러닝은 수학적으로 ‘인과 관계’처럼 정해진 규칙으로 풀어내는 게 아니다.
AI 시대적 이정표를 돌아보면…
- IBM 딥블루; 세계 체스 챔피언 게리 카스파로프 6번 대국해서 이겼고, 사람들이 컴퓨터가 ‘사람의 영역’이라고 생각했던 부분에서도 이길 수 있다는 충격을 받음
- IBM Watson; 퀴즈쇼에서 사람과 대결해서 우승
- Deepmind; AlphaGO; 이세돌 vs 알파고… 4:1로 알파고가 이겼음.
튜링테스트: 기계가 인간과 얼마나 비슷하게 대화할 수 있는지 판별하는 시험
<생각하는 것처럼 보이는> 컴퓨터인지 확인하는 것이며 14년 유진 구스트만이 튜링 테스트에 통과함
비전 > 스마트 제조, 자율주행
음성 >
기타 > 음성 + 시각이 되면 비서 같이..
23년 초에는 생성형 AI가 빡 떴지.
데이터 9, AI를 가지고 할 수 있는 일
사례: 시나리오 투자 결정
- 기존에는 경험 의존도가 높았음
- 투자리스크가 높아 선례가 없는 경우 잘 투자하지 않았음
폭스에서는 투자 프로세스에 AI를 적용해 봤다고 합니다.
영화에 대한 흥행 예측과 마케팅 전략에 사용해싿고 하네요.
모델 개발 및 학습은 ‘영화 팬에 대한 이해도 향상’을 목적으로 했다고 합니다.
Merlin 을 검색해보시면 됩니다.
한국의 사례들을 보고 싶으면 AI Hub 들어가보면 사례가 잘 나와 있습니다.
AI Hub, 서울 열린데이터광장 요 둘이 제일 활성화된 곳..
데이터 10, AI에 사용되는 기술?
개발도구, 프레임워크, 개발언어…
- 언어: 파이썬 가장 많이 사용, C/C++은 처리속도 빠르고 다양한 알고리즘 구현할 때 사용(보통 모듈 개발) 응용개발은 대부분 파이썬..
- 개발도구
- 프레임워크
- 텐서플로우는 자바스크립트용도 있고 IoT용도 있고 프로덕션용도 있음!