161217_생활코딩 보편적이지 않은 코딩 - 광주편 후기

늦었다.


10시 시작인데,


9시 50분이다.






이고잉 님의 생활코딩 광주 강연에 가야한다.



장소는 어제와 같은 광주창조경제혁신센터.







도착하니 10시 30분.







내가 중국어 공부를 시작했다.






처음 배우는 것이 가장 좋은 것이다.

빈도수가 많다.

뒤에서 배우는 것은 어렵고 특수한 것이다.

문제는 시험이 거기서 나와서

시험에 의해서 인식에 외곡이 생겨서 정말 중요한 것을 소홀히 한다.




진도에 맞춰서 같은 속도로 시작한다.





내가 어떤 것을 배울 때 빈도수가 가장 높은 것 부터 검색한다.
frequency of ( html ) ...




우리는 진도의 속도감에 익숙해져서 진도를 빼려한다.







실습을 시작한다.



내 강의는 온라인 강의에 있고, 깊은 수준까지 있다.







크롬 - 우측 버튼 - 검사 - console







여기서 자바스크립트를 실행시켜서


웹페이지를 제어할 수 있다.




웹페이지에서 body라는 테그가 있다.


body는 웹페이지를 감싸고 있는 전체의 태그다.





프로그램할 때는 1+1로 보지 말고

약속으로 봐야 한다.



코드를 입력할 때 다시입력하지 않고,

위쪽 화살표를 만든다.




자바스크립트는 현재 내가 보고 있는 웹페지를 바꿔준다.



코드간 간격을 띄울 때는


시프트 + 엔터를 누른다.






웹페이지에 단어가 몇개 들어 있는지를 보려면 한 줄 짜리 코드가 필요하다.


그러나 모든 사람이 사용하려는 코드로 만드려면 많은 다양한 코드를 넣어야 한다.


혹시 나쁜 사람이 확률적으로 존재하기 때문이다.







업계에서는 사용자는 고양이다.



고양이가 지나가도 운영될 수 있도록 만들어라는 말이 있다.



엉뚱한 정보를 블럭하는 코드가 상당히 많이 필요하다.






개인적인 코딩이 보편적인 코딩으로 나아가는 메시지를 준다.



처음부터 보편적인 코딩을 추구하지 않고, 개인적인 코딩을 추구하라.





지금은 분해하지 않고 통으로 배운다





document.querySelector('body').innerText



-> 텍스트만 보여준다.


document.querySelector('body').innerText.length.

->단어의 개수




document.querySelector('body').innerText.match(new RegExp('is','ig'))

-> is 의 개수

["is", "IS", "is", "is", "is", "IS", "is", "is", "is"]





개발은 '진실'의 문제


강의는 '인식'의 문제





개발은 된다. 왜 되는지는 모른다. 그러나 그것이 동작하는 것은 진실이다.


강의는 내가 여기서 거짓말을 해도 청자는 모를 수 있다.


그러나 흐름이 끊기거나 논리가 바뀌면 헤멜 수 있다.




프로그램이 처음이면 처음에는 나만의 코딩을 해보라.


나 자신을 위한 아주 짧은 코딩을 해보라.


알게 되는 것을 표현해보라.


인간의 뇌는 특이해서 내가 무슨 생각하고 어떤 지식을 가지고 있는지를 가만히 있으면 알 수 없다.


지식은 맥락적으로 튀어나온다.


자꾸 꺼내놔야하는데


꺼내놓기 좋은 것은 설명해야 한다.


다른 사람이 봤을 때 도움이 되는 설명이 되어야 한다.


그것이 자신만의 포토폴리오가 된다.


코딩 실습과 직접 자기 프로젝트를 가지고 있는 것. 컨탠츠를 만드는 것이 필요하다.




document.querySelector('body').innerText.match(new RegExp('is','ig')).length

-> 9



is 의 개수





내가 생각하는 코드의 이미지는 계산기다.


계산기를 켜듯이 코드를 켠다.



주기성이 달라지면, 이 코드를 정교히 짜는 동기가 생긴다.





인간의 두뇌는 언제나 쓸 수 있기 때문에


언제나 능수능란하게 쓸 수 있다.





일을 하는 데에 코딩이 쉽다는 경제성이 있다.





document.querySelector('body').innerText.match(new RegExp('컴퓨팅|사고','ig')).length


->83



컴퓨팅 과 사고가 동시에 몇 개? 앤터 위 '|' 사용





우리가 사용하는 수많은 앱들이 사실은 한줄짜리로 끝난다.


개인적 코딩은 쉽다.




코드가 한 줄이 늘어나는 것은


한 줄이상의 의미다.




내 강의중 웹어플리케이션 강의가 있는데,


초입에서 체크박스가 하나가 있으면 테스트가 두 번


체크박스 두 개 있으면 테스트 네 번


세 개면 여덟개




체크박스가 50개면  2의 50승이 필요하다. 1000조.



