본문 바로가기

분류 전체보기110

go get과 go install (Golang) golang에서 보통 라이브러리를 다운받을 때 go get 명령어를 사용하게 됩니다. 그런데 go에서는 go install 이라는 명령어도 있고 이는 분명 햇갈리게 합니다. 그럼 go get과 go install의 차이는 무엇일까요? go get은 package를 다운로드한 후에 go install을 실행합니다. (이때 -d 옵션을 이용하면 다운로드만 합니다. 즉, 컴파일은 안합니다.) go install은 다운로드된 package를 컴파일합니다. 이를 활용하면 go get으로 어떤 패키지를 다운받고 다운로드된 패키지에 추가적인 설정 등으로 변화를 준다음 go install로 컴파일하는 용도로 사용할 수 있습니다. go get에는 -u 옵션도 있는데 이는 다운로드 받으려는 패키지가 이미 존재한다면 새로운.. 2021. 5. 11.
자바스크립트 싱글스레드와 Event Loop 자바스크립트는 싱글 스레드 언어입니다. 그러나 분명히 promise, callback 등을 이용한 비동기 프로그래밍이 가능합니다. 많은 사람들이 이런 부분에 있어서 헷갈려하고 저도 역시 헷갈려서 정리해보았습니다. 앞서 말했듯이 자바스크립트는 싱글 스레드 언어 입니다. 하나의 call stack을 갖고 있고 한번에 하나의 코드를 실행할 수 있습니다. 그러나 자바스크립트는 브라우저 위에서 작동합니다. 그리고 브라우저는 멀티스레딩이 가능합니다. 즉, 자바스크립트는 싱글 스레드 언어이지만 런타임시 브라우저 위에서 작동하고 브라우저는 멀티 스레딩이 가능하기 때문에 비동기 프로그래밍이 가능한 것입니다. 이를 이해하려면 event loop, stack, task queue의 개념에 대해 이해해야합니다. stack은 .. 2021. 5. 8.
javascript var을 쓰지 말아야 하는 이유 JS에서는 변수 선언을 let, var로 할 수 있는데 더 이상 var은 쓰지 않는게 권장됩니다. 이유가 무엇일까요? 우선 var는 아래와 같은 코드가 에러없이 작동하게 됩니다. 1 2 3 num = 10; var num; console.log(num) cs 선언을 하기전에 10이란 값을 할당했지만 num에는 10이란 값이 잘 들어갑니다. 이렇게 선언의 위치에 상관없이 선언한 부분을 제일 위로 올려서 인식하는 것을 hoisting이라고 합니다. 또한, var는 block을 무시합니다. 1 2 3 4 5 { var num; num = 10; } console.log(num) cs 위 코드를 보면 block 안에 존재하는 num변수를 block밖에서도 사용할 수 있습니다. 2021. 5. 3.
html파일안에서 script tag의 위치 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Document Colored by Color Scripter cs 위와 같은 html이 있을 때 보통 의 위치에 따라 장단점이 발생합니다. 이번 글에서는 이에대해 알아보겠습니다. 우선 head tag안에 넣게 되는 경우를 보겠습니다. 브라우저는 위에서부터 html을 한줄씩 파싱하게 됩니다. 그러다가 중간에 script tag가 보이면 서버에 필요한 js 파일들을 요청하고 다운받게 됩니다. 이 과정이 끝날때까지 html 파싱을 잠시 멈추게됩니다. 즉, 만약 js파일이 꽤 크다면 사용자는 웹사이트를 보기까지 시간이 꽤 걸릴 것입니다. body tag 끝에 놓는 경우를 보겠습니다. body tag 끝에 놓으면 html을 막힘없이 쭉 파싱을.. 2021. 5. 3.