Skip to content

Commit

Permalink
Merge pull request #72 from Pseudo-Lab/kafka/intro
Browse files Browse the repository at this point in the history
Add Kafka Intro
  • Loading branch information
Unknown committed Aug 25, 2024
0 parents commit 23a5ff3
Show file tree
Hide file tree
Showing 514 changed files with 76,120 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: b0a3ae72c4f4d0d9c04fc09c8f1f363e
tags: 645f666f9bcd5a90fca523b33c5a78b7
Empty file added .nojekyll
Empty file.
Binary file added _images/1.0_a_day_in_data.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.0_a_day_in_data_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.0_data_literacy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.0_data_literacy_term.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.0_intro.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.1_comparing_data_management_roles.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.1_data_engineer_infographic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.1_data_engineering_life_cycle.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.1_data_science_workflow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.1_job_outlook_in_the_usa.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.1_languages_tools_software.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.1_responsibilities.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.1_snowflake_schema.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.1_star_schema.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.1_streamprocessing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.2.1_parallel.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.2.2_distribution.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.2_data_mart.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.2_etl_reverse_etl_process.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added _images/1.2_eventprocessing.png
Binary file added _images/1.3.1_cache_architecture.png
Binary file added _images/1.3.2_memory.png
Binary file added _images/1.3.3_memory_hierarchy_workflow.png
Binary file added _images/1.3.png
Binary file added _images/1.3_circuit_breaker_details.png
Binary file added _images/1.3_cost_of_low_quality_data.png
Binary file added _images/1.3_data_engineer_career_path.png
Binary file added _images/1.3_data_engineering_is_evolving.png
Binary file added _images/1.3_data_lake.png
Binary file added _images/1.3_data_reliability_engineering.png
Binary file added _images/1.3_integrated_analytics_platform.png
Binary file added _images/1.3_site_reliability_engineering.png
Binary file added _images/1.3_what_is_DRE.png
Binary file added _images/1.4.png
Binary file added _images/1.4_data_lakehouse.png
Binary file added _images/1.4_table_comparison.png
Binary file added _images/1.5.png
Binary file added _images/1.5_data_example.png
Binary file added _images/1.5_data_warehouse_example.png
Binary file added _images/1.5_estate_example.png
Binary file added _images/1.5_filelist.png
Binary file added _images/1.5_pipeline.png
Binary file added _images/1.5_sql_example.png
Binary file added _images/1.5_visualize.png
Binary file added _images/1.6.png
Binary file added _images/1.6_ref_data_job_trend.png
Binary file added _images/1.6_uber_data_quality_detail.png
Binary file added _images/1.6_user_data_quality.png
Binary file added _images/1.7.png
Binary file added _images/1.8.png
Binary file added _images/1.9.png
Binary file added _images/1_data_warehousing.png
Binary file added _images/2.1.png
Binary file added _images/2.1_hadoop.png
Binary file added _images/2.1_sparckstructure.png
Binary file added _images/2.2.png
Binary file added _images/2.2_de.png
Binary file added _images/2.2_hadoop_2.png
Binary file added _images/2.2_hadoop_ecosystem.png
Binary file added _images/2.2_speedcomparision.png
Binary file added _images/2.3.0_map_reduce_example.png
Binary file added _images/2.3.0_previous.png
Binary file added _images/2.3.0_previous2.png
Binary file added _images/2.3.0_spark_img.png
Binary file added _images/2.3.1_google_file_system.png
Binary file added _images/2.3.2_hdfs_architecture.png
Binary file added _images/2.3.3_snn.png
Binary file added _images/2.3.4_hdfs_read.png
Binary file added _images/2.3.5_hdfs_write.png
Binary file added _images/2.3.6_block.png
Binary file added _images/2.3.7_rack_awareness.png
Binary file added _images/2.3.8_cache1.png
Binary file added _images/2.3.9_memory.png
Binary file added _images/2.3.png
Binary file added _images/2.3_sparckclusterinfra.png
Binary file added _images/2.4.png
Binary file added _images/2.4_clusterspattern.png
Binary file added _images/2.5.1_docker_ps.png
Binary file added _images/2.5.2_hadoop_ls.png
Binary file added _images/2.5.3_yml.png
Binary file added _images/2.5.4_mapreduce_example.png
Binary file added _images/2.5.5.png
Binary file added _images/2.5.6_put.png
Binary file added _images/2.5.7.png
Binary file added _images/2.5.8.png
Binary file added _images/2.5.png
Binary file added _images/2.5_sparkjvm.png
Binary file added _images/2.6.png
Binary file added _images/2.6_rddlineage.png
Binary file added _images/2.7_sparksession.png
Binary file added _images/2.8_dag.png
Binary file added _images/3.1.png
Binary file added _images/3.1_pubsubpattern.png
Binary file added _images/3.2.png
Binary file added _images/3.2_kafkastructure.png
Binary file added _images/3.3.png
Binary file added _images/3.3_kafkastructure2.png
Binary file added _images/3.4.png
Binary file added _images/3.5.png
Binary file added _images/4.1_master-slave-structure.png
Binary file added _images/4.2.1_kvs_rank.png
Binary file added _images/4.2.2_wide_column.png
Binary file added _images/4.2.2_wide_column_rank.png
Binary file added _images/4.2.3_document_db.png
Binary file added _images/4.2.3_document_db_rank.png
Binary file added _images/4.2.3_sharding.png
Binary file added _images/4.2.4_graph_rank.png
Binary file added _images/4.2.4_graph_structure.png
Binary file added _images/4.2.4_neo4j.png
Binary file added _images/4.2.4_neo4j_example.png
Binary file added _images/4.2_storm-structure.png
Binary file added _images/4.3_storm-tuple.png
Binary file added _images/4.4_storm-topology.png
Binary file added _images/4.5_storm-topology.png
Binary file added _images/5.1_flink-api.png
Binary file added _images/5.2_flink-api2.png
Binary file added _images/5.3_flink-feature.png
Binary file added _images/5.4_flink-structure.png
Binary file added _images/5.5_flink-ecosystem.png
Binary file added _images/7_1_1.png
Binary file added _images/7_1_2.png
Binary file added _images/7_2_1.png
Binary file added _images/7_2_2.png
Binary file added _images/7_2_3.png
Binary file added _images/7_2_4.png
Binary file added _images/7_2_5.png
Binary file added _images/7_3_1.png
Binary file added _images/7_4_1.png
Binary file added _images/7_4_2.png
Binary file added _images/9.3.1_architecture_dbt.png
Binary file added _images/9.3.1_example_apache_superset.png
Binary file added _images/9.3.1_example_elt_pipeline_with_dbt.png
Binary file added _images/9.3.3_gcp_recommend_pipeline.png
Binary file added _images/9.4_multi_cloud_pipeline_detail.png
Binary file added _images/9.4_multi_cloud_pipeline_overview.png
Binary file added _images/9.4_multicloud_applied.png
Binary file added _images/9.4_multicloud_consideration.png
Binary file added _images/9.5_explain_pub_sub.png
Binary file added _images/9_0_1.png
Binary file added _images/9_0_2.png
Binary file added _images/9_1_1.png
Binary file added _images/9_1_11.png
Binary file added _images/9_1_2_0.png
Binary file added _images/9_1_2_1.png
Binary file added _images/9_1_3_0.png
Binary file added _images/9_1_3_1.png
Binary file added _images/9_1_4.png
Binary file added _images/9_3_1.png
Binary file added _images/9_4_1.png
Binary file added _images/9_5_1.png
Binary file added _images/9_5_2.png
Binary file added _images/___.png
Binary file added _images/appendix_cloud_services.png
Binary file added _images/appendix_hybrid_computing.png
Binary file added _images/de4e_main.png
Binary file added _images/other_way.png
Binary file added _images/sub_page1_1.png
Binary file added _images/sub_page2_1.png
Binary file added _images/sub_page2_2.png
Binary file added _images/sub_page2_3.png
Binary file added _images/sub_page2_5.png
Binary file added _images/sub_page2_6.png
Binary file added _images/sub_page2_7.png
Binary file added _images/sub_page2_8.png
Binary file added _images/sub_page2_9.png
Binary file added _images/sub_page3_1.png
Binary file added _images/sub_page3_2.png
Binary file added _images/sub_page3_3.png
Binary file added _images/sub_page4_1.png
Binary file added _images/sub_page4_2.png
Binary file added _images/sub_page4_3.png
Binary file added _images/sub_page4_4.png
Binary file added _images/sub_page4_5.png
Binary file added _images/update_info.png
87 changes: 87 additions & 0 deletions _sources/docs/0_checklist/list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# 📝 Check List
![main_image](../../../img/update_info.png)
---

