코딩 196

[JS-중급편-OOP] 11. 부울린(Boolean) 타입과 비교연산자(===, !==)

부울린 타입은 공부하기 좀 지루합니다. 이유는 다음과 같습니다. 아래 코드는 true 또는 false를 사용하여 변수를 초기화할 때마다 부울린 타입을 생성합니다. let sunny = false; let traffic = true; 축하합니다. 위 코드를 이해한 것으로도 부울린 타입을 80% 정도 이해한 것입니다. 물론 80%는 충분치 않을 수도 있습니다. 여기에서 조금 더 확장 할 것은 나머지 20%에 해당되는 Boolean Object와 Boolean 함수, 그리고 아주 중요한 비교 연산자 ===, !== 에 대해 알아볼 예정입니다. Boolean 객체 부울린 타입은 보통 프리미티브로 사용됩니다. 부울린 프리미티브가 어떻게 생겼는지 조금 전 위에서 본 코드를 다시 보겠습니다. let sunny = f..

코딩/Javascript 2021.01.02

티스토리 코드 하이라이트(highlight.js) 적용하기

안녕하세요? 티스토리로 코딩 블로그를 운영하면서 코드 블록에 넣은 코드가 좀 더 멋지게 보이는 방법이 없을까 고민을 많이 하는데요. 티스토리 플러그인에 하이라이트(Highlight.js)가 있습니다. 그런데, 플러그인에 있는 하이라이트는 코드 스타일이 몇가지 없어 본인이 원하는 스타일의 테마를 적용하기가 어렵습니다. 그래서 직접 HTML 파일을 열어 편집해서 적용하도록 하겠습니다. 일단 Hightlight.js 코드 홈페이지에서 다운 받을게 있는데 먼저 다운로드하도록 합시다. https://highlightjs.org/download/ Getting highlight.js Hosted A prebuilt version of highlight.js with 39 commonly used languages ..

코딩/Javascript 2020.12.31

티스토리 HTML 스킨 편집하기

안녕하세요? 티스토리 블로그 사용자입니다. 티스토리 블로그는 네이버 블로그보다 좀 더 사용자 친화적이며, 잘 설계된 정적 사이트 제너레이터라고 볼 수 있습니다. 정적 사이트 제너레이터 즉, Static Site Generator의 종류는 많습니다. Node 쪽에는 GhostJS가 유명하고, Golang 쪽에서는 Hugo 가 유명하고, C++ 및 기타 언어로도 많은 종류가 있습니다. 본인은 GhostJS 를 라즈베리파이에 한번 설치해서 블로그 운영 기초를 한번 배웠었는데요. 아래 링크를 참조하시면 정적 사이트 제너레이터가 어떻게 작동하는지 이해하실 수 있을 겁니다. https://cpro95.tistory.com/2 라즈베리파이에 고스트 블로그 설치하기 라즈베리파이에 고스트(GhostJS) 블로그 설치하기..

코딩/Javascript 2020.12.31

[JS-중급편-OOP] 10.클래스

객체에 관해서는 지금까지 많은 부분을 다루었습니다. 객체를 만드는 방법을 알아 보았고, 프로토타입 상속에 대해 배웠고, 객체를 확장하는 마법도 보았습니다. 이 모든 과정에서 우리는 매우 낮은 수준에서 수박 겉핥기만 했습니다. 좀더 깊게 이해하는게 필요할 때입니다. 그래서 이 모든 것을 단순화하고 쉽게 이해할 수 있게 ES6 버전의 JavaScript에서는 클래스라는 것을 지원합니다. 다른 객체 지향 프로그래밍 언어에 대한 배경 지식이 있는 분들은 아마도 그 용어에 익숙 할 겁니다. 자바스크립트 세계에서 클래스는 특별한 것이 아닙니다. 객체로 작업 할 때 입력해야 하는 내용을 단순화하는 몇 가지 새로운 키워드와 규칙에 지나지 않습니다. 다음 섹션에서는 이것이 의미하는 바를 좀더 살펴 볼 겁니다. 클래스 문..

코딩/Javascript 2020.12.30

stdbool.h 과 stdint.h 강의

안녕하세요? C언어가 발전되면서 기존에 없던 기능이 추가 되었는데요. C99 에 추가된 stdbool.h 과 stdint.h에 대해 알아 보겠습니다. 컴파일 할때 gcc -std=c99 위와 같이 옵션을 지정하면 됩니다. 최근 컴파일러는 알아서 해주기도 합니다. stdbool.h 먼저, stdbool.h 입니다. C언어에서는 if 문에서 참과 거짓을 0과 0이 아닌 수로 구분합니다. 즉, 0이면 거짓, 0이 아니면 참으로 표현합니다. #include int main() { int b1 = 0; if (b1) // b1이 true인지 검사 printf("true\n"); // b1이 참이면 true가 출력됨 else printf("false\n"); return 0; } 위 코드에서 보시면 b1 이 0 이..

