분류 전체보기 217

Rust 강좌 5 - 안전하고 효율적인 Hyper로 HTTP 요청 처리하기

Rust 강좌 5 - 안전하고 효율적인 Hyper로 HTTP 요청 처리하기안녕하세요! 오늘은 Rust의 대표적인 HTTP 라이브러리인 hyper를 알아볼 텐데요. Rust의 HTTP 라이브러리 생태계는 1.0 이전까지는 변화가 많았지만, 이제는 hyper가 많은 Rust 개발자들의 사랑을 받는 대표 라이브러리로 자리 잡았습니다. 이 장에서는 hyper를 클라이언트로 사용하는 방법에 집중해 볼까 합니다. 이 라이브러리는 서버 구현도 포함하고 있지만, 대부분의 개발자들은 서버를 직접 만드는 것보다는, 이미 만들어진 서버의 API를 소비하는 경우가 많습니다. 그러면, hyper가 어떻게 우리에게 도움을 줄 수 있을까요?1. 기본적인 요청 보내기우선, Cargo.toml 파일에 의존성을 추가해 보겠습니다.[de..

Rust 2024.09.19

Next.js 14에서 JWT를 안전하게 관리하는 방법: Express 백엔드와의 통합

Next.js 14에서 JWT를 안전하게 관리하는 방법: Express 백엔드와의 통합Next.js 14 프로젝트에서 JWT를 어떻게 관리하는 것이 가장 좋은 방법일지 고민이 많으실 텐데요. 특히 App Router를 사용하면서, 서버 컴포넌트는 Local Storage에 접근할 수 없기 때문에 JWT를 안전하게 다루는 방법에 대해 혼란스러울 수 있습니다. 오늘은 이 문제를 해결하기 위한 다양한 방법을 살펴보고, Express 백엔드와 어떻게 통합할 수 있는지 알아보겠습니다.1. HTTPOnly 쿠키를 사용하자가장 많이 추천되는 방법은 HTTPOnly 쿠키를 사용하는 것입니다. HTTPOnly 쿠키는 클라이언트에서 JavaScript로 접근할 수 없기 때문에, 보안적으로 안전한 선택입니다. 특히 JWT와..

Javascript 2024.09.19

Next.js에서 Vite로 전환: 왜 많은 개발자들이 Next.js를 떠나고 있을까?

Next.js에서 Vite로 전환: 왜 많은 개발자들이 Next.js를 떠나고 있을까?최근 들어 많은 개발자들이 Next.js에서 Vite로 전환하고 있다는 소식을 자주 접하게 됩니다. 특히, Next.js의 앱 라우터(App Router)와 서버 컴포넌트(React Server Components, RSC) 도입 이후 기대와 달리 여러 가지 문제들이 드러나면서, 일부 개발자들은 더 나은 성능과 사용성을 제공하는 Vite로 돌아서고 있죠. 이번 글에서는 Vite로의 전환 이유와 Next.js가 직면한 문제들을 깊이 있게 살펴보겠습니다.1. 개발 서버의 성능 문제가장 많이 제기된 문제는 Next.js의 개발 서버 속도입니다. 많은 개발자들이 Next.js의 Turbopack을 사용함에도 불구하고, 개발 서..

Javascript 2024.09.19

Prisma vs Drizzle: 어떤 ORM이 더 나을까? 성능과 개발자 경험 비교

Prisma vs Drizzle: 어떤 ORM이 더 나을까? 성능과 개발자 경험 비교 어떤 ORM을 사용해야 할까? Prisma와 Drizzle을 비교해 보자ORM(Object-Relational Mapping)은 데이터베이스와 상호작용할 때 SQL을 직접 작성하지 않고, 객체지향적인 방식으로 데이터를 처리할 수 있게 해주는 도구입니다. 현재 시장에는 여러 ORM들이 있지만, 그 중에서도 Prisma와 Drizzle이 많은 주목을 받고 있습니다. 두 ORM 모두 독특한 장점을 가지고 있는데, 어떤 ORM을 선택해야 할지 고민하고 있다면 이 글이 도움이 될 것입니다. Prisma: 개발자 경험(DX)에 중점을 둔 ORMPrisma는 TypeScript 기반의 ORM으로, 개발자 경험을 극대화한 것이 특징입..

Javascript 2024.09.14

Python 3.8 사용을 멈춰야 하는 이유: 보안과 성능 문제 해결법

Python 3.8 사용을 멈춰야 하는 이유: 보안과 성능 문제 해결법 왜 지금 Python 3.8을 멈춰야 할 때인가?혹시 아직도 Python 3.8을 사용하고 있다면, 이제는 버전 업그레이드를 진지하게 고려해야 할 때입니다. 많은 개발자들이 여전히 Python 3.8을 사용하고 있는데, 이 버전은 2023년 10월부터 보안 업데이트가 더 이상 제공되지 않게 됩니다. 즉, 더 이상 새로운 보안 패치가 제공되지 않으므로, 보안 문제에 취약해질 수 있습니다. 이 글에서는 Python 3.8을 계속 사용하는 것이 왜 위험한지, 그리고 더 안전하게 최신 버전으로 업그레이드하는 방법을 알아보겠습니다. Python 3.8의 보안 문제가장 큰 문제는 보안입니다. Python 3.8은 곧 End of Life (EO..

Python 2024.09.14

fetch vs axios: 쉽게 알아보는 4가지 핵심 차이점!

fetch vs axios: 쉽게 알아보는 4가지 핵심 차이점! fetch와 axios는 모두 외부 리소스를 가져오는 라이브러리인데요, 비동기적으로 동작하면서 Promise 객체를 반환합니다. 이 두 라이브러리는 비슷해 보이지만, 몇 가지 차이점이 있습니다. 주로 4가지 차이점이 있는데, 지금부터 하나씩 알아보겠습니다. 설치 방법HTTP 메서드 통신JSON 데이터 가져오기 방법에러 처리 1. 설치 방법 fetch는 브라우저에 기본적으로 내장된 라이브러리라서 따로 설치하지 않아도 됩니다. 반면, axios는 설치가 필요합니다. 아래 명령어로 설치할 수 있습니다.yarn add axios npm install axios 그리고 모듈을 import하는 과정도 필요합니다.import axios from "ax..

카테고리 없음 2024.09.14

Rust 강좌 4 - Rust에서 명령줄 인자 파싱을 쉽게! docopt 사용법 완벽 가이드

Rust 강좌 4 - Rust에서 명령줄 인자 파싱을 쉽게! docopt 사용법 완벽 가이드Relevancy(유효성): 1.9 stable (매크로는 nightly에서만 사용 가능) 명령줄 프로그램을 작성할 때 가장 귀찮은 작업 중 하나가 인자 파싱(argument parsing)인데요, 예를 들어 myprogram --config=myfile.conf --verbose -o output.txt 같은 명령을 입력했을 때, 이를 어떻게 해석할지 결정하는 작업입니다. 인자 중에는 짧은 버전과 긴 버전이 있고, 일부는 선택적이며, 또 다른 일부는 위치 인자일 수도 있는데요. 인자 파싱을 위한 라이브러리는 굉장히 많습니다. 그중 일부는 각 언어의 표준 라이브러리에도 포함되어 있죠. 러스트(Rust)의 경우에는 ..

Rust 2024.09.14

Monorepo와 다수의 리포지토리: 소프트웨어 개발에 최적화된 방법은?

Monorepo와 다수의 리포지토리: 소프트웨어 개발에 최적화된 방법은? Monorepo와 다수의 리포지토리: 어느 것이 더 나을까? 안녕하세요! 오늘은 소프트웨어 개발에서 자주 겪는 ‘Monorepo vs. 다수의 리포지토리’ 문제에 대해 알아볼까요? 이 문제는 많은 팀들이 공유 소스 리포지토리를 다룰 때 자주 마주하는 질문인데요. 각각의 방법에는 장단점이 있기 때문에 상황에 맞는 적절한 선택이 중요합니다. Monorepo와 다수의 리포지토리: 기본 개념먼저, Monorepo는 모든 코드와 구성 요소를 단일 리포지토리에서 관리하는 방법입니다. 이 방식의 장점은 통합된 버전 관리와 종속성 관리가 가능하다는 점인데요. Google과 같은 대형 기업들은 이러한 방식을 통해 코드베이스를 효율적으로 관리하고 있..

Codings 2024.09.10

Rust 강좌 3. CSV 파일 처리하기: 쉽고 간편한 방법

Rust로 CSV 파일 처리하기: 쉽고 간편한 방법안녕하세요! 오늘은 Rust에서 CSV 파일을 처리하는 방법에 대해 알아보겠습니다. 많은 프로그래머들이 경력 중에 CSV 형식을 접해본 경험이 있을 텐데요. 재무 데이터 분석이나 웹 애플리케이션의 사용자 활동 기록을 다운로드할 수 있게 하려면 CSV 형식은 매우 유용한 방법입니다. 하지만 CSV는 표준화되어 있지 않기 때문에 다양한 구현에서 여러 가지 특성이 생길 수 있습니다. CSV 파일 쓰기CSV 파일을 쓰는 것은 생각보다 간단할 것 같은데요. 먼저, Rust에서 CSV 파일을 작성하는 방법을 살펴보겠습니다. 예를 들어, 아래와 같은 데이터를 CSV 파일로 저장해보겠습니다.CSV 파일 작성 예제use csv::Writer;fn main() { l..

Rust 2024.09.07

Python Generators: 기업에서 외면받는 이유와 그 해결책

Python Generators: 기업에서 외면받는 이유와 그 해결책 안녕하세요! 오늘은 Python의 generators에 대해 이야기해보려고 합니다. 많은 Python 개발자들이 이 기능을 잘 활용하지 않고 있다는 사실, 알고 있었나요? 이번 글에서는 그 이유와 함께 generators의 장점, 그리고 이를 효과적으로 사용하는 방법에 대해 살펴보도록 하죠. Generators란 무엇인가?먼저, generators가 무엇인지 간단히 설명할게요. Generators는 데이터를 한 번에 하나씩 생성하는 특별한 형태의 함수인데요. 일반적인 함수가 모든 값을 한 번에 반환하는 것과 달리, generators는 yield 키워드를 사용하여 값을 하나씩 반환할 수 있습니다. 이는 메모리 효율성을 높이고, 대량의 ..

Python 2024.09.07