## Acknowledgement
[가짜연구소](https://pseudo-lab.com/)는 DataCamp의 후원을 받아 Donates 프로그램을 진행하고 있습니다. 프로그램을 통해 구직자, 불완전 취업자, 비영리 연구 과학자, 학생분들께 DataCamp에서 제공하는 다양한 코스와 트랙을 제공합니다. 본 프로젝트는 DataCamp Donates 프로그램 중 하나인 [Data Science Fellowship](https://pseudo-lab.com/c9013228f63342b689a96e18c0db32c8)으로부터 시작되었습니다.

**안녕하세요 가짜연구소 DE4E팀입니다.**

> DE4E는 데이터 분석가, 데이터 과학자, 데이터 엔지니어, 머신러닝 엔지니어가 함께 모여 데이터의, 데이터에 의한, 데이터를 위한 Data Engineering Repository를 만들어 나가는 팀입니다.
본 페이지는 데이터 엔지니어링을 막 시작하는 주니어 데이터 엔지니어, 데이터 분석가, 데이터 과학자를 위한 데이터 엔지니어링 체크리스트를 포함하고 있습니다.

단계별, 주제별로 부족한 부분이 있으실 경우 해당 주제를 학습하고 배경지식을 쌓은 뒤에 DE4E를 참고하시는 것을 추천드립니다.

한 가지 기쁜 소식은 DE4E는 모두를 위한 데이터 엔지니어링을 주제로 작성된 프로젝트이기에 대부분의 주제를 보다 쉽고 명확하게 전달해 드릴 예정입니다 😃

그럼 단계별로 핵심 주제들을 하나씩 살펴볼까요?

## Fundamentals
* CS Fundamentals
* Introduction to DE4E: Data Engineering for Everybody
* Introduction to Data Engineering
* Introduction Shell Programming and Data Processing in Shell
* Introduction to Bash Scripting
* Python Programming
* Introduction to Relational Databases in SQL
* Pandas for data processing
* Database Design
* Introduction to Apache Airflow
* Introduction to PySpark
<br></br>

## Intermediate
* Efficient Python Code
* Writing Function in Python
* Unit Testing for Data Science in Python
* OOP(Object-Oriented Programming) in Python
* Big Data Fundamentals with PySpark
* Data Analysis in SQL
* Messaging
* Monitoring
* Networking
<br></br>

## Advanced
* Cleaning Data with PySpark
* Introduction to IaaC(Infrastructure as Code)
* Introduction to CI/CD(Continuous Integration and Continuous Delivery)
* Introduction to Data security & Privacy
* Introduction to DevOps
* Introduction to DataOps
* Introduction to Data Visualization
* Machine Learning Fundamentals
* Machine Learning Ops
<br></br>


## Background Knowledge
* About Data Engineering
* Data Literacy
* Data Analyst vs Data Engineer vs Data Science
* Data Engineer's responsibilities
* Structured Data, Semi-Structured Data and Unstructured Data
* OLTP vs OLAP
* ETL, ELT and Reverse ETL
* Change Data Capture(CDC)
* Data Lake vs Data warehouse
* Lake house
* Data engineers process
* Batch Data vs Streaming Data
* Batch processing vs Stream processing
* Scheduling
* Hadoop Ecosystem
* Parallel computing
* Introduction to Cloud Computing
<br></br>


<script src="https://utteranc.es/client.js"
repo="Pseudo-Lab/data-engineering-for-everybody"
issue-term="pathname"
label="comments"
theme="preferred-color-scheme"
crossorigin="anonymous"
async>
</script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# 우리는 빅데이터 시대에 살고 있습니다

## A DAY IN DATA
![A day in Data](./images/1.0_a_day_in_data.png)

> 💡 2025년까지 전 세계적으로 매일 463엑사바이트의 데이터가 생성될 것으로 예상됩니다. 이는 하루에 212,765,957개의 DVD에 해당합니다!
- 5억 개의 트윗이 전송됩니다!
- 2,940억 개의 이메일이 전송됩니다!!
- 4페타바이트의 데이터가 Facebook에서 생성됩니다!!!
- 커넥티드카 1대당 4테라바이트의 데이터 생성됩니다!!!!
- 650억 개의 메시지가 WhatsApp으로 전송됩니다!!!!!
- 50억번 검색이 발생합니다!!!!!

![How much data is generated each day?](./images/1.0_a_day_in_data_2.png)

*→ 2019년 기준의 데이터만해도 위와 같은데… 2023년인 현재는 얼마나 더 많은 데이터가 발생하고 있을지 짐작이 가시나요?!* 😅


## Data Literacy(데이터 문해력)
<aside>
💡 빅데이터 시대에 가장 중요한 역량은 무엇일까?
</aside>

> 빅데이터 시대에서 가장 중요한 역량은 `데이터 분석 및 해석 능력`입니다.
>
![데이터를 정보로서 읽고 이해하고 생성하고 전달할 수 있는 역량이 중요해지는 시대에 살고있습니다.](./images/1.0_data_literacy.png)

데이터를 정보로서 읽고 이해하고 생성하고 전달할 수 있는 역량이 중요해지는 시대에 살고있습니다.

- `데이터 분석 및 해석 능력(살펴보기)`

![데이터를 분석하고 해석하는 역량을 ‘Data Literacy’라고 정의할 수 있습니다. 위키피디아에서는 ‘Data Literacy’를 다음과 같이 정의했습니다. 데이터를 정보로 읽고 이해하고 생성하고 전달할 수 있는 능력이다. 데이터 작업과 관련된 역량에 중점을 둔다. 데이터를 읽고 이해하기 위해서 기술적인 역량이 필요할수도 있다.](./images/1.0_data_literacy_term.png)

데이터를 분석하고 해석하는 역량을 ‘Data Literacy’라고 정의할 수 있습니다. 위키피디아에서는 ‘Data Literacy’를 다음과 같이 정의했습니다. 데이터를 정보로 읽고 이해하고 생성하고 전달할 수 있는 능력이다. 데이터 작업과 관련된 역량에 중점을 둔다. 데이터를 읽고 이해하기 위해서 기술적인 역량이 필요할수도 있다.

빅데이터는 막대한 양의 데이터를 생성하고 저장할 수 있는 기술을 통해 수집된 데이터를 의미합니다. 이러한 데이터는 기업, 정부, 학계 등에서 중요한 의사결정에 영향을 미치는데 사용됩니다. 그러나 데이터만 수집한다고 해서 충분한 것은 아닙니다.

데이터를 분석하고 해석하여 의미 있는 정보를 추출하고 이를 토대로 문제를 해결하거나 기회를 찾아내는 것이 중요합니다. 따라서 빅데이터 시대에는 데이터 분석 기술과 통계학적 지식, 데이터 시각화 능력 등이 필요합니다.

또한, 컴퓨터 프로그래밍과 기계 학습, 인공지능 등의 기술적 지식도 중요합니다. 이러한 기술을 활용하여 빅데이터를 처리하고 분석하는데 있어서 더욱 높은 효율성과 정확성을 달성할 수 있기 때문입니다.

마지막으로, 커뮤니케이션 능력도 중요합니다. 데이터 분석 결과를 이해하기 어려운 사람들에게 설명하고 그들이 이를 활용할 수 있도록 지원하는 것이 빅데이터 분석가의 중요한 역할 중 하나입니다. 따라서 빅데이터 분석가는 기술적인 역량과 커뮤니케이션 능력을 모두 갖추어야 합니다.


<aside>
💡 빅데이터 시대에 데이터 엔지니어에게 요구되는 역량은 무엇일까?
</aside>

- `빅데이터 시대에 데이터 엔지니어에게 요구되는 역량(살펴보기)`
1. `데이터베이스 기술`: 데이터 엔지니어는 대량의 데이터를 수집, 저장, 처리할 수 있는 데이터베이스 기술에 대한 이해가 필요합니다. 특히, 분산 데이터베이스, NoSQL, Hadoop, Spark 등과 같은 대용량 데이터 처리 기술에 대한 이해가 필요합니다.
2. `프로그래밍`: 데이터 엔지니어는 데이터 처리를 자동화하고, 데이터 플로우를 최적화하기 위해 프로그래밍 기술이 필요합니다. 특히, Python, Java, Scala 등과 같은 프로그래밍 언어에 대한 이해와 사용 경험이 필요합니다.
3. `클라우드 컴퓨팅`: 클라우드 컴퓨팅 기술을 활용하여 대규모 데이터를 저장하고 처리할 수 있어야 합니다. 데이터 엔지니어는 AWS, Azure, Google Cloud Platform 등과 같은 클라우드 플랫폼에 대한 이해와 사용 경험이 필요합니다.
4. `분산 시스템`: 데이터 엔지니어는 대규모 데이터를 처리하는 분산 시스템에 대한 이해가 필요합니다. 특히, Hadoop, Spark, Kafka, Flink 등과 같은 분산 시스템을 이해하고 사용할 수 있어야 합니다.
5. `데이터 아키텍처`: 데이터 엔지니어는 데이터 아키텍처를 설계하고, 데이터 파이프라인을 구축하는 역할을 수행합니다. 이를 위해 데이터 모델링, 데이터 아키텍처 설계, ETL 등의 지식과 경험이 필요합니다.
6. `문제 해결 능력`: 데이터 엔지니어는 대량의 데이터를 다루는 과정에서 생기는 문제를 해결하기 위한 능력이 필요합니다. 따라서 데이터 분석, 시스템 튜닝 등의 문제 해결 능력이 요구됩니다.
7. `커뮤니케이션 능력`: 데이터 엔지니어는 데이터 관련 이슈를 비전문가에게 설명하고, 데이터와 관련된 의사 결정을 지원하는 역할을 수행합니다. 따라서 커뮤니케이션 능력이 요구됩니다.

여기에 데이터 품질(Data Quality)를 보장하는 엔지니어링 역량이 더욱 중요해질 것 같다는 생각을 하게 되었습니다. 자세한 사항은 뒤에서 다루도록 하겠습니다!


##  📘 함께 보면 좋은 자료

### 5기 스터디 자료 - Data Engineer with Python

<aside>
💡 함께 보시면 좋습니다!
</aside>


[ 📘  Data Engineer with Python 정리 노트](https://file.notion.so/f/s/d26914d0-cb22-42c2-8985-dd60c14f39d6/Week1_Introduction_to_Data_Engineering.pdf?id=1ace0eb5-cf57-4bb1-badb-2a43e2f670f5&table=block&spaceId=333f96cf-396d-45ff-8331-232d41bd4d55&expirationTimestamp=1680437645135&signature=8mEwbqmv8e2CbQY63RbzUzQ4HxX76GIjfMu1iEfKqkg&downloadName=Week1_Introduction+to+Data+Engineering.pdf)

## Introduction to Data Engineering
- Data Engineer vs Data Scientist
- Introduction to Data Engineering
- Cloud Computing
- Data Engineering Toolbox
- Database
- Structured data and unstructured data
- SQL and NoSQL
- Parallel computing
- Parallel computation frameworks
- workflow scheduling frameworks


<script src="https://utteranc.es/client.js"
repo="Pseudo-Lab/data-engineering-for-everybody"
issue-term="pathname"
label="comments"
theme="preferred-color-scheme"
crossorigin="anonymous"
async>
</script>
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# 1.1. 데이터 엔지니어링이란 무엇일까?

- 데이터 엔지니어링에 대한 정의
- 데이터 엔지니어의 역할
- 데이터 엔지니어의 핵심 역량

## 1.1.1. 데이터 엔지니어링이란?

> `데이터 엔지니어링`은 데이터를 대규모로 수집, 저장 및 분석하기 위한 시스템을 설계하고 구축하는 작업입니다.
거의 모든 산업 분야에 적용되는 광범위한 분야입니다. 하나의 조직은 방대한 양의 데이터를 수집할 수 있는 능력이 필요하며 데이터 과학자와 분석가에게 데이터가 도달할 때까지 사용 가능한 상태가 되도록 `올바른 사람과 기술`이 필요합니다.

뒤에서 다룰 ‘Data Engineering Lifecycle’을 미리 살펴보면서 데이터 엔지니어가 하는 일을 머릿속으로 그려보도록 하겠습니다.
<br></br>

📌 ***What Is the Data Engineering Lifecycle? - O’Reilly Medea. Fundamentals of Data Engineering***
> `The data engineering lifecycle` comprises stages that turn raw data ingredients into a useful end product, ready for consumption by analysts, data scientists, ML engineers, and others.
>
*→ 데이터 엔지니어링 수명 주기(Data Engineering LIfecycle)는 원시 데이터를 분석가, 데이터 과학자, ML 엔지니어 등이 사용할 수 있는 유용한 최종 제품으로 전환하는 단계로 구성됩니다.*

![Untitled](./images/1.1_data_engineering_life_cycle.png)

지금은 이 다이어그램이 이해가 되지 않으셔도 됩니다! 오늘의 목표는 다이어그램의 의미를 이해하는 것입니다!

## 1.2.1. 데이터 엔지니어의 역할 및 핵심 역량

<aside>
💡 데이터 분석가, 데이터 과학자와 비교하면 데이터 엔지니어의 역할이 보다 명확하게 다가옵니다!

</aside>

### 📌 Data Engineer vs Data Scientist by DataCamp

<aside>
💡 데이터 엔지니어와 데이터 과학자의 역할, 사용 도구, 언어, 전망, 급여 등을 비교해봅니다.
비교.대조하는 과정에서 보다 명확하게 두 역할의 차이를 구분하실 수 있습니다!

</aside>

[Data Scientist vs Data Engineer by Data Camp](https://www.datacamp.com/blog/data-scientist-vs-data-engineer)

![Untitled](./images/1.1_comparison_data_scientist_and_data_engineer.png)

> 데이터 엔지니어는 데이터베이스 및 대규모 처리 시스템과 같은 아키텍처를 `구성, 개발, 테스트 및 유지 관리`하는 사람입니다. 반면에 데이터 과학자는 (큰)데이터를 `정리, 처리 및 활용` 하는 사람입니다.
>
### 데이터 엔지니어의 역할

- `원시 데이터 처리`
- 사람, 기계 또는 기기의 오류가 포함된 원시 데이터를 처리(raw data)합니다
- 데이터가 검증되지 않고 의심스러운 레코드를 포함할 수 있습니다
- 또한 형식이 지정되지 않으며 시스템에 특화된(system-specific) 코드를 포함할 수 있습니다
- `데이터 신뢰성, 효율성 및 품질 개선`
- 데이터 엔지니어는 데이터 신뢰성, 효율성 및 품질을 개선하는 방법을 권장하고 때로는 구현해야 합니다
- 다양한 언어와 도구를 사용하여 시스템을 결합하거나 다른 시스템에서 새로운 데이터를 얻을 수 있는 기회를 찾아야합니다
- `데이터 제공`
- 데이터 사이언스팀에 데이터를 전달하기 위해 데이터 모델링, 마이닝 및 생산을 위한 데이터 세트 프로세스를 개발해야 합니다

### 데이터 과학자의 역할

- `통계적 방법 및 머신러닝 사용`
- 일반적으로 1차 정제 및 조작을 통과한 데이터를 확보하고 있습니다. 이를 기반으로 정교한 분석 프로그램, 머신 러닝 및 예측 및 처방 모델링에 사용할 데이터를 준비하는 통계적 방법에 사용할 수 있습니다
- `다양한 데이터 활용`
- 모델을 구축하기 위해 산업 및 비즈니스 질문을 조사해야 하며 비즈니스 요구 사항에 답변하기 위해 내부 및 외부 소스의 대량 데이터를 활용해야 하기도 합니다
- `비즈니스 이해 관계자에게 보고 및 프로덕트 개선`
- 데이터 과학자가 분석을 완료한 후에는 주요 이해 관계자에게 명확한 이야기를 제시해야 하며 결과가 수락되면 비즈니스 이해 관계자에게 통찰력을 전달할 수 있도록 작업이 자동화되었는지 확인해야 합니다

![Untitled](./images/1.1_responsibilities.png)

- `데이터 엔지니어`는 ETL 목적을 위해 데이터베이스 시스템, 데이터 API 및 도구로 작업하고 데이터 모델링 및 데이터 웨어하우스 설정에 관여합니다.
- `데이터 과학자`는 예측 모델을 구축하기 위해 통계, 수학 및 기계 학습에 대해 알아야 합니다.
- `데이터 과학자` 는 데이터 엔지니어링 팀에서 처리한 데이터에 대한 액세스 권한을 얻어야 하므로 분산 컴퓨팅에 대해 알고 있어야 하지만 비즈니스 이해 관계자에게 보고할 수 있어야 합니다. 스토리텔링과 시각화에 중점을 두는 것이 필수적입니다.

![Untitled](./images/1.1_data_science_workflow.png)
데이터 자체에 대한 이해.조작을 주로 하는 직무가 데이터 엔지니어라면 이러한 데이터에 기반하여 머신러닝 모형을 만들고 시각화를 하여 경영진에 보고하는 역할을 하는 직무가 데이터 과학자입니다

![Untitled](./images/1.1_languages_tools_software.png)

![Untitled](./images/1.1_data_engineer_scientist_background.png)

![Untitled](./images/1.1_job_outlook_in_the_usa.png)

![Untitled](./images/1.1_data_engineer_infographic.png)
2015년 Data Camp의 ‘The Data Science Industry: Who Does What (Infographic)’ 게시글에서는 데이터 엔지니어를 ‘All-purpose everyman’이라고 표현했네요…! 한국에서는 ‘데이터 잡부’라는 오명을 쓰고 있지만… 잡부 보다는 팔방미인이 더 어울리는 직군인 것 같습니다!


## Appendix - Data 직군 비교하기
> Data Engineer, Data Scientist 외에도 다양한 역할이 존재합니다
>
![Untitled](./images/1.1_comparing_data_management_roles.png)


<script src="https://utteranc.es/client.js"
repo="Pseudo-Lab/data-engineering-for-everybody"
issue-term="pathname"
label="comments"
theme="preferred-color-scheme"
crossorigin="anonymous"
async>
</script>
Loading

0 comments on commit 23a5ff3

Please sign in to comment.