코딩 196

[JS-중급편-이벤트] 2. 이벤트 캡쳐링, 버블링

지난 튜토리얼에서는 이벤트를 수신하기 위해 addEventListener 함수를 사용하는 방법을 배웠습니다. 이번 튜토리얼에서는 이벤트 캡쳐링(Capturing)과 버블링(Bubbling)에 대해 알아보겠습니다. 이벤트 중단 / 이벤트 진행 본격적인 이해를 돕기 위해 아래 HTML을 봅시다. one two three 보시다시피 별 볼일 없는 HTML입니다. 위 HTML의 DOM 표현은 아래와 같습니다. 자세하게 살펴보겠습니다. buttonOne 요소를 클릭한다고 가정해 보겠습니다. 이전에 배웠던 것처럼 버튼을 클릭하면 우리는 클릭 이벤트가 시작될 것이라는 것을 알고 있습니다. 여기서 중요한 점은 정확히 클릭 이벤트가 시작되는 곳입니다. 클릭 이벤트 (거의 모든 다른 JavaScript 이벤트와 마찬가지로..

코딩/Javascript 2021.02.01

GoLang 클로저 함수

안녕하세요? 고랭의 클로저 함수에 대해 알아 보겠습니다. 클로저는 익명 함수(anonymous function)의 특별한 경우입니다. 클로저는 함수 본문 외부에 정의 된 변수에 액세스하는 익명 함수입니다. 예제를 통해 설명하겠습니다. package main import "fmt" func main() { l := 20 b := 30 func() { // area 라는 int 타입의 변수를 설정합니다. var area int // 이 변수에 l과 b를 이용해 값을 저장합니다. // 그런데 l 과 b는 area가 현재 있는 스코프에 없는 변수입니다. // 그러나 이 익명 함수는 클로저라는 특별한 케이스로 // 본문 외부에 정의된 변수인 l과 b에 액세스 가능합니다. area = l * b fmt.Printl..

코딩/GoLang 2021.01.28

GoLang 익명 함수(Anonymous Function)

안녕하세요? 고랭 익명 함수에 대해 알아 보겠습니다. 익명 함수는 식별자없이 선언 된 함수입니다. 익명 함수는 표준 함수처럼 입력을 받고 출력을 반환 할 수 있습니다. 1. 변수에 할당된 익명 함수 package main import "fmt" // var area 라고 변수를 설정하는 형식인데 // area 변수에 함수를 지정했습니다. // 이 형식도 익명 함수의 일종입니다. var ( area = func(l int, b int) int { return l * b } ) func main() { fmt.Println(area(20, 30)) } 2. 익명 함수에 인수 전달. package main import "fmt" func main() { // 익명함수를 선언한 동시에 실행까지 했습니다. // ..

코딩/GoLang 2021.01.28

GoLang의 Higher Order Function

안녕하세요? GoLang의 고차함수(Higher Order Function)에 대해 간단히 알아 보겠습니다. 먼저, 고차 함수는 함수를 인수로 받거나 함수를 반환하는 함수입니다. 즉, 인수로 취하거나 또는 반환되어 다른 함수에서 작동하는 함수를 고차함수라고 부릅니다. 예제를 들어 보겠습니다. package main import "fmt" func sum(x, y int) int { return x + y } // 고차함수 // partialSum 함수는 x 라는 int 타입을 인수로 받고 // 리턴하는 것은 바로 func(int) int 라는 함수를 리턴합니다. func partialSum(x int) func(int) int { // partialSum 함수가 리턴하는게 func(int) int 니까 ..

코딩/GoLang 2021.01.28

GoLang에서 Map Iterate, add, update 하기

안녕하세요? GoLang에서 자료형으로 많이 쓰이는 Map 해쉬테이블을 다루기 위해서는 for range 루프를 사용하면 됩니다. 그리고 map 자료의 간단한 iterate, add, update, delete 에 대해 예제를 통해 알아보겠습니다. package main import "fmt" func main() { // employee 라는 map 타입의 자료가 있습니다. var employee = map[string]int{ "Mark": 10, "Sandy": 20, "Rocky": 30, "Rajiv": 40, "Kate": 50, } // employee map 타입의 자료를 iterate하는 방법은 // for range 문구를 사용하는 겁니다. // key, element 를 지정하면 해당..

코딩/GoLang 2021.01.28

[JS-중급편-이벤트] 1. 자바스크립트 이벤트

눈치채지는 못했겠지만, 대부분의 애플리케이션과 웹사이트는 가만히 있으면 그냥 그 자체로 지루합니다. 애플리케이션과 웹사트가 엄청난 팡파르와 돌풍을 일으키며 시작했지만, 우리가 그 애플리케이션과 상호작용을 하지 않는다면 그 애플리케이션은 가치가 없게 되겠죠. 그 이유는 간단하다. 우리의 애플리케이션(응용 프로그램)은 우리가 하고자 하는 행동에 반응하기 위해 존재합니다. 우리가 침대에서 일어나 하루를 준비하듯 응용 프로그램도 나름 각각의 동기부여가 내재되어 있습니다. 응용 프로그램이 하는 일은 우리가 그 프로그램에게 무엇을 하라고 지시하는 겁니다. 바로 이 점이 오늘의 주제입니다. 우리가 응용 프로그램들에게 무엇을 해야 하는지 지시한다면 반대로 그 프로그램은 어떻게 알아챌까요? 바로 이벤트라는 것에 반응되도..

코딩/Javascript 2021.01.28

GoLang에서 URL 파싱하기

안녕하세요? Go 언어(GoLang)은 웹 개발에 아주 유용한 언어인데요. 웹 개발에서 가장 중요한 URL 파싱에 대해 예제를 통해 알아 보겠습니다. 위 그림처럼 먼저 URL 구조체의 구성요소에 대해 알고 있어야 합니다. Scheme, Opaque, User, Host, Path, RawPath, ForceQuery, RawQuery, Fragment, RawFragment가 있습니다. 각각의 예제는 아래 코드를 참조해서 이해하면 빠릅니다. package main import ( "fmt" "log" "net" "net/url" "strings" ) func main() { // URL 파싱을 위한 예제 URL을 모은 스트링 타입의 슬라이스입니다. // 각종 예제를 위해 어려운 URL만 모아 놨습니다. ..

코딩/GoLang 2021.01.26

Go 언어, GoLang 강좌 튜토리얼 소개

안녕하세요? 개인적으로 Go 언어에 대해 호감이 생겨 몇년 전부터 독학으로 공부하고 있었습니다. 여기 제가 인터넷에서 Go 언어에 대해 공부한 유용한 사이트를 소개할려고 합니다. 그리고 앞으로 이 블로그에서는 Go 언어 샘플 코드를 분석하는 기회를 가져 볼 까 합니다. 많은 관심 부탁드립니다. 1. Go 프로그래밍 입문(An Introduction to Programming in Go) http://codingnuri.com/golang-book/index.html Go 프로그래밍 입문 codingnuri.com 2. 예제로 배우는 Go 프로그래밍 http://golang.site/ 예제로 배우는 Go 프로그래밍 쉽고 재미있는 Go 프로그래밍 예제로 배우는 Go 프로그래밍 I like a lot of t..

코딩/GoLang 2021.01.26

[JS-중급편-DOM] 6. DOM 생성, 삭제, 복제

우리는 HTML 요소를 허공에 만들고 몇 줄의 JavaScript를 사용하여 DOM에 추가할 수 있습니다. DOM에서 요소를 동적으로 생성하고 수정하는 기능은 우리가 즐겨 찾는 많은 웹 사이트와 애플리케이션을 다이내믹하게 만드는 중요한 요소입니다. HTML에 모든 것을 미리 정의하는 것은 매우 제한적입니다. 우리는 새로운 데이터를 가져올 때, 또는 페이지와 상호 작용할 때, 또는 더 많이 스크롤할 때, 그리고 다른 작업을 수행할 때 콘텐츠가 변경되고 적응되기를 원합니다. 이 튜토리얼에서는 이 모든 작업을 수행하는 기본 사항을 다룰 것입니다. 요소를 생성하고, 요소를 제거하고, 부모 요소를 다시 만들고, 요소를 복제하는 방법을 살펴 보겠습니다. 요소 생성 대화형 사이트 및 웹앱에서 HTML 요소를 동적으로..

코딩/Javascript 2021.01.24

라즈베리파이로 NAS 서버 만들기 3편 - 토렌트 서버 (transmission)

안녕하세요? 지난 시간에 이어 라즈베리파이로 NAS 서버 만들기를 계속 하도록 하겠습니다. 1편. cpro95.tistory.com/135 라즈베리파이로 NAS 서버 만들기 안녕하세요? 라즈베리파이로 여러 가지를 만들 수 있는데 그중 가장 쉬운 게 아마 서버 구축일 겁니다. 보통 집에 왜 라즈베리파이 서버를 구축하려고 하냐면 여러 가지 이유가 있겠지만 외부에 cpro95.tistory.com 2편. cpro95.tistory.com/136 라즈베리파이로 NAS 서버 만들기 2편 - ftp 안녕하세요? 지난시간에 라즈베리파이로 서버 구축하는 방법에 대해 알아 봤는데요. https://cpro95.tistory.com/135 라즈베리파이로 NAS 서버 만들기 안녕하세요? 라즈베리파이로 여러 가지를 만들 수 ..