코딩 196

[JS-기초편] 7.타이머(Timers)

기본적으로 코드는 동기적으로 실행됩니다. 동기적이라는 뜻은 명령문을 실행해야 할 때 즉시 실행한다는 뜻입니다. 실행을 지연시키거나 작업을 나중으로 지연시키는 개념은 JavaScript의 기본 동작이 아니며 자바스크립트 루프 편 공부할 때 잠깐 겪었을 겁니다. 루프는 각 사이클을 지연 없이 번개처럼 빠른 속도로 실행합니다. 이는 빠른 계산에 적합하지만 우리가 어떤 경우 좀 더 느린 속도로 무언가를 업데이트하려는 경우에는 좋지 않습니다. 즉시 실행되고 있는 작업을 중지 할 수 있는 기능이 존재하지 않는다는 것은 아닙니다. 그에 해당하는 기능은 setTimeout, setInterval 그리고 requestAnimationFrame의 세 가지가 있습니다. 이 기능에 대해 좀 더 알아봅시다. setTimeout..

코딩/Javascript 2020.12.15

[JS-기초편] 6.주석 달기(comments)

우리가 작성한 코드는 브라우저를 위한 것으로 보일 수 있습니다. let xPos = -500; function boringComputerStuff() { xPos += 5; if (xPos > 1000) { xPos = -500; } } boringComputerStuff(); 곧 알게 되겠지만 그렇지 않습니다. 우리 코드에 대한 또 다른 청중이 있습니다. 그 청중은 인간으로 구성되어 있습니다. 여러분과 제가 다른 자바스크립트 개발자들과 함께 일하는 경우가 있습니다. 우리는 종종 남들의 코드를 볼 것이고 남들은 종종 우리의 코드를 볼 것입니다. 이 모든 코드를 가능한 한 효율적으로 보이게 하려면 우리가 아닌 다른 사람이 코드를 보고있을 때 코드가 뭘 의미하고 있는지 명확하게 전달해야 합니다. 솔로 작업을..

코딩/Javascript 2020.12.14

[JS-기초편] 5.반복문 (For, While, Do...While)

무언가를 코딩 할 때 작업을 반복하거나 일부 코드를 여러 번 실행해야 할 때가 있습니다. 예를 들어, 10 번 반복해서 호출하고 싶은 saySomething이라는 함수가 있다고 가정 해 보겠습니다. 한 가지 방법은 복사 및 붙여넣기를 사용하여 함수를 10번 호출하는 것입니다. saySomething(); saySomething(); saySomething(); saySomething(); saySomething(); saySomething(); saySomething(); saySomething(); saySomething(); saySomething(); 위 코드는 우리가 하려고 했던 것을 이루었지만 ... 우리는 이와 같은 방식을 택해서는 안됩니다. 결국 코드 복제는 결코 좋은 생각이 아닙니다. 이제..

코딩/Javascript 2020.12.14

[JS-기초편] 4.조건문 (If, Else, Switch)

우리는 깨어 난 순간부터 깨닫든 모르든 결정을 내리기 시작합니다. 알람을 끕니다. 불을 켜시오. 날씨가 어떤지 보기 위해 밖을 보십시오. 양치질하기. 가운과 모자를 착용하십시오. 달력을 확인하십시오. 문 밖으로 나갈 때 쯤이면 의식적으로 또는 무의식적으로 수백 가지 결정을 내렸을 것입니다. 각 결정은 결국 오늘 하게 될 일에 특정 영향을 미칩니다. 예를 들어 외부 날씨가 추워 보인다면 후드 티나 재킷을 입기로 결정할 수 있습니다. 이 결정을 다음과 같이 모델링 할 수 있습니다. 결정을 내리는 각 단계에서 참 또는 거짓으로 대답 할 수 있는 질문을 스스로에게 물어 봅니다. 이 질문에 대한 답은 다음 단계를 결정하고 궁극적으로 당신이 티셔츠, 후드 티, 재킷인지를 결정합니다. 더 광범위하게 말하면 여러분과 ..

코딩/Javascript 2020.12.14

[JS-기초편] 3.함수(Function)

지금까지 우리가 작성한 모든 코드는 실제로 구조적이지 않습니다. 그저 달랑 한문장이죠. alert("hello, world!"); 이와 같은 코드를 갖는 것은 잘못된 것이 아닙니다. 코드가 단일 명령문으로 구성된 경우 특히 그렇습니다. 하지만 대부분의 경우에는 그렇지 않습니다. 현실 세계에서 사용하는 경우 코드는 이렇게 간단치 않습니다. 예를 들어보겠습니다. 비행기가 이동한 거리를 계산하는 공식을 생각해 봅시다. 학교에서 배운 기억을 되짚어 보면 이동한 거리는 속도와 시간을 곱하여 계산됩니다. 자바스크립트 버전으로 바꿔 보겠습니다. let speed = 10; let time = 5; alert(speed * time); 속도와 시간이라는 두 개의 변수가 있으며 각각 숫자를 저장합니다. "alert"함수..

