본문 바로가기

전체 글243

[DB] Hadoop 과 Spark 요약정리 / 3️⃣ - RDD란? 목차 RDD (Resilient Distributed Dataset) Why RDD? 주요 특징 작동방식 RDD 의 생성 RDD 연산 연산 예시 계보 (Lineage) 예시 Lazy Execution 작업 스케쥴링 참고 RDD (Resilient Distributed Dataset) 💡 여러 분산 노드에 걸쳐서 탄력적으로 저장되는 변경이 불가능한 데이터 구조 Spark 의 핵심 데이터 모델 병렬처리 가능 에러 시에도 스스로 복구가 가능 Why RDD? 인메모리 데이터 처리를 위한 데이터 셋 데이터 분산 저장을 위해 데이터에 Fault Tolerance 적용 가능 주요 특징 여러 분산 노드에 나누어짐 매우 효율적인 분산처리 다수의 파티션으로 관리됨 하나의 RDD 는 여러 파티션으로 나뉜다. 파티션의 개수,.. 2021. 3. 7.
[DB] Hadoop 과 Spark 요약정리 / 1️⃣ - 하둡(Hadoop), MapReduce 목차 하둡(Hadoop) 하둡이란? MapReduce 왜 Map-Reduce인가?? MapReduce 의 용어 정리 MapReduce 진행과정 MapReduce Architecture HDFS 주요 특징들 아키텍쳐 참고 하둡(Hadoop) 하둡이란? 데이터 병렬분산처리를 위한 오픈소스 프레임워크 장점 오픈소스로 라이선스에 대한 비용 부담이 적음 시스템을 중단하지 않고, 장비의 추가가 용이(Scale Out) 일부 장비에 장애가 발생하더라도 전체 시스템 사용성에 영향이 적음(Fault tolerance) 저렴한 구축 비용과 비용대비 빠른 데이터 처리 오프라인 배치 프로세싱에 최적화 단점 HDFS에 저장된 데이터를 변경 불가 실시간 데이터 분석 같이 신속하게 처리해야 하는 작업에는 부적합 너무 많은 버전과 .. 2021. 3. 7.
[TypeScript] 타입스크립트 스타일 가이드 요약 📋 (Ver. Google) / 1️⃣ - 식별자 (Identifiers) 스타일가이드란? 개발자라면 보통 본인들이 코딩을 할때 시스로 지키는 convention 들이 있을 것입니다. 변수 이름 짓는 방법이라던가, 들여쓰기의 정도, 줄바꿈 등등등 이런것들이 각각 다르겠죠? 헌데 협업, 혹은 대규모 개발을 할 때는, 코딩 스타일에 규칙을 정해놓고 통일할 필요가 있습니다. 구글에서는 이런 상황에서 서로 맞출 style 들을 지정해서 문서화 두었습니다. 워낙 체계적으로 잘 돼있어서 여러 기업, 프로젝트 들에서 사용됩니다. 구글 스타일 가이드 : google.github.io/styleguide/ Google Style Guides Style guides for Google-originated open-source projects google.github.io TypeScript 저는.. 2021. 3. 4.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 3️⃣ - JavaScript (2) Scope 란 무엇인가요? 변수가 값을 참조할 때 접근할 범위 이고, 흔히 그 접근할 수 있는 범위를 찾는 규칙을 말합니다. 자바스크립트는 함수 코드 블록 내에서 선언된 변수는 함수 내부에서만 유효한 함수 레벨 스코프를 따릅니다. 동적 스코프 VS 렉시컬 스코프 동적 스코프 : 함수가 호출 되는 순간에 상위 스코프를 결정 렉시컬 스코프 : 함수가 선언 되는 순간에 사위 스코프를 결정 this 는 무엇을 의미할까요? 자바스크립트에서 실행하는 환경의 context를 의미하는 객체입니다. 상황에 따라 다르지만 간단하게 예시를 들어보자면 특정 객체 안에서의 this 는 해당 객체를 의미하고, 글로벌한 환경에서의 this는 window 객체를 의미합니다. 함수에서 쓰였을 때 : 함수를 실행시킨 곳의 객체 메소드에.. 2021. 3. 3.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 4️⃣ - 데이터베이스 (1) 왜 데이터베이스인가요? (데이터베이스 VS 파일 시스템) 우선 가장 큰 이유는 Data를 관리하는 게 매우매우 중요하기 때문에 데이터베이스라는 시스템을 통해 관리하는게 좋습니다. 자세히 설명드리자면, 데이터베이스를 이용하게 되면 파일 시스템과 달리 응용프로그램과의 dependancy가 줄어들고, 데이터 무결성 구현도 쉬워집니다. 그리고 데이터베이스 자체적으로 보안이라던가, 일관성, 중복 문제들을 관리할 수 있게 됩니다. 독립성 무결성 일관성 보안성 중복 최소화 인덱스란 무엇인가요? 데이터베이스에서 데이터를 읽을 때 빠르게 탐색할 수 있기 위해 설정해두는 색인같은 것 입니다. 비트리 인덱스나 해쉬 인덱스 알고리즘등이 주로 사용됩니다. 인덱스를 사용해야 하는 경우 데이터 양이 많고 검색이 변경보다 빈번한 경.. 2021. 3. 2.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 3️⃣ - JavaScript (1) 블로킹과 논블로킹 언어가 무엇인가요? 예를들어보자면 파이썬은 블로킹 언어고 자바스크립트는 논블로킹 언어입니다. 즉 자바스크립트는 다음 코드가 연산이 끝나는 것을 기다리지 않아도 된다는 것을 의미합니다. 그렇기 때문에 자바스크립트는 비동기적으로 작업이 가능하게 됩니다. 그래서 어떠한 작업이 끝나고 이루어져야 하는 작업들은 async/await 나 콜백 함수를 이용해서 이루어지게 됩니다. 자바스크립트의 이벤트 루프에 대해 설명해주세요. 우선 자바스크립트는 기본적으로 싱글 스레드 이벤트 루프 형태를 가지고 있습니다. 자바스크립트에는 Stack 이 있고 Queue가 있는데, setTimeout 과 같은 함수들은 메세지 큐, 즉 콜백 큐로 들어가게 되고, 그 메시지가 실행되야되는 상황에 만약 Stack 이 비었있.. 2021. 3. 2.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ 2️⃣ - 운영체제 (2) 가상 메모리란 무엇인가요? 메모리는 한정적인데 프로세스 용량이라던가, 프로세스의 수가 늘어나면 다중 프로그래밍이 힘들어질 수 있습니다. 그럴 때를 대비해서, 프로세스의 데이터 전체가 메모리에 올라가지 않더라도, 가상의 주소공간을 이용해서 프로세스를 유지할 수 있게끔 해주는 것을 의미합니다. 가상메모리와 스왑(swap) 과는 다르다. 더 많은 프로세스를 동시에 실행이 가능해진다. 자동적으로 CPU 이용률 또한 높아진다. 페이징이란 무엇인가요? 프로그램은 실제 물리적 메모리를 직접적으로 이용하지 않습니다. 가상 메모리를 이용하게 되고, 그 가상메모리가 결국에는 물리적 메모리에 접근해서 메모리를 이용하게 되는데, 이 때 가상메모리를 일정한 크기의 블록으로 나누어 관리하는 것이 Paging , 물리적 메모리를 .. 2021. 3. 2.
[IT 면접대비] 개발자 기술면접 대비 🖥️/ - 2️⃣ 운영체제 (1) 프로세스와 쓰레드에 대해 설명해주세요. 프로세스는 프로그램이 실행되서 메모리에 적재되어있고, CPU 의 할당을 받을 수 있는 상태를 의미합니다. 운영체제로 부터 Code, Data, Stack, Heap 을 할당받은 상태입니다. 쓰레드는 이 프로세스의 실행 단위라고 할 수 있으며, 프로세스 내부 자원을 공유하면서, 하나의 프로세스를 좀 더 효율적이게 실행시키는 멀티쓰레딩이 가능하게 됩니다. 구체적으로 말씀드리자면, 각각의 쓰레드는 프로세스의 Code, Data, Heap 은 공유하지만 고유의 Thread ID, Stack, 레지스터, PC 를 가지게 되고 독립적인 작업을 수행하게 됩니다. - 당연히 잘 알고 있다고 생각했는데, 막상 면접에서 이 질문이 들어오니 체계적으로 설명을 못하더라구요... 방심했던.. 2021. 3. 1.