8월 15일 TIL

임덤덤·2022년 8월 15일
0

독서기록

목록 보기
3/4

🔥목차🔥

1. 프로그래밍 구조에 대한 독서 후 정리 이어서
2. 모던 JavaScript 입문 책 정리

📖오늘의 TIL 시작!📖

  1. 프로그래밍 구조 독서
  • 1-1 선언형 프로그래밍 언어
    • 절차를 기술하는 것이 아니라 컴퓨터에 '정의'를 전달하고 컴퓨터는 그 정의를 해석하여 동작하게함
    • 선언형 프로그래밍은 함수형 프로그래밍 언어를 자주 사용함
    • 함수 조합으로 기술해 나가는 스타일임
      • 명령형 프로그래밍 언어도 함수를 사용하지만 변화시키면서 처리함
  • 1-2 논리형 프로그래밍 언어
    • 논리형 프로그래밍 언어는 논리식을 사용해서 관계를 정의함
    • 이 관계를 술어라고함 [ 참,거짓중 하나의 값만가짐(Bool타입인가?) ]
    • 조건을 만족시킨다는 사고방식은 완전히 새로운 관점임
    • 하지만 처리속도 문제도 있어 현재는 실무에서는 많이 사용되지 않는다고 함
  • 1-3 스크립트 언어
    • 작은 크기의 프로그램을 손쉽게 작성하기 위해서 사용되는 언어
    • 파일의 조작, 여러 명령어를 연속으로 실행할 때 사용됨
      • 셸 스크립트, JavaScript, VBScript, 웹앱에서 많이 사용되는 PHP, Perl, Ruby, Python도 스크립트 언어로 분류됨
  • 1-4 매크로
    • 수작업을 자동화할 목적으로 사용되는 프로그램
    • Word, Excel 등의 오피스 소프트웨어를 조작하는 VBA에서는 마우스로 조작해서 기록,실행을 할 수 있고 에디터나 브라우저등을 조작하는 WSH등의 경우 JavaScript나 BVScript등의 언어로 기술함
    • 텍스트 에디터에서도 독자적인 언어를 실행하는 경우가 있음
  • 1-5 마크업 언어
    • 문장 구조를 컴퓨터에 알려주는 언어
    • 지금 사용하고 있는 이 TIL도 마크업 언어로 작성되는것 같음
  • 1-6 프로그래밍 언어 비교
    • C언어
      • 오래전부터 많은 시스템 개발에 사용된 역사가 있는 언어
        • 앱 뿐만이 아니라 OS나 프로그래밍 언어 개발 등 폭 넓은 분야에서 사용되어 왔음
          하드웨어에 가까운 부분을 다루기 위해서는 필수적인 언어
    • C++
      • C언어에 객체지향 기능을 더한 언어
      • 임베디드 계열 기기의 소프트웨어 개발이나 게임 개발등에 사용됨
    • JavaScript
      • 많은 인기를 끌고있는 언어
      • 기업의 실무, 대학수업 등에도 사용되고 있어 이용자 수가 많은것이 특징
      • JVM이라는 가상머신 상에서 프로그램을 실행함
        • JVM만 동작하면 어떤 환경에서라도 이용이 가능함
    • C#
      • Microsoft사에서 개발 후에 Windows앱 등의 개발에 많이 사용되는 언어
      • C++,Java에 가까운 문법으로 되어있음
      • 초보자도 배우기 쉬운 언어로 할 수 있음
      • GUI를 갖춘 앱 개발 뿐만 아니라 최근에는 게임 개발에 사용되는 유니티에서도 대표적인 언어로 채택됨
      • iOS나 Android 앱을 개발할 수 있는 Xamarin에 사용되는등 폭넓은 분야에서 이용되고 있음
    • Ruby
      • 일본에서 개발하고 최근 인기있는 프로그래밍 언어임
      • 스트레스없이 프로그래밍을 즐길 수 있는 언어로 배우기 쉽다고 알려져있음
    • Python
      • 데이터 분석 및 통계등의 라이브러리가 풍부함
      • 머신러닝이나 인공지능 개발에 많이 사용 되고있음
      • 들여쓰기의 깊이로 블록을 표현하는것이 특징
    • PHP
      • 임대 서버 등에서는 사전에 설치된 경우가 많아 환경구축의 번거로움이 적고 바로 사용이 가능함
      • 웹앱 프레임워크가 풍부하게 제공되고 있어서 손쉽게 동적 웹페이지를 만들 수 있음
  1. 모던 JavaScript 정리
    2-1 논리연산자와 관계연산자
  • 관계 연산자
    • 두개의 피연산자를 비교한 결과값을 논리값(true,false)로 반환함
    • 주로 제어 구조( if/else구문 , while 문, do/while 문, for 문) 에서 조건식을 만들때 사용함
      • a==b ( 값이 같음 : a 값과 b값이 같으면 true , 그 외에는 false )
      • a!=b ( 값이 다름 : a 값과 b값이 다르면 true , 그 외에는 false )
      • a===b ( 값과 타입이 같음 : a값과 b값이 타입이 같으면 true , 그 외에는 false )
      • a!==b ( 값과 타입이 다름 : a값과 b값이 타입이 다르면 true , 그 외에는 false )
      • a < b ( 작음 : a값이 b값보다 작으면 true , 그 외에는 false )
      • a > b ( 큼 : a값이 b값보다 크면 true , 그 외에는 false )
      • a <= b ( 작거나 같음 : a값이 b값보다 작거나 같으면 true , 그 외에는 false )
      • a >= b ( 크거나 같음 : a값이 b값보다 크거나 같으면 true , 그 외에는 false )
  • 동일 연산자
    • 동일 연산자( == )는 좌변과 우변의 피 연산자가 같은지를 판별함
    • 내부적으로 좌우 피 연산자의 타입을 변환한 다음에 좌변과 우변이 같은지를 느슨하게 비교함
  • 좌우 피 연산자의 타입이 다르다면?
    • undefined나 null 같은것으로 친다
    • 한쪽이 숫자, 다른한쪽이 문자열이면 문자열을 숫자로 변환해서 비교함
    • 둘중 한쪽이 논리값이면 true는 1, false는 0으로 변환하여 비교함
    • 한쪽이 객체 다른한쪽이 숫자나 문자열이면 객체를 toString이나 valueOf 메서드를 사용해서 원시타입으로 변환후 비교함
    • 앞 규칙에서 모두 벗어난다면 같지않음 으로 판정함
  • 일치 연산자
    • 피 연산자를 평가한 후에 타입을 변환하지 않은 상태의 두 값을 엄격하게 비교함
    • 타입이 모두같으면 모두같다고 판정하고 그렇지않으면 그렇지않다고 판정함
      • NaN만큼은 NaN을 포함한 모든값과 같지 않다고 판정함
      • NaN은 x !== x를 만족하는 유일한 값임을 확인 할 수 있음
      • 변수의 값이 NaN 인지는 isNaN 함수로도 확인이가능함
  • 논리 연산자
    • 관계 연산자를 사용하여 만든 논리식과 결합해서 더욱 복잡한 논리를 정의함
      • a&&b ( 논리곱 : a와 b가 모두 true 면 true, 그 외에는 false )
      • a||b ( 논리합 : a와 b중 하나라도 true면 true, 모두가 false 이면 false )
      • !a ( ark true이면 false, false면 true )
  • 2-2 비트연산
    • 데이터 통신이나 이진 파일을 처리할때 자주 사용함
    • 피연산자를 부호 있는 32비트 정수로 변환해서 처리함
    • 비트연산자에는 비트논리연산자와 비트 시프트 연산자가 있음, 모든 연산자는 대입 연산자를 사용 할 수 있음
  • 2-3 다른연산자들
    • 기타 몇가지 연산자들을더 정리할 예정
      • typeOf( 데이터타입조사 )
      • ?: ( 조건연산자 )
      • void ( 정의되지 않은 값을 반환 )
      • , ( 왼쪽에서 오른쪽 순서대로 피 연산자를 연속해서 실행한다. )
      • delete ( 객체의 프로퍼티나 배열요소를 제거한다 )
      • new 새로운 객체를 생성한다 )
      • in ( 객체의 프로퍼티 포함 여부를 확인한다 )
      • instanceof ( 객체의 종류를 확인한다 )
      • ecal() ( 인수로 받은 문자열을 자바스크립트 코드로 사용한다
  • typeOf연산자
    • 단항 연산자이면서 피 연산자의 데이터 타입을 뜻하는 문자열을 반환함
    • typeOf연산자는 함수 이외의 객체에 모두 "object"를 반환함으로 객체 유형은 파악할수 없음
    • typeof연산자의 반환값
      • 숫자,NaN ( typeof 연산자의 반환값 : " number " )
      • 문자열 ( typeof 연산자의 반환값 : " string " )
      • 논리값 ( typeof 연산자의 반환값 : " boolean " )
      • 정의되지않은값 ( typeof 연산자의 반환값 : "undefined" )
      • null 값 ( typeof 연산자의 반환값 : "object" )
      • 심벌 ( typeof 연산자의 반환값 : "symbol" )
      • 함수 외의 객체 ( typeof 연산자의 반환값 : "object" )
      • 함수 ( typeof 연산자의 반환값 : "function" )
profile
응애🐣 예비 개발자 입니다.

0개의 댓글