분류 전체보기(289)
-
JIT vs AOT 컴파일러
Overview 회사에서 개발하고 있는 Angular Landing 프로젝트에서 Angular 9 버전 업데이트를 하기 위해 Angular 공식문서를 살펴보게 되었습니다. 먼저 Angular 9 버전으로 업데이트를 하게 만든 Localize기능이 추가가 되었고(Localize 기능 업데이트로 인해서 다국어를 지원하는 경우 빌드 시간이 획기적으로 개선되었습니다), IVY 컴파일러로 업데이트 되면서 AOT 컴파일을 디폴트 옵션로 지원한다는 내용이 있었습니다. 웹 프레임워크에서 AOT 컴파일을 지원하게 될 경우에 갖는 장점이 있는데, 이번 포스팅에서는 AOT 컴파일은 무엇을 의미하는지, 그리고 AOT와 항상 같이 비교되는 JIT 컴파일은 무엇을 의미하는지에 대해서 살펴보도록 하겠습니다. (AOT 컴파일에 대한..
2020.06.16 -
[백준 2042] 구간 합 구하기
풀이 구간 합을 구하기 위해서 펜윅 트리를 사용하였습니다. 펜윅 트리에 대한 자세한 내용은 펜윅트리 포스팅을 참고해주세요 소스 코드 (JAVA) import java.util.*; public class BOJ_2042 { public static void main(String args[]){ Scanner input = new Scanner(System.in); int n = input.nextInt(); int m = input.nextInt(); int k = input.nextInt(); long[] matrix = new long[n+1]; FenwickTree fenwick = new FenwickTree(n); // initialize fenwick tree for(int i=1;i
2020.06.14 -
펜윅 트리(Fenwick Tree)
Overview 펜윅 트리 (Fenwick Tree)는 구간 합을 빠르게 구하기 위해 고안된 자료구조입니다. 결론부터 말씀을 드리면 구간트리의 진화된 형태라고도 할 수 있습니다. 기존의 배열 자체에서 구간 합을 구하기 위해서는 해당 구간을 모두 순회하면서 값을 더해야 하므로 구간 길이에 비례하는 시간이 소요됩니다. O(N)의 시간복잡도를 갖는다는 의미이죠. 이를 더 빠르게 구현하기 위해 고안된 자료구조가 바로 구간트리이며, 구간트리가 갖는 장점을 살리면서 메모리를 훨씬 더 절약할 수 있도록 고안된 자료구조가 바로 펜윅 트리입니다. (구간 트리에 관한 자세한 내용은 구간 트리를 다룬 포스팅을 참고해주세요) Definition 펜윅 트리가 갖는 중요한 아이디어는 구간 합을 구하기 위해서 부분 합만을 빠르게 ..
2020.06.14 -
[Crawler] Selenium으로 Everytime 크롤링하기
친구의 학부논문 연구를 도와주기 위해 웹 크롤링을 사용할 일이 생겨서 Selenium을 사용한 크롤링 개발 후기를 포스팅하게 되었습니다. 크롤링(Crawling)이란, 인터넷상에서 방대한 정보들 중 원하는 정보들을 분석하기 쉬운 형태로 수집하는 것을 의미하며 크롤링을 위해 웹 페이지를 돌며 자료를 수집하는 프로그램을 크롤러(Crawler)라고 합니다. 연구 주제가 '인스타그램과 에브리타임 등 인터넷 플랫폼에서 나타나는 종결어미의 형태변이'에 관한 것이기 때문에 이번에 제작한 크롤러는 에브리타임을 크롤링하며 사람들의 대화 목록들을 수집하고 딥러닝 프레임워크를 이용해서 이를 분석하여 형태 변이가 일어난 종결어미를 포함한 문장들을 필터링하여 텍스트 파일로 저장하는 역할을 수행합니다. 인스타그램을 이용한 크롤러..
2020.05.10 -
HTTPS란
이 포스팅은 HowHttpsWorks를 정리한 글임을 서두에 밝힙니다. HTTP는 HyperText Transfer Protocol의 약어로, 인터넷에서 HTML, JSON, XML 등 텍스트 기반의 데이터를 주고받을 수 있는 프로토콜을 의미합니다. HTTP가 등장하면서 웹도 덩달아서 빠르게 발전하게 되었는데 이에 따라 도청, 중간자 공격 등 여러 보안 문제들이 발생하게 되었습니다. 이를 해결하기 위해 등장한 프로토콜이 이번 포스팅에서 설명할 HTTPS(HTTPS + Secure)입니다. 어떤 사이트에 접속했을 때, 브라우저의 URL표시 줄에 위의 그림처럼 녹색 자물쇠가 나타나는 경우가 있습니다. (브라우저마다 다르지만, 대체로 잠겨있는 자물쇠가 같이 표시됩니다.) 이는 브라우저와 해당 사이트를 호스팅 ..
2020.05.05 -
[Ensemble] 앙상블 학습
앙상블 (프랑스어: ensemble)은 전체적인 어울림이나 통일. ‘조화’로 순화한다는 의미이다. 앙상블(Ensemble) 학습이란? 앙상블은 위에 언급된 정의처럼, 여러 성질들을 한데 묶어 조화를 이루게 함으로써 하나로는 도달할 수 없는 어떤 특성에 도달하도록 하는 방법입니다. 주로 합창단, 연주단등 음악에 자주 쓰이는 말이지만, 최근에 머신러닝에서 학습의 효율성을 높이기 위해서 사용하는 방법이기도 합니다. 학습의 정확도가 높은 랜덤 포레스트(Random Forest) 분류기가 이 앙상블 학습을 이용한 대표적인 예라고 할 수 있습니다. 앙상블 학습은 어떤 데이터가 주어졌을 때(분류 문제라고 합시다.), 그 데이터가 어떤 클래스에 속할지를 일련의 예측기(Classifier), 즉 분류나 회귀 모델로부터 ..
2020.04.27