본문 바로가기
TIL(Today I Learned)

[TIL] 2022.04.28

by Cafe Mocha 2022. 4. 28.

2022년 4월 28일 TIL

 

오늘은 프로젝트는 진행하지 못하고 리다기,자바스크립트 DeepDive, 코딩테스트 문제풀이만 진행했다.

코딩테스트에서 정규식의 중요성을 확인하고 정규식으로 여러가지 테스트를 진행했다.

알고보면 간단한 느낌이지만, 알고리즘 문제를 풀면서 천천히 익숙해져야겠다.

 

이제 프로그래머스 1단계는 카카오문제 1문제만 남았다.

프로그래머스 1단계를 다풀면 백준으로 이동해 dfs, bfs, 완전탐색, 구현 등 알고리즘 유형과 문제를 위주로 진행할 예정이다.

 

금일 내용은 간단해 TIL에 직접 기록.


리액트를 다루는 기술 4장

4장 이벤트 핸들링

  • 리액트의 이벤트 시스템
    • 이벤트를 사용할 때 주의 사항
      1. 이벤트 이름은 카멜 표기법으로 작성합니다.
      2. 이벤트에 실행할 자바스크립트 코드를 전달하는 것이 아니라, 함수 형태의 값을 전달한다.
      3. DOM 요소에서만 이벤트를 설정할 수 있습니다.
      4. ex) div,button,input 등 DOM요소에는 이벤트를 설정할 수 있지만, 컴포넌트에는 이벤트를 자체적으로 설정할 수 없다.
    • 바인딩(binding)
    • 클래스의 임의 메서드가 특정 HTML 요소의 이벤트로 등록되는 과정에서 메서드와 this의 관계가 끊어진다.만약, 바인딩하지 않는 경우에는 this가 undefined를 가리키게 된다
    • 이 때문에 임의의 메서드가 이벤트로 등록되어도 this가 컴포넌트 자신으로 제대로 가리키기 위해서는 메서드를 this와 바인딩(binding)하는 작업이 필요하다.
    • 함수가 호출될 때 this는 호출부에 따라 결정된다.(음...렉시컬 스코프? //의문점)
    • 해결방법 : ES6의 Arrow function

 


자바스크립트 DeepDive

6장 데이터 타입

  • 선언(declarations)과 정의(definition)다른 프로그래밍 언어에서는 선언과 정의를 엄격하게 구분하여 사용하는 경우가 많다.
  • c언어에서는 “실제로 메모리 주소를 할당하는가”로 구분한다.
  • ECMAScript 사양에서 변수는 ‘선언한다’라고 표현하고, 함수는 ‘정의한다’라고 표현한다.
  • 데이터 타입이 필요한 이유
    • 값을 저장할 때 확보해야 하는 메모리 공간의 크기를 결정하기 위해
    • 값을 참조할 때 한 번에 읽어 들여야 할 메모리 공간의 크기를 결정하기 위해
    • 메모리에서 읽어 들인 2진수를 어떻게 해석할지 결정하기 위해

💡 동적 타이핑(dynamic typing) : 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정(타입 추론 type inference)된다. 그리고 재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다.

 


코딩테스트 준비

https://mocha-blog.tistory.com/9

 

[프로그래머스] 신규 아이디 추천_Javascript

코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에

mocha-blog.tistory.com

  • 정규표현식
      • : 범위(어디에서 어디까지)
        • a-z : a에서 z까지를 의미
        • 0-9 : 0에서 9까지를 의미
        • ㄱ-ㅎ : ㄱ에서 ㅎ까지를 의미
        • ㅏ-ㅣ : ㅏ에서 ㅣ 까지를 의미
        • 가-히 : '가'에서 '히'까지를 의미
    • [] : 괄호 안에 문자중 1개
      • [a-z] : a에서 z중 하나.
      • [abc]d : ad, bd, bd 를 의미
    • [^] : 괄호안의 문제 부정(제외)
      • [^a-z] : a ~ z를 제외한 모든 문자
      • [^0-9] : 숫자를 제외한 모든 문자
    • | : 또는(OR)
      • [a-z|A-Z] : a ~ z 또는 A ~ Z 의미(영어 전체)
      • [ㄱ-ㅎ|ㅏ-ㅣ|가-힣] : ㄱ ~ ㅎ 또는 ㅏ ~ ㅣ 또는 가 ~ 힣 의미(한글 전체)
    • ^ : 문자열의 처음
      • ^[a-zA-Z] : 영문자로 시작해야함
    • $ : 문자열의 끝
      • [a-zA-Z]$ : 영문자로 끝나야함
      • ^[a-zA-Z]$ : 영문자로 시작하고, 영문자로 끝나야함
    • : 0회 이상(여러개)
      • ^[a-zA-Z]*$ : 여러개의 문자가 모두 영문자여야 함
      • ^[0-9]*$ : 여러개의 문자가 모두 숫자여야 함
      • ^[a-zA-Z0-9]*$ : 여러개의 문자가 모두 영문자나 숫자여야 함
    • {m, n} : m회 이상, n회 이하
      • ^[a-zA-Z]*${1, 10} : 영문자 1자 이상, 10자 이하

'TIL(Today I Learned)' 카테고리의 다른 글

[TIL] 2022.05.03  (0) 2022.05.03
[TIL] 2022.05.02  (0) 2022.05.02
[TIL] 2022.04.29  (0) 2022.04.29
[TIL] 2022.04.27  (0) 2022.04.27
[TIL] 2022.04.26  (1) 2022.04.26