목록전체 글 (29)
스테코더
HDFS 특징 파일을 여러개의 블록으로 나눠 저장 (블록사이즈 : 기본 64MB) → 블록 사이즈 metadata 사이즈 작음 (한번 쓰고 바뀌지 않으니까) 하드웨어 고장에 견고 한 데이터 블록을 보통 3군데 (Replication factor)에 저장(하나가 끊어지면 다른 rack에서 처리할 수 있도록) → 같은 rack 2개, 다른 rack에 1개 저장 Write One Read Many → 쓰기 한번 읽기 여러번 발생 Append 작업은 가능하지만 내용을 바꾸기 위해서는 파일 전체를 새로 써야함 스트리밍 데이터 액세스 → 배치잡에 최적화 MapReduce나 HBase와 같은 시스템의 기본구성블록으로 사용 계층 구조의 파일 시스템 제공 HDFS 구조 NameNode 마스터노드 HDFS마다 단 하나만 ..
특징 데이터가 있는 서버로 코드를 전송 데이터프로세싱을 키/밸류 데이터셋의 변환으로 진행 (mapper와 reducer) Shared Nothing 아키텍쳐 계산 중 일때는 데이터 주고 받지 않음 (그래야 하나가 망가져도 괜찮음) MapReduce 프레임웍에서 동작하는 mapper들끼리 그리고 reducer끼리는 서로에 대한 의존성없이 동작 하드웨어적으로 공유X (메모리, disk, cpu), 네트워크로 연결되어 메세지 주고 받음 Data Locality를 최대한 활용 Mapper를 실행한 서버를 찾을 때 입력파일블럭을 이미 갖고 있는 서버나 같은 Rack에 있는 서버를 찾으려고 시도 사용 적합 분야 병렬도가 높은 Jobs, 로그 분석, 머신 러닝, 데이터 마이닝 사용 부적합 분야 리얼타임 데이터 처리,..
하둡이란? → 대용량의 데이터를 분산처리해줄 수 있도록 해주는 아파치 톱 레벨 오픈소스 프로젝트 분산파일시스템(HDFS)와 분산처리시스템(MapReduce)로 구성 → 이 둘은 한 물리적인 클러스터에 공존 (Name Node/JobTracker 같이, Data Node/Task Tracker 같이) 분산파일시스템(HDFS) : 데이터를 저장, 관리 분산처리시스템(MapReduce) : 저장된 데이터를 기반으로 데이터 처리 하둡의 특징 데이터가 있는 곳으로 코드를 이용 (기타 다른 계산 framework에도 적용) → 대부분의 경우 데이터이 크기가 더 큼 (code < data, code→data로 보내는 게 핵심) 스케일 업에 해당 스케일 아웃 : 서버를 계속 늘리는 것 (복잡도 급격히 업) 스케일 업 ..
☝️ 퍼미션이란? 기기의 특정 기능을 사용하기 위해서 앱이 받는 허가이다. 퍼미션을 받지 않은 상태에서 앱이 특정 기능을 사용할 경우 예외가 발생한다. 과거의 Permission 정책 앱에 지정만 하면 자유롭게 permissin 획득이 가능했다. 설치 시 Permission에 대한 안내를 하고, 설치 이후에는 사용자가 변경할 수 없었다. 새로운 Permission 정책 (Android 6.0 이후) 보안 위험에 따라 Permission 종류를 그룹으로 분류한다. 중요한 Permission은 실행 중 Permission 사용 여부를 사용자가 결정한다. 1. 실행 중 퍼미션 확인 및 추가 ✏️ 1-1. 네트워크 퍼미션 필요한 퍼미션을 AndroidManifest에 추가한다. 네트워크 퍼미션 ACCESS_FI..
☝️ Custom View란? 미리 만들어 놓은 뷰가 아닌 개발자가 직접 모양 및 기능 등을 정의하여 만든 뷰이다. 커스텀 뷰는 View 클래스를 상속받아 필요한 메소드를 재정의함으로써 만들 수 있다. 이 때, XML 에서 직접 작성한 View를 사용하기 위해서는 View의 생성자를 모두 재정의 해야한다. class MyView extends View { // XML에서 다른 View와 함께 사용하고자 할 때는 반드시 모든 생성자를 재정의 public MyView(Context context) { // 기본 생성자 (필수) super(context); } public MyView(Context context, AttributeSet attrs) {..} public MyView(Context contex..
2022년 11월 21일 이번주 강의에서는 Javascript와 jQuery의 기초, 그리고 저번주 배웠던 것들을 바탕으로 새로운 미니 프로젝트를 한다. Memo를 작성, 조회, 변경, 삭제까지 구현할 예정이다. 난 지금 백엔드인 Spring을 공부중이기 때문에 프론트엔드인 html과 css는 주어져있었다. 저번에 혼자 디자인까지 하려니 굉장히 막막했는데 너무 다행이었다. 오늘 공부한 것 API 설계하기 기능 Method URL Return 메모 생성하기 POST /api/memos Memo 메모 조회하기 GET /api/memos List 메모 변경하기 PUT /api/memos/{id} Long 메모 삭제하기 DELETE /api/memos/{id} Long Repository 만들기 Memo 클래스..
알고리즘 - BFS 너비 우선 탐색 시작점에서 가까운 정점부터 순서대로 방문하는 탐색 알고리즘 ! 프림의 최소 스패닝 트리 알고리즘 등이 이를 골격으로 하고 있음 📝풀어볼 문제 미로 탐색 토마토 다리 만들기 너비 우선 탐색 (BFS) 위의 그림을 너비 우선 탐색을 사용하면 H0(단계) → H1(단계) → H2(단계) 순으로 방문 ⇒ K단계에 방문하는 정점들은 시작점으로부터 최단거리가 K (최단거리 : 이동하는 데 필요한 최소 개수의 간선) ⚠️ 각 정점을 방문할 때마다 모든 인접 정점들을 검사 → 이 중 처음 보는 정점을 발견하면 방문 예정이라고 기록 → 모든 인접 정점을 검사한 후 방문 너비 우선 탐색 구현할 경우 : 큐(Queue)의 성질 활용 ⇒ 큐에 넣을 때 방문 여부를 체크 (discovered..
알고리즘 - DFS 깊이 우선 탐색 그래프의 모든 정점을 발견하는 가장 단순하고 고전적인 방법 ! 탐색의 각 과정에서 가능한 한 그래프 안으로 ‘깊이’ 들어가려고 시도하며, 막힌 정점에 도달하지 않는 이상 뒤로 돌아가지 않는다 📝풀어볼 문제 DFS와 BFS 연결 요소의 개수 순열 사이클 깊이 우선 탐색 (DFS) ⚠️ 가장 중요한 특정은 더 따라갈 간선이 없을 경우 이전으로 돌아간다는 것 깊이 우선 탐색 구현할 경우 : 스택(stack)의 성질을 활용 → 방문하는 순서대로 정점을 스택에 쌓고 방문이 끝나면 스택에서 pop 알고리즘 해결할 경우 : 재귀 호출을 이용 → 재귀 호출한 함수가 종료하면 호출한 위치로 다시 돌아가기 때문 ✔️ 깊이 우선 탐색은 그래프 전체의 구조를 파악하기 위해 사용되므로, 그래..