기술 인력 개발 기업 플루럴사이트Pluralsight)의 최근AI 기술 보고서에 따르면 임원 및 IT 리더의 40%만이 직원을 대상으로 공식적인 AI 교육을 실시하고 있다고 답했다. 그리고 직원 AI 교육에 대한 CIO의 책임이 점점 더 커짐에 따라 IT 리더는 기업의 AI 준비성 책임 측면에서 해법을 찾아내야 할 처지에 놓일 가능성이 크다는 진단이다.
직원들도 주목하고 있다. 디지털 워크플레이스 공급업체 Slingshot이 8월에 발표한설문조사 결과에 따르면 응답 직원의 다수는 AI에 대해 제대로 교육이나 훈련을 받지 못했다고 느끼고 있었다.
플루럴사이트의 생성형 AI 수석 저자 데이비드 해리스는 “일하는 방식을 완전히 뒤엎는 새로운 기술이 등장할 때마다 많은 사람들이 촉각을 곤두세운다. 내가 보기에 모든 비즈니스 관계자는 AI를 어떤 식으로든 도입해야 한다고 생각한다. 그러나 그 방법을 정확히 아는 사람은 드물며, 직원들의 지식 수준에 대해 확산하는 이도 거의 없다"라고 말했다.
그에 따르면 채용 시장을 통해 AI 기술 격차를 메우기도 쉽지 않다. 비교적 최근의 기술인 데다 빠르게 발전하고 있기 때문이다. 해리스를 비롯한 업계 전문가들은 또 개발자, 영업사원, 사무직에 이르는 모든 직원이 AI 교육을 통해 혜택을 받을 수 있다고 강조했다.
한편 IT 직원들조차도 AI가 일자리를 대체하는 것에 대해 우려하고 있다. 플루럴사이트의 설문조사에 참여한 IT 전문가 중 거의 4분의 3은 AI가 자신의 기술을 쓸모없게 만드는 상황을 우려한다고 답했다.
인재 유지에 영향 이키가이 랩스(Ikigai Labs)의 사장인 카말 알루왈리아는 AI가 고용 시장에 큰 영향을 미칠 것이기에 직원 대상의 AI 교육이 필수적이라고 강조했다. 이키가이 랩스는 소량의 기업 데이터로 작동하는 생성형 AI 툴을 제공하는 업체다.
AI와 일자리 사이의 관계에 대한 알루왈리아의 전망은 복합적이다. 그는 AI가 오늘날 IT 일자리의 3분의 1을 없애지만, 나머지 3분의 1은 AI를 통해 향상될 것이라고 예측했다. 또 미래 일자리의 또 다른 3분의 1은 AI에 의해 창출될 것으로 그는 전망했다.
HR 회사 에잇폴드닷에이아이의 사장을 역임한 바 있는 알루왈리아는 “일자리 대체 현상이 상당할 것이며, 우리 생각보다 더 빨리 일어날 것이라고 본다. 나는 만나는 모든 사람들에게 업무 적절성을 유지하기 위해서는 기술을 배울 준비가 되어 있어야 한다고 직설적으로 이야기하고 있다”라고 말했다.
그에 따르면 조직은 지금 당장 AI 교육에 투자할 필요가 있다. CIO와 기타 경영진은 직원들이 최신 AI 기술을 지속적으로 학습하도록 장려해야 하며, AI 교육을 잘 활용한 직원들의 성공 사례를 알려야 한다. 시장에 AI 전문 인력이 부족하다는 점을 감안할 때 더욱 그렇다.
알루왈리아는 “재교육, 업스킬링에 대한 시각을 바꿔야 한다. 경영진이 이러한 변화를 방관하고 다른 중간 관리자나 개인이 처리하도록 조치해선 안 된다. 경영진이 변화를 지지하도록 해야 한다. 그래야 분위기가 조성되기 때문이다”라고 말했다.
플루럴사이트 설문조사에 따르면 IT 전문가의 74%가 AI로 인해 자신의 기술이 무의미해질 것이라고 우려하는 반면, 81%는 현재 자신의 역할에 AI를 통합할 수 있다고 확신하고 있었다. 점점 더 많은 IT 전문가들이 AI 교육을 자신의 커리어에 필수적인 것으로 바라보고 있었다. AI 업스킬링에 IT 전문가를 적극적으로 참여시키지 않는다면 인재가 빠져나갈 가능성이 커지는 셈이다.
조화롭게 구성 디지털 컨설팅 회사인 웨스트 먼로 파트너스의 AI 및 엔지니어링 부문 수석 파트너인 에릭 브라운은 만연한 위기감이 틀리지 않다고 진단하며, 조직과 직원 모두 '모든 곳에 AI가 존재하는' 미래에 대비해야 한다고 말했다.
그는 이어 AI 교육은 직원과 AI 간의 '조화'를 구축하고 인간이 결정권을 행사하는 모습을 보여주는 데 초점을 맞춰야 한다고 설명했다. “인간의 창의성과 비판적 사고를 AI의 효율성을 결합해야 최상의 결과를 얻을 수 있다"라고 브라운은 말했다.
또 일부 직원은 다른 직원보다 AI의 영향을 더 많이 받겠지만, 교육은 모든 직원에게 제공되어야 한다. 그는 “최고 경영진을 포함해 모든 직원에 대해 투자해야 한다. 교육에 대한 접근성을 민주화한다는 것은 모든 사람이 AI를 발전시키는 문화를 조성하는 데 기여하고 책임을 질 수 있다는 것을 의미한다”라고 그는 말했다.
AI 교육의 필요성을 강조하는 목소리가 높지만 현실적인 여러 어려움이 있다. 데이터 분석 및 AI 도구 제공업체인 Seeq의 CTO 더스틴 존슨은 교육에 참여할 시간이 부족한 직원이 많으며, 지속적인 교육이라면 더욱 그렇다고 지적했다. 직원 개개인의 필요에 맞춰 참여하기 적합한 적시 교육 과정을 마련해야 할 이유라고 그는 덧붙였다. 그에 따르면 이는 AI 교육 도구에 주목할 이유이기도 하다. AI 기반 교육 도구는 자료를 통합하고 고객 기업 고유의 특정 장비와 프로세스에 맞는 정보를 제공할 수 있기 때문이다.
선구자들에게 기회를 존슨은 또 AI에 적극적인 직원들이 AI로 작업할 수 있도록 허용할 것을 권장했다. 이들 선구자들이 성공을 거두고 환각 및 기타 AI 문제를 피한 방법을 보여주는 웨비나 및 기타 이벤트를 개최하는 방안도 검토할 만하다는 설명이다.
“이러한 세션은 AI에게 질문하는 방법, 문서를 정확히 검색하는 방법 등을 공유할 수 있는 기회를 제공한다. 또 산출 결과를 검증할 수 있는 방법을 확산시킴으로써 기술에 대한 신뢰도를 높이게 된다”라고 그는 말했다.
한편 AI 기술이 빠르게 발전하고 있다는 점이 감안하라고 플로럴사이트의 해리스는 전했다. 새로운 기능과 용도를 반영하기 위해 AI 교육 과정을 정기적으로 업데이트할 필요가 있다. 어떤 경우에는 AI 교육 과정에서 제공되는 정보가 일주일도 안 되어 구식이 될 수 있다고 그는 덧붙였다.
Apple이 2025년 봄 ‘나의 찾기(Find My)’ 네트워크를 국내 도입할 예정이다. 한국 내 사용자들도 곧 나의 찾기 앱을 이용해 개인정보가 보호된 상태에서 자신의 Apple 기기와 개인 소지품을 찾고, 친구 및 가족 등의 위치를 확인할 수 있게 된다.
나의 찾기는 사용자가 자신의 Apple 기기는 물론, AirTag 또는 나의 찾기 네트워크 액세서리를 부착해 둔 소지품의 위치까지 쉽게 파악할 수 있게 해준다. 기기나 소지품을 분실한 경우, iPhone, iPad, Mac의 나의 찾기 앱 또는 Apple Watch의 기기 찾기(Find Devices) 및 물품 찾기(Find Items) 앱을 활용하여 지도에서 위치를 확인하고, 해당 위치로 가는 경로를 안내받으며, 가까이 접근할 때 사운드를 재생하여 쉽게 찾을 수 있다.
또한 나의 찾기를 통해 사용자가 친구 및 가족과 위치를 공유해 보다 쉽게 서로를 찾고 연락을 유지할 수도 있다. 붐비는 기차역이나 혼잡한 공원 등에서 나의 찾기로 친구를 찾아야 하는 경우, iPhone 15 또는 iPhone 15 Pro 사용자는 정밀 탐색(Precision Finding) 기능을 통해 친구가 있는 위치까지 안내받을 수 있다.
from bs4 import BeautifulSoup
from markdownify import markdownify as md
import os
def convert_html_table_to_md(html_file_path, output_md_file_path):
# HTML 파일 읽기
with open(html_file_path, 'r', encoding='utf-8') as file:
html_content = file.read()
# BeautifulSoup을 사용하여 HTML 파싱
soup = BeautifulSoup(html_content, 'html.parser')
# HTML을 Markdown으로 변환
markdown_content = md(str(soup))
# 결과를 Markdown 파일로 저장
with open(output_md_file_path, 'w', encoding='utf-8') as file:
file.write(markdown_content)
print(f"Converted HTML table to Markdown and saved as: {output_md_file_path}")
# 사용 예시
#html_file_path = 'path_to_your_html_file.html' # 변환할 HTML 파일 경로
html_file_path = 'test_001.html' # 변환할 HTML 파일 경로
output_md_file_path = 'output_markdown_file.md' # 저장할 Markdown 파일 경로
convert_html_table_to_md(html_file_path, output_md_file_path)
Ibis defines a Python dataframe API that executes on any query engine – the frontend for any backend data platform, with 20+ backends today. This allows Ibis to have excellent performance – as good as the backend it is connected to – with a consistent user experience.
What is Ibis?
Ibis is the portable Python dataframe library.
We can demonstrate this with a simple example on a few local query engines:
import ibis
ibis.options.interactive = True
DuckDB
Polars
DataFusion
PySpark
1con = ibis.connect("duckdb://")
t = con.read_parquet("penguins.parquet")
t.limit(3)
Ibis is for data engineers, data analysts, and data scientists (or any title that needs to work with data!) to use directly with their data platform(s) of choice. It also has benefits fordata platforms,organizations, andlibrary developers.
Ibis for practitioners
You can use Ibis at any stage of your data workflow, no matter your role.
Data engineerscan use Ibis to:
write and maintain complex ETL/ELT jobs
replace fragile SQL string pipelines with a robust Python API
replace PySpark with a more Pythonic API that supports Spark and many other backends
Data analystscan use Ibis to:
use Ibis interactive mode for rapid exploration
perform rapid exploratory data analysis using interactive mode
work in a general-purpose, yet easy to learn, programming language without the need for formatting SQL strings
Data scientistscan use Ibis to:
extract a sample of data for local iteration with a fast local backend
prototype with the same API that will be used in production
preprocess and feature engineer data before training a machine learning model
Ibis for data platforms
Data platforms can use Ibis to quickly bring a fully-featured Python dataframe library with minimal effort to their platform. In addition to a great Python dataframe experience for their users, they also get integrations into thebroader Python and ML ecosystem.
Often, data platforms evolve to support Python in some sequence like:
Develop a fast query engine with a SQL frontend
Gain popularity and need to support Python for data science and ML use cases
Develop a bespoke pandas or PySpark-like dataframe library and ML integrations
This third step is where Ibis comes in. Instead of spending a lot of time and money developing a bespoke Python dataframe library, you can create an Ibis backend for your data platformin as little as four hours for an experienced Ibis developeror, more typically, on the order ofoneortwomonths for a new contributor.
Why not the pandas or PySpark APIs?
Ibis for organizations
Organizations can use Ibis to standardize the interface for SQL and Python data practitioners. It also allows organizations to:
transfer data between systems
transform, analyze, and prepare data where it lives
benchmark your workload(s) across data systems using the same code
mix SQL and Python code seamlessly, with all the benefits of a general-purpose programming language, type checking, and expression validation
Ibis for library developers
Python developers creating libraries can use Ibis to:
instantly support 20+ data backends
instantly support pandas, PyArrow, and Polars objects
read and write from all common file formats (depending on the backend)
trace column-level lineage through Ibis expressions
Most Python dataframes are tightly coupled to their execution engine. And many databases only support SQL, with no Python API. Ibis solves this problem by providing a common API for data manipulation in Python, and compiling that API into the backend’s native language. This means you can learn a single API and use it across any supported backend (execution engine).
Ibis broadly supports two types of backend:
SQL-generating backends
DataFrame-generating backends
As you can see, most backends generate SQL. Ibis usesSQLGlotto transform Ibis expressions into SQL strings. You can also use the.sql()methods to mix in SQL strings, compiling them to Ibis expressions.
While portability with Ibis isn’t perfect, commonalities across backends and SQL dialects combined with years of engineering effort produce a full-featured and robust framework for data manipulation in Python.
In the long-term, we aim for a standard query plan Intermediate Representation (IR) likeSubstraitto simplify this further.
Python + SQL: better together
For most backends, Ibis works by compiling Python expressions into SQL:
g = t.group_by(["species", "island"]).agg(count=t.count()).order_by("count")
ibis.to_sql(g)
SELECT
*
FROM (
SELECT
`t0`.`species`,
`t0`.`island`,
COUNT(*) AS `count`
FROM `ibis_read_parquet_pp72u4gfkjcdpeqcawnpbt6sqq` AS `t0`
GROUP BY
1,
2
) AS `t1`
ORDER BY
`t1`.`count` ASC NULLS LAST
You can mix and match Python and SQL code:
sql = """
SELECT
species,
island,
COUNT(*) AS count
FROM penguins
GROUP BY species, island
""".strip()
DuckDB
DataFusion
PySpark
con = ibis.connect("duckdb://")
t = con.read_parquet("penguins.parquet")
g = t.alias("penguins").sql(sql)
g
This allows you to combine the flexibility of Python with the scale and performance of modern SQL.
Scaling up and out
Out of the box, Ibis offers a great local experience for working with many file formats. You can scale up with DuckDB (the default backend) or choose from other great options like Polars and DataFusion to work locally with large datasets. Once you hit scaling issues on a local machine, you can continue scaling up with a larger machine in the cloud using the same backend and same code.
If you hit scaling issues on a large single-node machine, you can switch to a distributed backend like PySpark, BigQuery, or Trino by simply changing your connection string.
Stream-batch unification
As ofIbis 8.0, the first stream processing backends have been added. Since these systems tend to support SQL, we can with minimal changes to Ibis support both batch and streaming workloads with a single API. We aim to further unify the batch and streaming paradigms going forward.
Ecosystem
Ibis is part of a larger ecosystem of Python data tools. It is designed to work well with other tools in this ecosystem, and we continue to make it easier to use Ibis with other tools over time.
Ibis already works with other Python dataframes like:
Note that theibis-frameworkpackage isnotthe same as theibispackage in PyPI. These two libraries cannot coexist in the same Python environment, as they are both imported with theibismodule name.
See thebackend support matrixfor details on operations supported.Open a feature requestif you’d like to see support for an operation in a given backend. If the backend supports it, we’ll do our best to add it quickly!
Community
Community discussions primarily take place onGitHubandZulip.