클라우드 아키텍트를 넘어서 데이터 아키텍트가 되어보기

➡️ 렛츠고

나의 아키텍처 설계 원칙을 갖고, 선배 개발자들과 의논할 수 있는 사람이 되고 싶다. 그래서 내 의견을 말하고, 다른 분의 의견에 대해 반박이나 지지하는 의견을 제시할 수 있게 하자!

[ 데이터 플랫폼 구축하기 ]
- 데이터 플랫폼의 고객: 데이터
- 아키텍처
- 클라이언트와의 인터랙션
- 데이터 수집 방법
- 일괄 처리 (Batch Job)
- 스트리밍 데이터 처리 (실시간 데이터 처리)
- 데이터 접근
- Case Study) Airbnb의 이벤트 로그 처리
- Case Study) LINE 광고 데이터 파이프라인 BigDB
[ 더 알아보기 ]
- Spark
- Kafka
- Scala

[ 데이터 플랫폼 구축하기 ]

데이터 플랫폼의 고객: 데이터

정형 데이터

  • 데이터베이스의 정해진 규칙(Ru …

카카오 2021 인턴십

공식 해설

사람이 있는 정점들에서 시작하는 깊이 우선 탐색(DFS) 또는 너비 우선 탐색(BFS) 알고리즘을 사용하면 해결이 가능합니다. 이때, 거리 2 이내만 확인하면 된다는 점에 유의하여 구현해야 합니다.
이 방법 이외에도, 거리 2 이내까지만 확인하면 문제를 풀 수 있기 때문에 이중 반복문을 사용해서 직접 한 칸씩 확인하는 것도 충분히 가능한 방법입니다.

문제

코드

  • 문제에 거리를 표현하기 위한 값들이 존재해서 가독성이 떨어질 수 있다. 이럴 경우, 상수로 만들어서 가독성을 높이자! ex. nx, ny = x+dx, y+dy
  • dist 의 경우에 따라 상황이 달라지기 때문에, 각각의 경우를 나누어서 구해준다.


빅데이터 시스템 기초개념 잡기

목차
* 빅데이터를 다루는 작업
* 빅데이터
* 빅데이터 시스템의 구성
* 빅데이터 시스템의 근간: 하둡
- HDFS
- MapReduce

참고 서적

빅데이터를 다루는 직업

  • 데이터 엔지니어: 이 글에서 소개되는 빅데이터 시스템을 구축하는 엔지니어. 소프트웨어 엔지니어링적인 노력이 필요함.
  • 데이터 과학자: 빅데이터 시스템 운영. 프로그래밍 기술 외에도 수학/통계 등의 지식, 해당 비즈니스 도메인에 대한 이해가 필요합니다. 데이터를 보고 그 데이터를 바탕으로 어떤 가설을 세운 다음, 가설을 바탕으로 모델을 만들고, 그걸 실제로 검증하고 꾸준히 개선하는 일을 하게 됩니다. 프로그래밍 스킬이 꼭 필요한 것은 아니지만, 남의 도움 없이 일을 빨리 진행하려면 적어도 …


트라이(Trie) 자료 구조를 이용

트라이: 문자열을 저장하고 효율적으로 탐색하기 위한 트리 형태의 자료구조

문제

공식해설

원래 문자열을 이용해 만든 트라이와, 문자열을 뒤집어서 만든 트라이 두 개를 이용해야 합니다.

문제분해 → 자료표현 → 일반화

  • 효율적인 문자열 검색(키워드 매치): 트라이 자료구조 이용
  • ? 이 접두사로 사용할 경우 트라이 자료구조 시작점을 찾는 데 어려움이 있음: 문자열을 뒤집어서 만든 트라이를 하나 더 사용(접두사, 접미사 둘 중 하나이기 때문에)

구현1. 트라이 (정확성, 효율성)

참고: 프로그래머스 풀이

트라이의 노드에 메타데이터를 저장하고, 그 데이터를 검색에 활용한다.

구현2. 이진검색 (정확성, 효율성) O(NlogN)

참고블로그 : velog.io/@tjdud0123 (이분은 천재이신 듯.. )

쿼리랑 같은 단어들을 탐색하는데, 접두사인지 접미사인지에 따라 ?를 a와 …


HOW TO Manage Memory by OS

캐시의 지역성

캐시 메모리는 속도가 빠른 장치와 느린 장치간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리

CPU가 어떤 데이터를 원할 것인가를 어느정도 예측할 수 있어야 한다. 적중율을 극대화시키기 위해 데이터 지역성의 원리를 사용한다. 지역성의 전제조건으로 프로그램은 모든 코드나 데이터를 균등하게 Access 하지 않는다는 특성을 기본으로 한다.

메모리

메인 메모리는 CPU가 직접 접근할 수 있는 접근 장치
프로세스가 실행되려면 프로그램이 메모리에 올라와야 함

메인 메모리는 주소가 할당된 일련의 바이트들로 구성되어 있다.

  • 논리적 주소: 주소 프로그램이 실행되는 동안 CPU에 의해 생성된 것[ 가상 주소 ] → 프로그램 상에서 사용자 …


H/W, OS, Virtual Machine, Container 부터 Cloud 까지(5)

🤔 이 글의 출발점

모든 S/W 는 세단계로 정의할 수 있습니다. Input 값과 Output 값, 그리고 Input 값을 원하는 Output 값으로 만들기 위한 알고리즘으로요!

이런식으로 여러 IT 기술들의 철학, 구성이 하나의 청사진(Blue Print)으로 수렴하는 경우가 많은 것 같습니다. 소프트웨어 시리즈 글은 컴퓨터를 공부하는 분들과 이런 인사이트를 공유하며 함께 생각해보고 싶어 작성했습니다. 그럼 이번 글도 고고띵~
(수정이 필요한 부분은 꼭 알려주시면 감사하겠습니다! 😊)

[OS-파일시스템]
- 파일시스템
[클라우드 서비스]
- Azure Blob(오브젝트 스토리지)
- Azure File Storage
- Azure 빅데이터 …

Java는 어떻게 배포되는가? 키워드 중심으로…

  • 아키텍트의 역할: 아키텍처의 비용, 일정, 품질 세 가지의 균형을 맞추는 것
  • 시스템 Life Cycle
    제안 > 구축(분석 → 설계 → 구축 → 테스트 → 전개) > 최적화

어플리케이션

  • 스프링: 스프링으로 애플리케이션을 개발하려면 사전에 많은 작업을 해야 한다. 라이브러리 추가 및 의존성 관리 그리고 스프링 프레임워크가 처리할 작업을 알려주고 이를 위한 여러가지 구성 및 설정 파일을 작성하는 것은 모두 개발자가 해야 할 작업
    → 프로젝트에 따라 자주 사용되는 라이브러리들이 미리 조합되어 있음
    → 복잡한 설정을 자동으로 처리해줌
    → 내장 서버를 포함해서 톰캣과 같은 서버를 추가로 설치하지 않아도 바로 개발이 가능
    → 톰캣과 같은 …

인프라 엔지니어라면, 특정 클라우드 인프라에 종속되지 말자! (3)

참고 자료

오픈 스택을 처음 공부하는 사람이라면, 아래 책을 꼭 읽어봤음 좋겠다!

위에 자료들을 보고 공부하며 정리한 내용입니다. 혹시 수정이 필요한 내용이 있으면, 댓글 달아주시면 감사하겠습니다 😊

목차

클라우드 리소스와 제어 방법(1) 보러 가기

[오케스트레이션]
- 스택
- 템플릿
- 장점과 단점
- API
[멀티클라우드]
- 전용 네트워크
- CDN
[이뮤터블 인프라스트럭처]
- 기존 인프라 환경의 문제점: 생명주기
- 이뮤터블 인프라스트럭처
- 마이크로서비스
- 컨테이너

오케스트레이션

리소스들의 관계를 정의하고 구성을 자동화함으로써 사람의 판단과 수작업을 덜어주는 기능(오픈스택 Heat, AWS의 Cloud Formation) → 스택으로 구성

  • DevOps 오케스트레이션(자동화Task)
    → 조직의 DevOps 프로세스를 자동화 툴의 태스크로 만듦
    → API 로 제어되는 클라우드 관리 플랫폼 상에 구현된 …

“컴퓨터 과학에서 어려운 것은 딱 두 가지다. 캐시 무효화, 그리고 이름 짓기(Phil Karlton)”

참고

CPU Caches

CPU 칩에는 여러 개의 캐시가 들어가며, 각각의 캐시는 각자의 목적과 역할을 가지고 있다. 오늘날 CPU 칩의 면적 30~70% 는 캐시가 차지한다.

  • L1 Cache : 프로세서와 가장 가까운 캐시. 속도를 위해 I$ 와 D$로 나뉜다.
    → Instruction Cache(I$): 메모리의 TEXT 영역 데이터를 다루는 캐시
    → Data Cache(D$): TEXT 영역을 제외한 모든 데이터를 다루는 캐시
  • L2 Cache : 용량이 큰 캐시. 크기를 위해 L1 캐시처럼 나누지 않는다.
  • L3 Cache : 멀티 코어 시스템에서 여러 코어가 공유하는 캐시

성능 측정

  • 캐시의 성능을 측정할 때, Hit Latency와 Miss L …

Contributor Project(8)

Contributor Project 의 목표

프로젝트를 한 지 최소 몇개월에서 1년 정도 지났기 때문에, 한번 더 정리하며 기억을 되살릴 필요성을 느꼈다. 그래서 다음과 같이 세 가지 점을 중심으로 세세하게 정리해보고자 한다.

  1. ❗️ 어떤 문제가 발생했는지
  2. 💬 어떤 고민을 했는지
  3. 💡 어떤 접근법을 가지고 문제를 해결했는지

쇼핑몰 개발

  • 프로젝트 목적 : 회사 서비스에 최적화된 자사 쇼핑몰 개발
    → 기존에는 네이버 스마트 스토어에서 주문 정보를 받음
    → PDF 형식의 제품을 이메일로 수동 발송
  • 제품 주문과 발급이 하나의 서비스에서 이루어지도록 하는 것이 목적
  • R&R : 백엔드 개발 + 프론트엔드 로직 + 배포 및 운영
  • 다른 팀원 : 기획자(고객), 프론트엔드 개발자

프로젝트 상황

  • 시간과 범위: 제품의 완 …

SoniaComp

I will be a software architect.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store