Tech Articles

cover of post: 30가지 SQL 최적화 방법

30가지 SQL 최적화 방법

1월 07, 2025

더 빠른 쿼리 및 확장 가능한 시스템을 위해 인덱싱, JOIN, 파티션 및 고급 기술을 통해 SQL 효율성을 높입니다.

By Emily Parker#Engineering
cover of post: Hono.js: 차세대 Node.js 프레임워크

Hono.js: 차세대 Node.js 프레임워크

1월 06, 2025

시중에는 이미 Node.js용 백엔드 라이브러리와 프레임워크가 많이 있습니다. 이전에는 몇몇 소규모 프로젝트에 Nest.js를 사용해 봤습니다. Nest.js는 포괄적인 기능을 갖추고 있어 빠른 프로젝트 구현이 가능합니다. 그러나 저의 소규모 프로젝트에서는 많은 기능이 실제로 과도하게 사용되고 있으며, 높은 수준의 캡슐화로 인해 코드를 작성할 때 자유도가 떨어집니다.

By Wenhao Wang#javascript
cover of post: NestJS를 사용한 RBAC Permission 관리 시스템 설계: 단계별 지침

NestJS를 사용한 RBAC Permission 관리 시스템 설계: 단계별 지침

1월 05, 2025

데이터베이스 설정 및 엔터티 관계와 함께 Nest.js를 사용하여 RBAC 권한 제어를 구현하는 단계별 가이드입니다.

By Takashi Yamamoto#Engineering
cover of post: Express.js 마스터하기: 깊게 들어가기

Express.js 마스터하기: 깊게 들어가기

1월 04, 2025

Express는 Node.js에서 매우 일반적으로 사용되는 웹 서버 애플리케이션 프레임워크입니다. 기본적으로 프레임워크는 특정 규칙을 준수하는 코드 구조이며 다음과 같은 두 가지 주요 특징이 있습니다. - API를 캡슐화하여 개발자가 비즈니스 코드 작성에 더 집중할 수 있도록 합니다. - 확립된 프로세스와 표준 사양을 가지고 있습니다.

By James Reed#javascript
cover of post: Go Struct에 대한 심층 분석

Go Struct에 대한 심층 분석

1월 02, 2025

Go 구조체의 모든 측면을 자세히 살펴보겠습니다.

By Daniel Hayes#Engineering
cover of post: 2024년 Review: 클라우드 데이터베이스의 주요 하이라이트

2024년 Review: 클라우드 데이터베이스의 주요 하이라이트

1월 02, 2025

2024년 클라우드 데이터베이스 혁신에 대한 리뷰로, 벡터 데이터베이스, AI 통합, 주요 트렌드 및 산업 개발을 강조합니다.

By Grace Collins#Engineering
cover of post: Goroutine ID를 어떻게 얻을 수 있는가?

Goroutine ID를 어떻게 얻을 수 있는가?

12월 31, 2024

운영 체제에서 각 프로세스는 고유한 프로세스 ID를 가지고 각 스레드는 고유한 스레드 ID를 가집니다. 마찬가지로 Go 언어에서 각 Goroutine은 고유한 Go 루틴 ID를 가지며 이는 `panic`과 같은 시나리오에서 자주 발생합니다. Goroutine은 고유한 ID를 가지고 있지만 Go 언어는 의도적으로 이 ID를 얻기 위한 인터페이스를 제공하지 않습니다. 이번에는 Go 어셈블리 언어를 통해 Goroutine ID를 얻어보려고 합니다.

By Takashi Yamamoto#golang
cover of post: 재미있는 Ghostty 이야기

재미있는 Ghostty 이야기

12월 30, 2024

미첼 하시모토는 Ghostty에 대해 어떻게 생각할까요?

By Olivia Novak#Engineering
cover of post: Go 제네릭: 깊게 들어가기

Go 제네릭: 깊게 들어가기

12월 30, 2024

전반적으로 제네릭의 장점은 세 가지 측면으로 요약할 수 있습니다. 1. type은 컴파일 기간에 결정되어 type 안전성을 보장합니다. 넣은 것이 꺼낸 것입니다. 2. 가독성이 향상되었습니다. 실제 데이터 type은 코딩 단계에서 명시적으로 알려져 있습니다. 3. 제네릭은 동일한 type에 대한 처리 코드를 병합하여 코드 재사용률을 높이고 프로그램의 전반적인 유연성을 높입니다. 그러나 제네릭은 일반 데이터 type에 필수적인 것은 아닙니다. 실제 사용 상황에 따라 제네릭 사용 여부를 신중하게 고려해야 합니다.