코딩/C와 C++ 2020.12.30

2편-예제를 통한 C 언어 기초 강의

안녕하세요? 지난 시간에 이어 예제를 통한 C언어 기초 강의 2편을 시작해 보겠습니다. 1편은 아래 링크 참고 바랍니다. https://cpro95.tistory.com/118 1편-예제를 통한 C 언어 기초 강의 C는 프로그래머라면 가장 먼저 배우는 언어인데요. 저도 중학교 2학년때 부터 독학으로 Turbo C 책을 독파한 적이 있습니다. 정말 애증의 언어이며, 프로그래밍의 가장 기초적인 언어라고 생각합 cpro95.tistory.com 그럼 1편에서의 코드를 보고 이어서 진행해 보겠습니다. #include "args.h" char* helptext = "Usage: hexview [file]\n" "\n" "Arguments:\n" " [file] File to read (default: STDIN)..

코딩/C와 C++ 2020.12.30

1편-예제를 통한 C 언어 기초 강의

C는 프로그래머라면 가장 먼저 배우는 언어인데요. 저도 중학교 2학년때 부터 독학으로 Turbo C 책을 독파한 적이 있습니다. 정말 애증의 언어이며, 프로그래밍의 가장 기초적인 언어라고 생각합니다. 그래서 이번에 예제를 통한 C 언어 기초 강의를 시작해 볼까 합니다. 많은 관심 부탁드립니다. 먼저, 우리가 만들려고 하는 프로그램을 정해야 합니다. 목적이 있어야 과정이 생기니까요! 일단 1편이니까 간단하게 파일시스템의 IO와 커맨드라인 아규먼트 파서(parser)를 알아 볼까 싶습니다. 파일시스템과 Argument Parsing을 할 수 있는 프로그램으로 파일의 Hex코드를 볼수 있는 HexView를 만들어 볼까 합니다. 이번 강의는 어느 정도의 C언어에 대한 기본 지식이 있어야 되며, 그렇다고 고난이도..

코딩/C와 C++ 2020.12.29

[JS-중급편-OOP] 9.빌트인 객체 확장

우리가 지금까지 알고 있듯이 JavaScript는 빌트인 객체가 잘 제공되는 언어입니다. 이러한 빌트인 객체는 텍스트, 숫자, 데이터, 날짜 등으로 작업할 때 많은 핵심 기능을 제공해 줍니다. 자바 스크립트에 익숙해지면 점점 더 빌트인 객체에 대해 더 완벽하게 이해하고 싶어할 겁니다. 배열을 셔플(shuffle)할 수 있는 다음 코드를 예로 들어 알아 보겠습니다. function shuffle(input) { for (let i = input.length - 1; i >= 0; i--) { let randomIndex = Math.floor(Math.random() * (i + 1)); let itemAtIndex = input[randomIndex]; input[randomIndex] = input[i..

코딩/Javascript 2020.12.27

[JS-중급편-OOP] 8.객체 완전 분석(Objects)

이전 튜토리얼에서 우리는 JavaScript의 객체가 무엇인지, 어떻게 작동되는지에 대한 매우 높은 수준의 개요를 보았습니다. 이 튜토리얼에서는 이전 튜토리얼을 거대한 빙산의 일각처럼 보이게 할 것입니다. 여기서 할 일은 객체를 더 자세히 살펴보고 객체 사용, 자체 사용자 정의 객체 생성, 상속, 프로토타입 및 this 키워드와 같은 고급 주제를 다루는 것입니다. 객체 만나보기 null 과 undefined를 제외한 거의 모든 항목은 객체(Object)와 직접 관련이 있거나 필요에 따라 하나가 될 수 있습니다. Object는 우리가 속성이라고 부르는 key 와 value 쌍을 지정할 수 있는 기능이 있습니다. 이것은 hashtables, associative arrays, dictionaries 과 같은..

코딩/Javascript 2020.12.26

[JS-중급편-OOP] 7.Getters and Setters

지금까지 사용했던 데이터 속성을 넘어서 접근자 속성과 속성을 읽고 설정하는 방법을 완전히 제어 할 수있는 getters 및 setters의 역할에 대해 알아보십시오. 지금까지 작업 한 속성을 데이터 속성이라고합니다. 다음은 이름을 지정하고 값을 할당하는 속성입니다. let foo = { a: "Hello", b: "Monday" } 값을 다시 읽으려면 값에 직접 액세스하기만 하면 됩니다. console.log(foo.a); 이 속성에 값을 쓰는 것은 우리가 알고 있는 방법이 맞습니다. foo.a = "Manic"; 값을 설정하고 읽는 것 외에는 우리가 할 수있는 일이 별로 없습니다. 이제 속성 읽기 및 속성 쓰기의 기능이 다음과 같으면 어떨까요? 기존 문법을 유지하면서 속성 값을 읽고 쓸수 있기 백그라운..

코딩/Javascript 2020.12.26