전체 글 380

[우아한테크코스/프리코스] #3 로또

3주차 미션은 로또 게임을 구현하는 것으로, 다음 두 가지 목표가 추가되었다 클래스(객체)를 분리하는 연습 도메인 로직에 대한 단위 테스트를 작성하는 연습 구입금액을 입력해 주세요. 8000 8개를 구매했습니다. [8, 21, 23, 41, 42, 43] [3, 5, 11, 16, 32, 38] [7, 11, 16, 35, 36, 44] [1, 8, 11, 31, 41, 42] [13, 14, 16, 38, 42, 45] [7, 11, 30, 40, 42, 43] [2, 13, 22, 32, 38, 45] [1, 3, 5, 14, 22, 45] 당첨 번호를 입력해 주세요. 1,2,3,4,5,6 보너스 번호를 입력해 주세요. 7 당첨 통계 --- 3개 일치 (5,000원) - 1개 4개 일치 (50,000..

[HUFS/정보보안] #6 인터넷 보안, 암호의 이해

인터넷 보안 DNS 인터넷에서 식별할 ID인 IP 주소가 숫자로만 되어있어 직관적이지 않아 이름을 붙인 형태 사용 ex) www.naver.com, www.hufs.ac.kr 이름을 IP 주소로 변환해주는 DNS 서버는 계층적으로 구성된 분산 데이터베이스로 관리된다 * 하나의 이름에 여러 개의 IP를 지정해 부하 분산 (특히 웹 서버의 경우) DNS 서버가 공격받는 경우 인터넷이 정상 작동해도 서비스가 마비될 수 있다 DDoS 공격: 과도한 트래픽을 발생시켜 루트 DNS 서버를 공격하는 경우 핑 메시지를 차단하거나 캐시를 통해 루트 DNS 트래픽을 감소시켜 대응, TLD 서버 공격은 대체제가 없어 위험 가로채기: DNS 패킷을 가로채거나 가짜 패킷을 보내는 경우 (구현이 어려워 거의 없음) DNS 구조에..

[HUFS/GnuVil] #20 이터러블, 스프레드 문법, 디스트럭처링 할당

이터러블 ES6에서 도입된 이터레이션 프로토콜은 순회 가능한 자료구조를 위해 미리 정의한 규칙이다. ES6 이전의 배열, 문자열, 유사 배열 객체, DOM 컬렉션 등은 통일된 규약 없이 다양한 방법으로 순회할 수 있는데, ES6에서는 순회 가능한 자료구조를 이터러블로 통일해 for…of문, 스프레드 문법, 디스트럭처링 할당의 대상으로 사용할 수 있도록 일원화했다 const isIterable = v => v !== null && typeof v[Symbol.iterator] === 'function'; // 배열, 문자열, Map, Set 등은 이터러블이다. isIterable([]); // -> true isIterable(''); // -> true isIterable(new Map()); // ->..

[HUFS/GnuVil] #19 DOM

DOM은 HTML 문서의 계층적 구조와 정보를 표현하며 이를 제어할 수 있는 API, 즉 프로퍼티와 메서드를 제공하는 트리 자료구조다 노드 HTML 문서를 구성하는 개별적인 요소인 HTML 요소(element)는 렌더링 엔진에 의해 파싱되어 DOM을 구성하는 노드 객체로 변환된다. 이 때 어트리뷰트는 어트리뷰트 노드로, 텍스트 콘텐츠는 텍스트 노드로 변환된다 노드들은 계층 구조로, 비선형 자료구조인 트리 자료구조를 이룬다 DOM을 구성하는 노드 객체는 표준 빌트인 객체가 아닌 브라우저 환경에서 추가적으로 제공되는 호스트 객체이며, 프로토타입에 의해 다음과 같은 상속 구조를 갖는다 DOM API는 이러한 노드 타입에 따라 필요한 기능을 DOM API로 제공하고, 이를 통해 HTML의 구조나 내용, 스타일 ..

[HUFS/GnuVil] #18 브라우저의 렌더링 과정