By Grace Collins#golang
cover of post: 클라우드에서 Puppeteer를 자유롭게 실행하는 방법: 솔루션 비교

클라우드에서 Puppeteer를 자유롭게 실행하는 방법: 솔루션 비교

12월 29, 2024

Puppeteer용 서버리스 플랫폼 비교: 일반적인 Puppeteer 작업을 수행하는 데 사용하는 방법과 장단점.

By James Reed#Engineering
cover of post: Gin: Go언어 스타일랑의 선도 프레임워크

Gin: Go언어 스타일랑의 선도 프레임워크

12월 28, 2024

Gin은 Go(Golang)로 작성된 HTTP 웹 프레임워크입니다. Martini와 유사한 API를 제공하지만, Martini보다 최대 40배 빠른 성능을 자랑합니다. 엄청난 성능이 필요하다면 Gin을 사용해 보세요.

By Min-jun Kim#golang
cover of post: 고성능 파이썬: Asyncio

고성능 파이썬: Asyncio

12월 27, 2024

멀티스레딩과 달리 `asyncio`는 단일 스레드이지만 내부 이벤트 루프 메커니즘을 통해 여러 가지 다른 작업을 동시에 실행하고 멀티스레딩보다 더 큰 자율 제어를 수행할 수 있습니다. `asyncio`의 작업은 작동 중에 중단되지 않으므로 경쟁 조건이 발생하지 않습니다. 특히 I/O 작업이 많은 시나리오에서 `asyncio`는 멀티스레딩보다 더 높은 작동 효율성을 제공합니다. `asyncio`의 작업 전환 비용이 스레드 전환 비용보다 훨씬 적고 `asyncio`가 시작할 수 있는 작업 수가 멀티스레딩의 스레드 수보다 훨씬 많기 때문입니다. 그러나 많은 경우에 `asyncio`를 사용하려면 이전 예의 `aiohttp`와 같은 특정 타사 라이브러리의 지원이 필요하다는 점에 유의해야 합니다. 그리고 I/O 작업이 빠르고 많지 않으면 멀티스레딩을 사용하여 문제를 효과적으로 해결할 수도 있습니다.

By Takashi Yamamoto#python
cover of post: FastAPI와 Python Async IO 마스터하기

FastAPI와 Python Async IO 마스터하기

12월 27, 2024

비동기 I/O는 "코루틴"과 "이벤트 루프"를 사용하여 하위 계층에서 구현됩니다. "코루틴"은 스레드가 실행 중에 표시된 I/O 작업을 만날 때 I/O가 완료될 때까지 기다릴 필요 없이 일시 중지하고 스레드가 차단 없이 다른 작업을 실행할 수 있도록 합니다. "이벤트 루프"는 I/O 멀티플렉싱 기술을 사용하여 I/O 이벤트를 지속적으로 순환하면서 모니터링합니다. 특정 I/O 이벤트가 완료되면 해당 콜백이 트리거되어 코루틴이 계속 실행될 수 있습니다.

By Emily Parker#python
cover of post: FastAPI의 속도 뒤에 숨겨진 비밀

FastAPI의 속도 뒤에 숨겨진 비밀

12월 26, 2024

FastAPI의 속도 뒤에 숨겨진 비결은 무엇일까요? 왜 다른 프레임워크들은 디지털 먼지를 먹고 있을까요?

By Ethan Miller#Engineering
cover of post: Flask는 죽었는가? FastAPI가 미래인가?

Flask는 죽었는가? FastAPI가 미래인가?

12월 25, 2024

이 기사는 주로 Python 프레임워크 분야에서 Flask와 FastAPI의 현재 상황과 개발에 대해 논의합니다. 새로운 프로젝트 채택, GitHub 스타 수, 공식 설문 조사에서의 비율 비교를 통해 FastAPI의 인기가 상승하여 Flask를 넘어섰음을 보여줍니다. 웹 프레임워크의 발전을 되돌아보면 Flask는 한때 장점이 있었지만 플러그인 유지 관리와 같은 문제로 제한됩니다. FastAPI는 비동기 설계, Pydantic 데이터 유효성 검사 및 ASGI 지원으로 두각을 나타냅니다. 또한 커뮤니티 활동 및 토론 빈도와 같은 측면에서 Flask의 인기 하락을 설명합니다. 마지막으로 둘 다 배포하는 데 적합한 Leapcell 플랫폼의 장점을 소개합니다.