해킹을 당하는 것은 기능이 추가 될 때, 누구도 방문하지 않는 경우의 수로 들어간다.




소프트웨어는 건물과 비교하자면


건물은 복잡해지는 데 한계가 있다.


건물이 수정하기 어려운 것은 물리적이라서 어렵다.


소프트웨어의 어려움은 복잡성에 있다.


인간은 인간이 복잡해질 수 있는 가장 불가능한 순간까지 빠르게 갈 수 있다.





소프트웨어를 바꾸는 것은 세워진 건물을 1Cm 옮기는 것과 비슷할 수도 ..



보편성있는 프로그램은 굉장히 어려운 복잡성이 있다.






(이고잉) 바탕화면에 구글 어스를 쓴다.




크롬에 extensions getstarted 검색한다



https://developer.chrome.com/extensions/getstarted


로 들어간다.




{
  "manifest_version": 2,

  "name": "Getting started example",
  "description": "This extension shows a Google Image search result for the current page",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "activeTab",
    "https://ajax.googleapis.com/"
  ]
}
를 복사한다.





브라켓 프로그램을 설치한다.



새폴더를 열고


복사한 코드를 붙인다.



manifest.json 으로 만들어야 하는 약속이다.





프레임웤은 대가가 있다.


기본적인 언어를 사용해서


복잡하지 않은 프로그램을 만들면 어느 순간 프레임웤이 필요한 순간이 있다.





크롬 확장 기능은 크롬이라는 브라우져 위에서 동작하는 에플리케이션을 만드는 것이다.


이것은 웹기술이 아니다.




크롬 확장 기능을 만들면 느껴지는 것이 있는데,


크롬 확장 기술의 UI가 웹기술이다.



지금 쓰고 있는 브라켓 역시 충격적인 출생이 있다.


Debug 보면 개발자 도구 보기를 보면


Html이 나온다.



브라켓은 컴퓨터에서 동작하는 프로그램으로 생각하지만


사실 html 기반 이다.


최근의 웹은 탈웹화 하고 있다.


웹이 아니라는 분야까지 확장하고 있다.




이 세상에서 가장 많은 정보 기술자가 있는 분야가 웹이다.


플랫폼을 지양하는 사업자들은


그 플랫폼 위에서 동작하는 생태계를 만드려 한다.



이 세상에서 가장 많은 사람들이 사용하는 웹.


따라서 웹을 배우는 것은 크롬과 안드로이드앱에 연결된다.





크롬 확장 기능에서 사용하는 전용 명령어가 있다.


크롬명령 사용 설명서에 내용이 있다.





코딩은 설명을 해 봐야 한다.


이야기 형태로 머리 속에 남아야 장기 기억으로 간다.




chrome.tabs.executeScript({code:"document.querySelector('body').innerText.match(new RegExp('is','ig')).length"},function(r){
    alert(r[0]);
});



chrome(크롬명령).tabs(현재명령).executeScript(내가 실행하는 명령)({code(코드를 넣었을 때 실행된 결과):"document.querySelector('body').innerText.match(new RegExp('is','ig')).length"},function(r(결과,result)){
    alert(r[0(결과를 줄 때 여러 개 값을 배열로 준다. 첫번째 값을 가져오겠다]);
});



에러가 난다.


에러가 나면 문제에 다가간다.


확장프로그램의 오류를 보려면 확장 프로그램 위에 오른쪽 버튼을 누르면 팝업검사가 뜬다.






<복잡성의 문제>



슬럼프 - 자기가 알고 있는 복잡성과 실제 느끼는 있는 괴리가 커지면 느껴지는 것


처음에는 일 속도가 빠르거나 뒤로 갈수록 일이 궁 떠지면 생각이 변해진다.






이렇게 쓰다보면


자기 혼자 쓰다보면


경제성이 없어지는 때가 온다.


나 혼자 쓰려고 1년간 프로젝트를 할 것인가?


이 때 갈림길에 선다.


내가 프로그램에 끼워서 맞춰서 살 것인가?


앱스토어에 올려서 1년간 프로젝트를 진행한다.


누구도 대신해 줄 수 없는 고민을 시작한다.




크롬의 앱스토어는


검색하면


크롬 계발자 대쉬보드(계기판)이 있다.







프로그램을 만들고 웹스토어에 등록하는 화면이다.







프로그램을 수정할 때마다 계속 새로고침한다.







확장프로그램을 클릭하면 is 가 몇개 있는지 세어보는 프로그램이다.





확장프로그램에 올릴 때는 내 이름을 찾는 프로그램으로 소스를 바꿔서 올렸다.







공부를 할 때 너무 큰 도약은 현실적이지 않다.


공부할 때 스스로 계단을 만든다.


그 둘의 교집합이 필요하다.





7년동안의 내공을 고스란히 느낄 수 있는 시간이었다.


오래하고, 그것을 남기는 것이 중요하다는 것을 알았다.




댓글