구글의 V8 엔진으로 빌드된 자바스크립트 런타임 환경인 Node.js의 등장으로 자바스크립트는 브라우저를 벗어나 서버 사이드에서도 사용될 수 있는 범용 개발 언어가 되었으며, 대부분의 프로그래밍 언어는 운영체제나 가상 머신 위에서 실행되지만 자바스크립트는 브라우저에서 HTML, CSS와 함께 실행되어 파싱 및 렌더링 된다 파싱: 프로그래밍 언어의 문법에 맞게 작성된 텍스트 문서를 읽어 들여 토큰으로 분해하고 문법적 의미와 구조를 반영해 트리 자료구조 형태를 생성하는 일련의 과정을 말한다 렌더링: HTML / CSS / JS로 작성된 문서를 파싱해 브라우저에 시각적으로 출력하는 것을 말한다 브라우저의 핵심 기능은 필요한 리소스(HTML, CSS, JS, 이미지, 폰트 등의 정적 파일, 서버에서 동적 생성한..

[우아한테크코스/프리코스] #2 숫자 야구

2주차 미션은 숫자 야구 게임을 구현하는 것으로, 함수를 분리하고 각 함수별로 테스트를 작성하는 것이 목표이다. 숫자 야구 자체가 생소했기 때문에 먼저 어떤 게임인지 알아보기로 했다 Wordle과 비슷한 느낌인데 숫자의 위치와 값을 맞추는 CLI 형태의 게임인 것 같다. 특이한 점은, 우아한테크코스에서 자체 제작한 MissionUtils 라이브러리를 사용해 구현해야 한다는 점이다 MissionUtils 라이브러리🔽 GitHub - woowacourse-projects/javascript-mission-utils: Utility library for mission Utility library for mission. Contribute to woowacourse-projects/javascript-missi..

[HUFS/빅데이터] #5 데이터베이스

데이터베이스 이해하기 데이터베이스란 업무 처리를 위해 사용자들이 공용으로 사용하기 위해 통합, 저장된 운영 데이터의 집합이다 데이터베이스의 정의 통합된 데이터(Integrated Data): 하나의 주제에 따라 중복을 최소화한 데이터 저장된 데이터(Stored Data): 언제든지 이용할 수 있도록 저장된 데이터 집합 공용 데이터(Shared Data): 여러 사용자가 다수의 응용시스템을 공유하는 데이터 운영 데이터(Operational Data): 중복을 최소화하고 여러 사람이 공유함에 있어서 문제가 발생하지 않도록 관리를 필요로 하는 데이터의 집합 데이터베이스의 특징 계속적인 변화(Continuous Evolution): 항상 최신의 데이터로 유지 동시 공유(Concurrent Sharing): 여러..

[HUFS/빅데이터] #4 데이터 소스, 스크레이핑

데이터 포맷 설명 및 비교🔽 데이터 포맷 설명 및 비교 (XML, JSON, CSV) 각 포맷 장단점 및 비교 데이터 크기 : XML > JSON > CSV XML JSON CSV 장점 ‣ XML은 3가지 포맷중 가장 직관적이다. ‣ 메타 정보를 제공해서 정보 표현 이상의 효과를 가져올 수 있다. ‣ 모양과 규칙 자 loosie.tistory.com 크롤링(Crawling): 프로그램이 웹 사이트를 정기적으로 돌며 정보를 추출하는 기술로, 검색 엔진을 구현할 때 사용하는 크롤러는 웹 사이트의 링크를 타고 돌며 웹 사이트를 돌아다닌다 스크레이핑(Scraping): 웹 사이트에 있는 특정 정보를 추출하는 기술을 의미한다 BeautifulSoup로 스크레이핑하기🔽 파이썬 웹 크롤링 기초 (BeautifulSo..

[HUFS/GnuVil] #17 String, Symbol

String 표준 빌트인 객체인 String 객체는 생성자 함수 객체로, 형변환으로도 사용될 수 있다 // 숫자 타입 => 문자열 타입 String(1); // -> "1" String(NaN); // -> "NaN" String(Infinity); // -> "Infinity" // 불리언 타입 => 문자열 타입 String(true); // -> "true" String(false); // -> "false" // 문자열은 원시값이므로 변경할 수 없다. 이때 에러가 발생하지 않는다. strObj[0] = 'S'; console.log(strObj); // 'Lee' 유사 배열 객체이므로 인덱스로 접근할 수 있지만 원시 값이라서 변경할 수 없다 String 프로퍼티: length String 메서드: ..

[HUFS/GnuVil] #16 Number, Math, Date, RegExp

Number // 문자열 타입 => 숫자 타입 Number('0'); // -> 0 Number('-1'); // -> -1 Number('10.53'); // -> 10.53 // 불리언 타입 => 숫자 타입 Number(true); // -> 1 Number(false); // -> 0 표준 빌트인 객체인 Number 객체는 숫자를 생성하는 생성자 함수로, 형변환으로도 사용된다 Number 프로퍼티: EPSILON / MAX_VALUE / MIN_VALUE / MAX_SAFE_INTEGER / MIN_SAFE_INTEGER / POSITIVE_INFINITY / NEGATIVE_INFINITY / NaN Number 메서드: isFinite / isInteger / isNaN / isSafeInteg..