By Daniel Hayes#python
cover of post: WTH는 유비쿼터스 테스팅(합성 테스트)인가?

WTH는 유비쿼터스 테스팅(합성 테스트)인가?

12월 24, 2024

유비쿼터스 테스팅(합성 테스트)에 대한 간략하고 친근한 소개입니다.

By Olivia Novak#Testing
cover of post: Microsoft MarkItDown에 대한 심층 분석

Microsoft MarkItDown에 대한 심층 분석

12월 23, 2024

MarkItDown의 기능, 아키텍처, 제한 사항 및 통합 방법을 탐구하는 MarkItDown에 대한 심층적인 내용입니다. MarkItDown이 다양한 파일 형식을 Markdown으로 변환하는 방법과 확장 가능한 모듈식 설계를 강조합니다. 실제 예제와 API 호스팅 가이드도 다룹니다.

By Min-jun Kim#Python
cover of post: Playwright가 브라우저 자동화를 지배하는 이유: 심층 분석

Playwright가 브라우저 자동화를 지배하는 이유: 심층 분석

12월 21, 2024

Playwright는 JavaScript, Python, C#, Java를 지원하는 최신 브라우저 자동화 프레임워크로 Chrome, Edge, Firefox, Safari와 같은 주요 브라우저와의 원활한 상호 작용을 제공합니다. 각 브라우저에 별도의 드라이버가 필요한 Selenium과 달리 Playwright는 브라우저 드라이버가 필요하지 않아 프로세스를 간소화합니다. 헤드리스 모드, 동시성 지원, iframe 처리 및 다중 탭 작업과 같은 기능이 포함되어 있어 자동화 작업을 위한 다용도 도구입니다. Playwright는 또한 기본 제공 기능, 자동 대기 및 통합 스크린샷/녹화 도구를 통해 디버깅에 탁월합니다. 사용 용이성, 최소 구성 및 간단한 DOM 조작으로 유명합니다. 커뮤니티는 Selenium에 비해 아직 성숙하지 않았지만 Playwright는 효율성과 개발자 친화적인 디자인으로 인해 웹 자동화를 위한 인기 있는 선택이 되었습니다. 다양한 환경에서 확장성, 성능 및 호환성을 강조하는 Playwright는 브라우저 작업을 효과적으로 자동화하려는 초보자와 고급 사용자 모두에게 훌륭한 도구입니다.

By Wenhao Wang#playwright
cover of post: 이메일 마케팅이 스팸으로 끝날까? 이를 확인하기 위해 도구를 만들었습니다.

이메일 마케팅이 스팸으로 끝날까? 이를 확인하기 위해 도구를 만들었습니다.

12월 18, 2024

이 기사에서는 Apache SpamAssassin(오픈 소스 스팸 감지 도구)을 사용하여 이메일 스팸 점수를 평가하고 워크플로에 원활하게 통합하기 위해 API로 배포하는 방법에 대해 설명합니다.

By Grace Collins#Marketing
cover of post: WSGI vs ASGI: 2025년 웹 앱의 미래를 결정짓는 중요한 결정

WSGI vs ASGI: 2025년 웹 앱의 미래를 결정짓는 중요한 결정

12월 14, 2024

ASGI(Asynchronous Server Gateway Interface)와 WSGI(Web Server Gateway Interface)는 웹 서버와 애플리케이션 간의 다리 역할을 하도록 설계된 두 가지 파이썬 프로토콜입니다. WSGI는 동기식이며 Django 및 Flask와 같은 프레임워크에서 오랫동안 지원되는 블로그 또는 회사 웹사이트와 같은 기존 HTTP 기반 앱에 이상적입니다. 간단하고 안정적이며 널리 사용되지만 높은 동시성 또는 실시간 통신에는 어려움이 있습니다. Python의 async/await 기능과 함께 도입된 ASGI는 비동기식, 논블로킹이며 WebSocket 및 HTTP/2와 같은 최신 프로토콜을 지원합니다. 채팅 앱 및 라이브 데이터 서비스와 같은 고성능 실시간 애플리케이션을 위해 구축되었으며 FastAPI와 같은 프레임워크에서 사용됩니다.

By Ethan Miller#python