본문 바로가기

Language

(16)
[기초] Go 기초 정리 - 2 (For, If, Switch, Defer) Tour of Go를 기반으로한 Go의 기본 내용입니다. For Go는 for라는 단 하나의 반복 구조를 가짐. for 반복문은 ;로 구분되는 세 가지 구성 요소를 가짐 초기화 구문 : 첫 번째 iteration 전에 수행. 조건 표현 : 매 모든 iteration 이전에 판별. 사후 구문 : 매 iteration 마지막에 수행. 초기화 구문은 주로 :=를 이용한 변수 선언이고, for 스코프 내에서만 유효하다. 반복문은 조건 판별이 false일 경우, 종료될 것. C, Java, Javascript와 같은 언어들과 달리, Go는 for의 세가지 구성 요소를 감싸는 괄호는 없고, { }괄호가 항상 필수. package main import "fmt" func main() { sum := 0 for i :..
[기초] Go 기초 정리 - 1 (import, 함수, 변수, 상수, 자료형) Tour of Go를 기반으로한 Go의 기본 내용입니다. Import 한줄씩 써도되고, 하나로 묶을 수도 있다.(factored import) package main import ( "fmt" "math" ) func main() { fmt.Printf("Now you have %g problems.\n", math.Sqrt(7)) } 함수 param에서 변수 이름 뒤에 type이 온다. (Go 선언 Syntax 관련 번역) package main import "fmt" func add(x int, y int) int { return x + y } func main() { fmt.Println(add(42, 13)) } 두 개 이상의 연속된 이름이 주어진 함수 매개변수가 같은 type일 때. func a..
동작 파라미터화 코드 전달하기 ※ 해당 내용은 JAVA8 in action 책을 공부하며 작성하였습니다. 동작의 파라미터화란? 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록 동작 파라미터화의 효과 자주 바뀌는 요구사항에 효과적으로 대응할 수 있다. (아래는 구체적 효과) 엔지니어링 비용 효율화. 새로 추가한 기능을 쉽게 구현할 수 있음. 장기적 관점에서 유지보수 용이. 동작 파라미터화의 특징 어떻게 실행할지 결정되지 않은 코드블록을 나중에 프로그램에서 호출. 즉 코드블록의 실행은 나중으로 미뤄진다. 실행될 메서드를 파라미터로 넘겨준다. 예) - 리스트의 모든 요소에 '어떤 동작'을 수행할 수 있음. - 리스트 관련 작업을 끝낸 다음에 '어떤 다른 동작'을 수행할 수 있음. - 에러가 발생하면 '정해진 어떤 다른 동작'을 수행할..
[Javascript] ES6 Array helper 배열과 관련된 작업을 보다 깔끔하게 처리할 수 있는 ES6의 Array helper에 대해서 알아보자. 1) forEach 배열의 요소를 하나씩 반환하여 함수를 실행. const example_array = ['apple','banana','peach','blue berry']; example_array.forEach((elem)=>{ //배열의 요소를 elem이라는 변수로 하나씩 파라미터로 전달한다. console.log(elem); }); 2) map 배열의 각 요소에 대해 주어진 함수로 처리되어 리턴된 새로운 배열을 만들어 준다. return이 없는 요소의 경우는 undefined처리가 됨. const example_array = ['apple','banana','peach','blue berry'..
[Javascript] 싱글스레드 기반 이벤트 루프와 비동기 동기/비동기란? 1) 동기 동기란 Request를 보내는 시기와 Response를 받는 시기가 일치. 요청을 하게 되면 응답이 올 때까지 프로그램은 정지하고 응답이 오면 다시 진행됨. const longTimeTask = () => { // 시간이 오래 걸리는 작업 console.log('시간이 오래 걸리는 작업'); for(let i = 0 ; i < 100000000 ; i++){ console.log("."); } }; console.log('시작'); longTimeTask(); console.log('종료'); 2) 비동기 Request와 Response가 동시에 일어나지 않음. 비동기로 수행을 할 경우, Request를 보낸 후, Response를 기다리지 않고 다음 작업을 바로 진행. con..
[Javascript] Scope와 변수 선언 (var, let, const) 키워드 차이점 스코프(Scope) 식별자 접근 규칙에 따른 유효 범위를 말함. 식별자(변수, 함수, 클래스)에 접근할 수 있는 범위가 존재한다. 범위는 중괄호(블록) 또는 함수에 의해 나눠진다. 각각 Block Scope, Function Scope라고 불린다. function scopeExample(){ //Function Scope var local = 'Seoul'; console.log(local); { //Block Scope let name = 'Jook'; console.log(`${name} lives in ${local}`); } } 스코프 주요 규칙 1. 안쪽 스코프에서 바깥쪽 스코프로 접근할 수 있지만, 반대는 불가하다. 바깥쪽 스코프에서 선언한 식별자는 안쪽 스코프에서 사용가능. 안쪽 스코프에서 ..
[Javascript] Hoisting이란? 호이스팅이란? 코드 실행 전, 변수/함수선언이 파일의 맨 위로 끌어 올려진 "것 같은 현상"을 이야기한다. Hoisting이 발생하는 이유 자바스크립트 엔진 동작의 특징 때문! 코드를 실행하기 전 실행 가능한 코드를 형상화하고 구분하는 과정을 거침 (실행 컨텍스트를 위한 과정) 코드를 실행하기 전 실행 컨텍스트를 위한 과정에서 모든 선언들(var, let, const, function, class)을 메모리에 저장. 코드 실행 전 이미 변수/함수 선언이 메모리에 저장되어 있기 때문에 선언문보다 참조/호출이 먼저 나와도 오류 없이 동작. (정확히는 var 키워드로 선언한 변수와 함수 선언문일 경우 오류 없이 동작.) 따라서 이는 선언이 파일의 맨 위로 끌어올려진 것 처럼 보이게 한다. *실행 컨텍스트는 실..
[Javascript] ES6 문법 정리 ECMAScript란? ECMAScript(ES)는 자바스크립트를 표준화 하기 위해 만들어진, ECMA-262 기술 규겨에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어를 말함. 1) const / let const - 객체와 함께 사용할 때를 제외하고는 변경이 불가능한 변수. 상수로 사용. ex) react에서 특정 이벤트를 실행하는 버튼이 있거나 특정 요소를 정의하는데에 const를 사용. let - 새로운 값을 받을 수도 있고 재할당할 수도 있음. *var을 쓰지않고 const/let을 사용하는 이유는 var의 hoisting현상을 피하기 위함이다. 2) 화살표 함수 function 키워드 없이 함수를 만들 수 있음. return 키워드 없이 식을 계산한 값이 자동으로 반환. ()안에 함수의..