본문 바로가기

전체 글

(1092)
[프로그래머스] 평행 - JavaScript 풀이 본 게시물은 프로그래머스의 연습 문제 풀이입니다. 저작권은 (주) 그랩에게 있습니다 자바스크립트 코드 function solution(dots) { const slopes = []; let answer = 0; for (let i = 0; i
타입 단언과 타입 가드 - 타입 단언은 지양하자 1. 타입 단언이란? 타입 단언이란, 타입을 구체적으로 명시하는 방법이다. 때로는 타입 추론보다 개발자가 타입에 대해서 자명하게 알 때가 있다. 대표적인 예시로는 아래처럼 react 프로젝트의 index.tsx에서의 코드를 들 수 있다. import React from 'react'; import { createRoot } from 'react-dom/client'; ​ const root = document.getElementById('root') as HTMLElement; ​ createRoot(root).render(); 위처럼 타입단언을 해야하는 이유는 아래와 같다. getElementById DOM API는 해당하는 id를 가지는 element 또는 null을 반환 createRoot reac..
WIL(22.11.27) 내가 배운것 프로그래머스의 코딩테스트 광탈 방지 A to Z : JavaScript 완강 차주에 진행할 것 Nomad Coders - React JS 마스터클래스 완강 Effective TypeScript 팀 개발을 위한 Git, GitHub 시작하기 이직 회고 앞으로 진행할 것 React 벨로퍼트와 함께하는 모던 리액트 Hook Redux TypeScript OPP Design Pattern Test 시각적 회귀 Refactoring(마틴 파울로) 2판 읽기 외출난이도 리팩터링 시니어코딩 완강
기초 JS, CS 상식 - 컴퓨터 시간 본 내용은 프로그래머스의 코딩테스트 광탈 방지 A to Z : JavaScript 강의를 토대로 작성하였습니다. 컴퓨터 시간 현실의 시간을 전산화 시간이란 물리량 시간은 물리학 관점에서 봤을 대 시각과 시각 사이 간격을 표현하는 단위를 뜻함 위치 시간은 위치에 따라 다르게 표현 경도상 위치에 따라 다름 천문 현상 지구자전속도의 불규칙성, 지구의 자전주기와 공전주기 등 천문 현상으로 인한 시간 보정이 필요 문화 문화에 따라 시간 표현이 다를 수 있음 역사 역사적 사건에 의해 시간은 다르게 표현될 수 있음 사회 사회적 제도에 의해 시간은 변함 협정 세계시 (UTC) 대부분의 국가가 협정 세계시를 기반으로 시간을 관리 원자 시계와 윤초 보정을 기반으로 표준화한 시각 모든 시간대는 UTC+0을 기준으로 환산 표..
기초 JS, CS 상식 - 네트워크 기초 본 내용은 프로그래머스의 코딩테스트 광탈 방지 A to Z : JavaScript 강의를 토대로 작성하였습니다. 브라우저에 URL을 입력한 이후의 과정 Step1. URL 해성 scheme://:@:/ scheme: protocol이 들어가는 영역 계정정보: 인증이 요구되는 경우, id, password를 입력하면 접속 허가를 받을 수 있음 Step2. DNS 조회 Domain Name System DNS는 도메인과 IP 주소를 서로 변환 DNS로 요청을 보내기 전에, 브라우저 캐시와 hosts 파일을 참조 DNS는 보통 통신사(ISP)에서 제공하는 것을 사용 Name Server: DNS를 운영하는 서버 URL 해석 -> 브라우저 캐시 확인 -> (없다면) hosts 파일 참조 -> (없다면) DNS ..
기초 JS, CS 상식 - 객체지향과 프로토타입 본 내용은 프로그래머스의 코딩테스트 광탈 방지 A to Z : JavaScript 강의를 토대로 작성하였습니다. 1. 객체지향의 객체 객체지향의 객체는 현실에 있는 것을 추상화 2. 추상이란? 사물이 지니고 있는 여러 측면 중 특정한 부분만 보는 것 그 외의 필요없는 부분은 버림 3. 객체지향이란? 객체 위주로 설계하고 프로그래밍하는 패러다임 객체지향 언어에선 추상화의 최소 단위가 객체 각각의 객체는 메시지를 주고받을 수 있음 4. 객체지향의 오해 객체지향은 패러다임일 뿐 언어는 지향하는 것을 조금 더 편하게 구현할 수 있게 도와줄 뿐 JavaScript, Go, C로도 객체지향 프로그래밍을 할 수 있음 JavaScript는 프로토타입을 통해 객체지향을 표현 상황에 따라 적합한 패러다임이 있는 것일 뿐,..
기초 JS, CS 상식 - 함수형 프로그래밍 본 내용은 프로그래머스의 코딩테스트 광탈 방지 A to Z : JavaScript 강의를 토대로 작성하였습니다. 1. 패러다임 프로그램은 순차, 분기, 반복, 참조로 구성 패러다임은 위 4가지 요소를 어떻게 이용할 지를 다룸 객체지향은 객체를 통해 묶고 객체간 통신함으로 프로그램이 동작함 함수형은 데이터를 함수를 이용해 새로운 데이터를 만들어 나가는 데이터 파이프 라인 형태로 작동 2. 함수형 패러다임 객체지향 추상화의 최소 단위가 객체인것 처럼, 함수형은 함수가 최소 단위 함수 단위로 나눠지므로 재사용성이 높음 불변성을 지향하기에 동작을 예측하기 쉽고 사이드 이펙트 방지 동시성 문제도 해결 객체지향은 제어 흐름의 간접적인 전환에 부과되는 규율 함수형은 변수 할당에 부과되는 규율 장점 상태가 없어, 사이..
기초 JS, CS 상식 - 암호화 기초 본 내용은 프로그래머스의 코딩테스트 광탈 방지 A to Z : JavaScript 강의를 토대로 작성하였습니다. 암호화 평문(Plaintext)을 해독할 수 없는 암호문(Ciphertext)로 반환 단방향(해싱)과 양방향 암호화 존재 1. 단방향 암호화 해시 알고리즘을 이용하여, 평문을 복호화할 수 없는 형태로 암호화 저장하는 측에서 해당 데이터를 알면 안되기 때문 MD5, SHA 알고리즘이 대표적 사용자 비밀번호 등을 저장할 때 자주 사용 MD5와 SHA-0, SHA-1은 해시 충돌이 발생할 수 있는 취약점이 있어 사용 지양 Rainbow Table을 통해 원문을 알아낼 수 있음 Rainbow Table: 평문과 해시 함수로 만든 문자열을 모두 저장시켜 놓은 표 데이터를 탈취당하더라도, 원문을 알아낼 ..