코딩/Javascript 2020.12.14

[JS-기초편] 2.변수(variable)와 값(value)

JavaScript에서는 우리가 제공하거나 사용하는 모든 데이터는 값을 포함하는 것으로 간주됩니다. 1편에서 배운 아래 예제에서는 "hello, world!"라는 텍스트 값이 "alert" 함수에 전달하는 값을 포함하는 데이터입니다. alert("hello, world!"); JavaScript에게 이러한 단어는 표면 아래에 특정 표현이 있습니다. 그것들은 값(value)으로 간주됩니다. 우리가 그 단어를 입력 할 때 그것에 대해 많이 생각하지 않았을 수도 있지만 JavaScript 세계에서는 모든 데이터가 값(value)으로 간주됩니다. 자, 왜 이것이 중요할까요? 앞으로 자바스크립트에서 우리는 값(value)를 많이 다룰 것이기 때문에 중요합니다. 실수만 하지 않는다면 자바스크립에서 값(value)과..

코딩/Javascript 2020.12.14

[JS-기초편] 1.소개

1. 자바스크립트 소개 HTML은 구조와 내용에 관한 것입니다. CSS는 HTML을 멋지게 만드는 것입니다. 둘을 잘 조합하면 아주 멋진 사이트를 만들 수 있습니다. CSS와 HTML만 사용하여 사이트를 구축해도 멋진 사이트를 만들 수 있지만 그 사이트는 매우 정적입니다. 사용자의 행동에 반응하지 않습니다. 마치 재미없는 TV드라마의 재방송을 계속해서 보는 것과 같습니다. 잠시 동안은 재미있지만 결국 지루해집니다. 오늘날 웹은 정적이 아닙니다. 웹은 HTML과 CSS 자체가 제공 할 수 있는 것 이상의 상호 작용과 커스터마이징 기능을 갖추고 있습니다. 콘텐츠가 살아 나게 하려면 외부의 도움이 필요합니다. 이 때 필요한 것이 바로 자바스크립트(JavaScript)입니다! 2. 자바스크립트는 무엇? Java..

코딩/Javascript 2020.12.13

자바스크립트 웹 스크래핑 맛보기 - 2편

안녕하세요? 1편에 이어 2편에서 자바스크립트로 웹 스크래핑하는 방법에 대해 알아 보겠습니다. https://cpro95.tistory.com/71 자바스크립트 웹 스크래핑 맛보기 안녕하세요? 오늘은 웹 스크래핑 (web scrapping)에 대해 알아보겠습니다. 웹 스크래핑이 왜 필요할까요? 대학 과제나 회사 업무에서 간혹 기초 자료가 필요한 경우가 있습니다. 이럴때 보통 구글 검 cpro95.tistory.com 1편 마지막에서 문제점이 발생됐는데요, 모든 차종 개수와 판매대수 개수가 틀립니다. 다른 차종의 판매대수 css 클래스는 "total_num"인데, "버스/트럭 (현대)" 차종은 판매대수의 css 클래스가 "total_num"이 아닌 그냥 "num"입니다. 그 외 "카운티", "더 뉴 G70..

코딩/Javascript 2020.12.13

자바스크립트 웹 스크래핑 맛보기

안녕하세요? 오늘은 웹 스크래핑 (web scrapping)에 대해 알아보겠습니다. 웹 스크래핑이 왜 필요할까요? 대학 과제나 회사 업무에서 간혹 기초 자료가 필요한 경우가 있습니다. 이럴때 보통 구글 검색을 통해 자료를 찾았어도 만약 그 양이 방대할 경우 일일이 시간 낭비할 수 없습니다. 이럴 때 필요한게 웹 스크래핑인데요, 오늘은 자바스크립트 정확히는 NodeJS로 알아 보겠습니다. 일단 웹 스크래핑 목적이 있어야 되는데요. 2020년 현대기아차 판매실적을 알아 보겠습니다. 국내에서 판매되는 국산차와 수입차 통계 실적을 잘 보여주는 곳이 있습니다. http://auto.danawa.com/auto/?Work=record 2020년 12월 판매실적 | 자동차 백과 : 다나와 자동차 2020년 12월 국..

코딩/Javascript 2020.12.12

C++에서 spdlog 를 활용해서 log를 좀 더 쉽게 해보기

안녕하세요? C와 C++ 코딩을 할 때 간단하게 디버그할 때나 또는 나중을 위해서 로그파일을 남길 필요가 있는데요. 이럴때 필요한 유틸중에 C++ 세계에서는 유명한게 spdlog입니다. github 링크: https://github.com/gabime/spdlog gabime/spdlog Fast C++ logging library. Contribute to gabime/spdlog development by creating an account on GitHub. github.com 이 spdlog 사용법을 알아 보겠습니다. 일단 C++ 컴파일을 위한 세팅을 해보겠습니다. mkdir spdlog-test cd spdlog-test mkdir src mkdir external touch CMakeLists..

코딩/C와 C++ 2020.12.11