[TIL] DAY-2 JS 주요 문법

5taecoo·2022년 3월 22일
1

TIL

목록 보기
2/12
post-thumbnail

💻 JavaScript 주요 문법

브라우저 렌더링에 대하여

암호화

  • 단방향 해시 함수
  • 양방향 해시 함수

함수형 프로그래밍

거의 모든 것을 순수 함수로 나누어 문제를 해결하는 기법으로, 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해준다.

특징

부수 효과가 없는 순수 함수를 1급 객체로 간주하여 파라미터나 반환값으로 사용할 수 있으며, 참조 투명성을 지킬 수 있다.

선언형 프로그래밍: 어떻게 할건지(How) 를 나타내기보다 무엇(What) 을 할 건지를 설명하는 방식

Control Flow/Data Flow

😮 멀티패러다임: JS에서 함수형 프로그래밍도 좋지만 나누지 않고 객체지향 프로그래밍도 혼용하며 사용하는게 좋다..!

객체 지향과 프로토 타입

  • 객체 지향은 패러다임 -> 언어와는 관계 X
  • JS는 객체 지향을 표현 할때 프로토 타입을 사용

    간단한 프로그래밍은 객체 지향보다 절차 지향이 더 쉽고 직관적이다!

JS에서 사용하는 정규 표현식

정규 표현식은 두 가지 방법으로 만들 수 있다.

  • 정규 표현식 리터럴
  • RegExp 객체의 생성자 호출

정규 표현식 패턴 작성

  • 단순 패턴 사용
  • 특수 문자 사용
    • 어서션
    • 문자 클래스
    • 그룹과 범위
    • 수량자
    • 유니코드 속성 이스케이프

쿠키와 세션, 웹 스토리지

Cookie

Set-Cookie

  • Expires : 쿠키 만료 날짜를 알려줄 수 있다.
  • Max-Age : 쿠키 수명을 알려줄 수 있다. 이 옵션이 있을 경우 Expires이 무시된다.
  • HttpOnly : 자바스크립트에서 쿠키에 접근할 수 없도록 한다. XSS를 막기위해 활성화하는 것이 좋다.
  • Domain : 도메인을 명시하여 해당 도메인에서만 쿠키가 전송되게 할 수 있다.
  • Path : 패스를 명시하여 해당 패스의 요청에서만 쿠키가 전송되게 할 수 있다.

공공 PC의 경우는 쿠키를 탈취하여 개인정보를 빼돌릴 수도 있다. 이러한 보안상 취약점이 있고, 네트워크를 통해 암호화되지 않는 쿠키를 전송할 때 쿠키 정보를 탈취하는 스니핑(Sniffing) 공격에 당할 수 도 있다.

Session
세션은 서버의 리소스를 사용하기 때문에 세션을 많이 쓸 경우 서버에 부하가 생기게 될 수 있다. 유저의 수가 너무 늘어날 경우에는 서버 램이나 DB 성능에 무리를 줄 수 있기에 유의해야 한다.

Web Storage
웹 스토리지는 로컬 스토리지와 세션 스토리지로 두가지 용도의 저장소를 제공하고, 쿠키와 마찬가지로 도메인 단위로 접근이 제한된다.

  • Local Storage
    명시적으로 데이터를 지우지 않으면 영구적인 보관이 가능하다. Window 전역 객체인 LocalStorage 컬렉션을 통해 저장, 조회가 가능하다.
  • Session Storage
    데이터의 지속성과 액세스 범위에 특수한 제한이 존재하는 저장소이다. window 전역 객체인 sessionStorage를 통해 저장과 조회가 이루어진다. 데이터 유지 측면에서는 지속적으로 보관되지 않기 때문에 세션 쿠키와 성질이 비슷한데, 현재 페이지가 브라우징 되고 있는 브라우저 컨텍스트 내에서만 데이터가 유지된다.

회고🥲

생각보다 공부해야 할 양이 많고 어제에 이어 조금 더 문법적인걸 보다 보니 나머지들은 깊게 공부를 하지 못한거 같다...
거기다 하나하나 다 이해하고 넘어가야 직성이 풀리는 성격이다 보니 찾아보다가 시간이 다 가버리고 아직 해야할게 많아서 시간 분배하는 걸 다시 한번 생각해봐야겠다.
어제 TIL 작성하며 느낀건데 너무 과하게 공부했던걸 다 적으려고 하는거 같아 TIL 에선 간단하게 공부한 주제에 대해서만 적고 Git 과 동시에 세부적인 내용들이나 프로그래밍 했던걸 주기적으로 올릴 예정이다. 아마 주말을 통해 주제에 대해 세부적으로 정리가 가능할거 같다...너무 급하게 다 하려고 하지말고 원래 페이스에서 더 끌어올리는 느낌으로 가자!


참고

profile
프론트엔드를 꿈꾸며 개발을 공부 합니다.

0개의 댓글