프로그래밍 언어

프로그래밍 언어/Javascript

비동기는 동시가 아니다. 순서의 문제다.

1. 비동기란 무엇이냐? 한 번 비동기는 영원한 비동기이다. async, await을 붙여 동기로 만들었다는 말은 말도 안된다는 소리다. 강사님은 말한다. 비동기를 동기로 바꾸려는 노력을 아예~ 하지마세요. 그간 했던 프로젝트가 떠오른다... 2. 비동기는 백그라운드를 거친다. 비동기이면 백그라운드를 한 번 거친다. 백그라운드는 OS 혹은 C++ 엔진 이라고 생각하면 된다. 호출 스택에서 비동기 함수가 실행되면 백그라운드에 들어간다. 백그라운드에 들어가는 순간 JavaScripts에서는 되지 않던 동시 실행이 가능해지는 영역이라고 생각하면 된다. 백그라운드에 들어가는 요소들 setTimeout(비동기 함수)의 타이머 Promise nextTick 네트워크 요청(ajax) 이벤트 리스너(click 등) 3..

프로그래밍 언어/Javascript

Promise

1. Promise란? Promise는 실행이 됐는데, 결과값을 나중에 쓸 수 있는 것이다. 콜백은 무조건 비동기가 아니다. 콜백은 동기일 수도 있고, 비동기 일 수도 있다. 비동기 콜백 종류가 비동기인 것이지 콜백이라고 해서 무조건 비동기가 아니라는 의미이다. 2. setTimeout의 단점 가장 대표적인 비동기 콜백은 setTimeout이다. 아래 코드의 단점은 어떤 조건이 만족되면 바로 ()=>{} 이 함수가 실행된다는 것이다. 즉, 함수 부분을 분리할 수 없다는 단점이 있다. setTimeout(()=>{ console.log('a'); }, 1000); 3. Promise의 장점 아래 코드는 Promise를 선언하는 기본 구조이다. new Promise((resolve, reject)=>{ })..

프로그래밍 언어/Javascript

this는 호출될 때 결정된다

1. 기본 window를 의미함 console.log(this); 과거 this를 출력하면 js에서는 window 전역 객체가 호출되고, node에서는 global 전역 객체가 호출되었다. 하지만 이렇게 쓰일 경우 js와 node에 따라 분기처리를 해줘야하는 불편함이 있었다. 그래서 최근에는 globalThis로 통합이 되었다. 2. strict 모드 function a(){ 'use strict' console.log(this); } a(); 기존 this를 쓰면 globalThis가 도출된다고 했지만 'use strict'를 함께 써주면 this는 undefined가 된다. 3. this가 변경될 때 this가 변경되는 3가지 경우가 있다. 1) 객체 안에 있을 때 const obj = { name:..

프로그래밍 언어/Javascript

함수와 함수의 호출, 고차함수

1. 함수는 일급 객체 자바스크립트에서 함수는 값처럼 사용이 가능하다. 변수에 함수를 넣을 수 있고, 매개변수로도 넘길 수 있다. 배열에도 함수가 들어간다. 메서드(함수)가 객체의 프로퍼티(속성)로도 설정이 가능하다. 매개변수의 개수가 일치하지 않아도 호출 가능하다. 엄격하지 않은 것이다. 자바스크립트의 함수는 일급 객체라고 부른다. 2. 함수 선언 2가지 방법 //함수 선언 2가지 유형 //1. 함수 표현식 const add = (a,b) => a+b; //2. 함수 선언식 function calculator(func, a, b){ return func(a,b); } 함수 선언식은 function을 쓰는데, 이를 통해 함수 호이스팅이 가능하다. 함수 호이스팅은 첫 번째로 소스코드 평가 단계를 거친다. ..

프로그래밍 언어/JAVA

java.util.regex.PatternSyntaxException : Dangling meta character '+' near index 0

1. 문제상황 String[] sentence = sc.nextLine().split("-"); String[] sperate_plus = sentence[i].split("+"); +나 - 등 특수문자를 가지고 split을 할 때 나타나는 exception이다. 2. 해결방법 String[] sentence = sc.nextLine().split("\\-"); String[] sperate_plus = sentence[i].split("\\+"); +와 - 앞에 \\를 붙여주면 된다.

프로그래밍 언어/JAVA

맥(arm) M1에서 크롬드라이버 쓰는 방법 : 크롬매니저를 이용해라!

맥에서 돌리기 힘든 크롬드라이버... 하루걸려 방법을 알아내서 나중을 위해... 나를 위해... 기록해보려고 한다... 1. 자신의 크롬 버전에 맞는 크롬드라이버를 설치하자 나는 109.0.5414.87 버전을 썼고, 아래 링크의 버전 중 정확히 맞아 떨어지는 버전이 없었다. 때문에 109.0.5414 버전 중 하나를 선택해 크롬드라이버 파일을 다운받았고, 이클립스에 복붙했다. ​ https://chromedriver.chromium.org/downloads ChromeDriver - WebDriver for Chrome - Downloads Current Releases If you are using Chrome version 110, please download ChromeDriver 110.0.54..

프로그래밍 언어/Python

파이썬 3항 연산자 / 코드업 6064번

1-1. 3항 연산자 개념 https://codeup.kr/problem.php?id=6063 [기초-3항연산] 정수 2개 입력받아 큰 값 출력하기(설명)(py) python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내 codeup.kr 3개의 요소로 이루어지는 3항 연산은 "x if C else y" 의 형태로 작성이 된다. - C : True 또는 False 를 평가할 조건식(conditional expression) 또는 값 - x : C의 평가 결과가 True 일 때 사용할 값 - y : C의 평가 결과가 True 가 아닐 때 사용할 값 조건식 또는 값..

프로그래밍 언어/Python

파이썬 비트연산자

1-1. 비트연산자 ~(not) 개념 [기초-비트단위논리연산] 비트단위로 NOT 하여 출력하기(설명)(py) python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용 codeup.kr 비트단위(bitwise) 연산자는 6가지가 있다. 1) ~(bitwise not) 2) &(bitwise and) 3) |(bitwise or) 4) ^(bitwise xor), 5) (bitwise right shift) 예를 들어 1이 입력되었을 때 저장되는 1을 32비트 2진수로 표현하면 00000000 00000000 00000000 00000001 이고, ~1은 111..

SHIN SANHA
'프로그래밍 언어' 카테고리의 글 목록