일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Java
- 고잉버스
- 리눅스
- 리눅스마스터 1급 정리
- toCharArray
- java 백준 1차원 배열
- GoingBus
- Linux
- 반복문
- 스프링 빈
- Memoir
- 카카오
- 코딩테스트
- 코테
- 스프링 컨테이너
- 명령어
- 연습문제
- Kotlin
- 리눅스마스터 3과목
- map
- 백준 javascript
- 개발자 회고록
- 백준 java
- 문자열
- 월간코드챌린지
- 자바
- 리눅스마스터1급
- JavaScript
- 프로그래머스
- 자바스크립트 코딩의 기술
- Today
- Total
목록 IT (155)
hoon's bLog
1장 변수 할당으로 의도를 표현하라 tip3. 블록 유효 범위 변수로 정보를 격리하라 var로 변수를 선언한 경우에는 함수 내부 어디서든 접근이 가능하다. 호이스팅(hoisting) 컴파일 과정을 통해 변수가 선언되기도 전에 접근이 가능하다. 예제코드를 통해 확인해 보자! 클릭하면 0 기대 클릭하면 1 기대 클릭하면 2 기대 line 3부터 클릭 시, 순서대로 0, 1, 2가 아닌 3, 3, 3 alert를 확인할 수 있다. var로 할당한 변수는 함수 유효 범위를 따르기 때문에 함수 내에서 마지막으로 할당한 값을 참조한다. 따라서 i를 선언한 시점이 아닌, 코드를 호출한 시점의 i를 반환하게 되는데, i=2 일 때 반복문을 실행하고 나서, 후위 연산자에 의해 i에 +1이 미리 연산되어 할당된 후 i=3..
1장 변수 할당으로 의도를 표현하라 tip1. const로 변하지 않는 값을 표현하라 const는 블록 문맥 내에서 재할당할 수 없는 변수 선언이지만 불변값이 되는 것은 아니다. 자바스크립트에서는 기본적으로 const를 이용해서 변수를 할당하는 것이 좋다. 이는 확실히 변하지 않는 값임을 알기에 디버깅이 비교적 쉬워지기 때문이다! 예제코드를 통해 확인해보도록 하자! function getTotal() { const taxRate = 0.1; const total = 100 + (100 * taxRate); // 중간 코드 생략 return `금액은 ${total}입니다.`; } taxRate와 total값이 const로 선언되었다. 누가봐도 상수로 선언된 값이기에 중간 코드가 무엇이 있든 간에 total..
호출 스택자바스크립트는 단일 스레드 프로그래밍 언어이므로, 단일 호출 스택이 있다.단일 호출 스택이 있다는 뜻은 한 번에 하나의 일(Task)만 처리할 수 있다는 뜻이다.호출 스택이란 프로그램에서 우리가 어디에 있는지를 기본적으로 기록하는 데이터 구조로 동작 방식은 다음과 같다.function first(){ second(); console.log('첫 번째');}function second(){ third(); console.log('두 번째');}function third(){ console.log('세 번째');}first();위와 같은 코드가 있다고 가정해 보자.과연 호출 순서는 어떻게 될까?정답은 세 번째 → 두 번째 → 첫 번째가 된다!! 오잉 어떻게 된 것일까?An..
Error 발생 경로 [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. (Use `node --trace-deprecation ...` to show where the warning was created) 번역해 보자면 Buffer()는 보안 및 유용성 문제로 인해 더 이상 사용되지 않으니, Buffer.alloc(), Buffer.allocUnsafe() 또는 Buffer.from() 메서드를 사용하라는 뜻! 그리고 문제가 되었던 코드 부..
노드(Node)란? Node.jsⓇ는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임을 말한다. 노드는 V8과 libuv를 내부적으로 포함하고 있다. V8 엔진: 오픈 소스 자바스크립트 엔진 → 속도 문제 개선 libuv: 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현한 라이브러리로 내부구조는 아래 그림과 같다. 런타임(runtime): 특정 언어로 만든 프로그램들을 실행할 수 있게 해주는 가상 머신(크롬의 V8 엔진 사용)의 상태 다른 런타임으로는 웹 브라우저(크롬, 엣지, 사파리, 파이어폭스 등)가 있음 노드의 역할 자바스크립트로 만든 프로그램들을 실행할 수 있게 해 준다! 자바스크립트 런타임으로 서버의 역할도 수행할 수 있다! 서버 실행을 위해 필요한 http/https/htt..
비교연산자 == : 같다. != : 같지 않다. = : ~ 보다 크거나 같다. val a = 1 // Int val b = 2L //Long println( a == b ) // Error : comparing Int and long println(a.toLong() == b) // Ok : 두 타입 모두 Long 임 코틀린 타입은 두 인자가 모두 같은 타입일 때만 == 와 != 를 허용! 한 인자는 Int 이고 한 인자는 Long이면 ==를 적용할 수 없다. 하지만 모든 수 타입의 값은 서로 = 를 사용해 비교 가능! Char, Boolean값의 비교연산 지원 false == true // false false 1 // ..
불(boolean) 타입과 논리 연산 참(true)이나 거짓(false)중 하나로 판명되는 불(Boolean) 타입과 논리연산을 제공한다. val hasErrors = false; val testPassed = true; boolean은 수타입과 다른 타입이며, 암시적이든 toInt() 같은 명시적 내장 연산을 쓰든 수로 변환 할 수 없다. 반대로 수를 Boolean 타입으로 변환할 수도 없다. boolean이 지원하는 연산은 다음과 같다. ! : 논리 부정 or, and, xor : 즉시계산 방식의 논리합, 논리곱, 논리 배타합. ||, && : 지연계산 방식의 논리합, 논리곱 지연 계산 연산자(||, &&)는 자바의 동일 연산자와 같은 의미를 제공 || 왼쪽 피연산자가 참이면 오른쪽 피연산자를 계산 ..
Char 타입 Char 타입은 유니코드 한 글자를 표현하며 16비트이다. 이타입의 리터럴은 작은따옴표 (`) 사이에 문자를 넣으면 된다. val z = `z` val alpha = `α` 특수문자 : 특수문자를 위해 이스케이프를 제공한다. \t : 탭 \b : 백스페이스 \n : 개행 \r : 캐리지 리턴 \' : 작은 따옴표 \" : 큰따옴표 \\ : 역슬래시 \$ : 달러표시 유니코드 문자 : \u 다음에 네자리 16진수를 넣는 시퀀스로 임의의 유니코드 문자를 문자 리터럴에 넣을 수 있다. val pi = '\u03C0' // result : π Char 연산 Char 자체를 수타입으로 취급하지 않지만, 유니코드 문자 집합 내에서 몇가지 산술 연산을 허용한다. +/- 연산자로 문자에 수를 더하거나 뺄..