반응형

프로그래밍 언어 109

컨테이너, MSA, DevOps, 웹 서비스 아키텍처의 핵심과 Docker & Kubernetes의 역할

웹 서비스의 아키텍처 변화와 컨테이너 기술의 등장 과정을 살펴보고 수많은 컨테이너를 효율적으로 관리하는 컨테이너 오케스트레이션(Kubernetes)에 대해서까지 정리해 보죠. 컨테이너, MSA, DevOps, 웹 서비스 아키텍처의 핵심 초기 웹 서비스 구조초기 웹 서비스는 대부분 모놀리식 아키텍처(Monolithic Architecture)로 구축되었습니다.특징: 웹 서비스의 모든 기능(사용자 인증, 상품 관리, 결제, 추천 등)이 하나의 거대한 애플리케이션으로 묶여 하나의 서버에 배포.서버 구성: Apache나 Nginx 같은 웹 서버가 요청을 받고, Tomcat이나 JBoss 같은 WAS(Web Application Server)에서 Java, Python, PHP 등으로 개발된 애플리케이션 코드를..

tiktoken 라이브러리 활용 - OpenAI LLM 토큰 계산으로 AI 모델 비용 예상하기

대규모 언어 모델(LLM)에서 자연어 처리의 핵심 개념 중 하나는 토큰(Token)입니다. OpenAI에서 개발한 tiktoken 라이브러리는 바로 이 토큰수를 예상할 수 있는 라이브러리입니다. 이번에는 tiktoken를 어떻게 활용할 수 있는지 코드와 함께 정리해 보겠습니다. OpenAI LLM 토큰수 계산하기 tiktoken 라이브러리tiktoken은 OpenAI의 모델들이 텍스트를 인코딩(토큰화)하고 디코딩하는 데 사용하는 BPE(Byte Pair Encoding)입니다. 쉽게 말해, 우리가 작성하는 문장을 모델이 이해할 수 있는 작은 숫자(토큰 ID)들의 배열로 변환하거나, 반대로 토큰 ID 배열을 다시 우리가 읽을 수 있는 문장으로 변환해 주는 역할을 합니다. 다음과 같이 활용됩니다.토큰 수 ..

Flask 데이터베이스, SQLAlchemy와 SQLite로 모델, 마이그레이션, CRUD - Flask #5

데이터베이스(Database)는 데이터를 안전하게 저장하고, 나중에 다시 꺼낼 수 있도록 해주는 저장소입니다. 예를 들어, 사용자 정보를 저장한다고 해보죠. 우리가 파이썬 딕셔너리나 리스트로 정보를 저장하면 서버를 껐다 켤 때 다 사라져 버리기 때문에 데이터베이스로 정보를 저장한 후 언제든지 정보를 다시 꺼낼 사용 해야 합니다. Flask에서 데이터베이스를 연결하는 방법Flask 자체는 데이터베이스 기능이 없지만, Flask-SQLAlchemy라는 확장 도구를 사용하여 연결할 수 있습니다. 더하여, 가벼운 데이터베이스인 SQLite를 사용할 수 있죠. 설치 방법pip install Flask Flask-SQLAlchemy Flask-MigrateFlask: 웹 애플리케이션 프레임워크Flask-SQL..

Flask 폼 처리, 사용자 입력, GET/POST 차이, CSRF 보안 설정 방법 - Flask #4

웹 애플리케이션에서 사용자의 입력을 받아 처리하는 일은 거의 모든 기능의 출발점입니다. 회원가입, 로그인, 검색창, 문의 폼, 게시글 작성 등 대부분의 인터랙션은 사용자가 정보를 입력하고 서버가 그 값을 받아 처리하는 흐름으로 작동합니다. 이 단락에서는 Flask 기반 웹 애플리케이션에서 HTML 폼을 구성하고, 사용자 입력을 수신하여 처리하는 전 과정을 실무 흐름에 맞게 설명합니다. HTML 폼과 Flask 연동웹에서 폼(form)이란 사용자가 텍스트를 입력하거나 선택한 값을 서버로 전송할 수 있도록 구성된 구조입니다. HTML에서는 태그를 사용하며, 이 안에 다양한 입력 필드( , , 등)가 들어갑니다. 폼의 주요 속성 action : 사용자가 입력한 데이터를 어디(URL)로 보낼 ..

웹 UI 개발을 위한 Flask 템플릿 엔진 Jinja2 조건문과 템플릿 구조 가이드 - Flask #3

Flask 웹 개발 입문자 및 실무자를 대상으로 템플릿 엔진 Jinja2의 기본 개념과 문법을 익히고, 이를 웹 UI로 구성할 수 있도록 정리합니다. Jinja2는 Flask 개발에서 HTML과 Python 간의 연결을 자연스럽게 처리하는 핵심 도구이며, 조건문, 반복문, 템플릿 상속 및 레이아웃 구성 같은 기능을 통해 웹페이지의 구조화, 재사용성, 유지보수에 있어서 효율성이 높습니다.  Flask 템플릿 엔진 Jinja2의 이해와 활용  Jinja2 문법 기초웹 개발에서는 서버의 데이터를 사용자의 브라우저에 보여주기 위해 HTML에 동적으로 값을 삽입하는 경우가 많습니다.예를 들어 사용자의 이름이나 게시글 목록 등을 표시하려면 단순한 정적 HTML만으로는 부족하죠. 이때 사용하는 것이 템플릿 엔진입니다..

Flask 웹 개발 입문자를 위한 URL 매핑과 HTTP 메서드 처리 가이드 - Flask #2

Flask의 핵심 개념 중 하나인 URL 라우팅 시스템과 @app.route() 데코레이터의 역할, 동적 라우팅과 HTTP 메서드 처리 방식에 대해 정리합니다.  URL 매핑과 HTTP 메서드 처리  브라우저에 입력한 주소는 어디로 연결될까?웹 브라우저에 "http://localhost:5000/hello"라고 입력하면 Flask 애플리케이션은 어떻게 이 요청을 처리할까요?Flask는 라우터(Router)라는 내부 시스템을 통해, 들어온 URL을 미리 등록된 뷰 함수(view function)와 연결합니다. 이 연결 규칙을 "라우팅(Routing)"이라 부르며, 웹 서버의 주소창이 아닌 Flask 코드 내부에서 그 처리 과정을 구현합니다..즉, Flask는 단순히 'HTML을 보여주는 도구'가 아니라, ..

Django vs Flask 파이썬 웹 프레임워크 비교 - Flask #1

Flask와 Django를 비교해 보며 어떤 상황에서 Flask를 선택하는 것이 유리한지 판단해 보고자 하며, 초보 웹 개발자도 쉽게 이해할 수 있는 예제 코드와 구조 설명을 통해 Flask의 학습 장벽을 낮추고, 궁극적으로 Flask 기반 웹 프로젝트 개발 적용할 수 있도록 정리합니다.    Flask 기본 배경Flask는 "필요한 기능만 붙이자", "개발자가 구조를 정의한다"는 철학 아래 다음과 같은 특징을 가집니다.의존성 최소화: Flask는 처음 설치할 때 매우 가볍습니다. 단 두 개의 외부 라이브러리만을 기본으로 의존합니다: `Werkzeug`(웹 서버 게이트웨이 인터페이스)와 `Jinja2`(템플릿 엔진).플러그인 구조: 필요한 기능(ORM, 인증, 관리 콘솔 등)은 개발자가 선택해 확장할 수..

JavaScript 라이브러리 활용, 타입 정의 파일과 tsconfig.json 설정 - TypeScript #6

JavaScript 라이브러리를 TypeScript 환경에서 활용하는 방법을 정리합니다. 특히, tsconfig.json 설정, 타입 정의 파일(.d.ts), 그리고 DefinitelyTyped와 같은 자원을 통해 JavaScript와 TypeScript의 상호 운용에 대해 살펴봅니다. JavaScript 코드에서 TypeScript 활용  TypeScript 파일을 JavaScript 프로젝트에 통합하는 방법TypeScript는 JavaScript의 상위 집합으로, JavaScript 코드와의 호환성이 뛰어납니다. 따라서 기존 JavaScript 프로젝트에 TypeScript를 통합하는 것은 매우 간단하게 이루어질 수 있습니다. TypeScript 설정 파일(tsconfig.json) 추가하기먼저, T..

TypeScript와 React Native로 배우는 모듈 시스템 Import/Export - TypeScript #5

이번에는 타입스크립트의 모듈에 대해 정리해 보겠습니다. 프로그래밍을 하다 보면 코드가 점점 길어지고 복잡해지기도 합니다. 예를 들어, React Native로 앱을 만들 때 화면을 구성하는 컴포넌트, 데이터를 가져오는 함수, 스타일을 정의하는 코드가 모두 한 파일에 있다면 나중에 수정하거나 협업할 때 머리가 아플 겁니다.이를 위해 모듈에 대해 고려해야 합니다. 모듈은 쉽게 말해 코드를 기능별로 쪼개서 파일 단위로 관리하는 방법입니다. 마치 책꽂이에 책을 주제별로 정리하듯 말이죠. TypeScript와 React Native로 배우는 모듈 시스템TypeScript에서 모듈은 JavaScript의 모듈 시스템을 기반으로 동작합니다. JavaScript에는 크게 두 가지 모듈 방식이 있는데, 바로 Common..

타입스크립트의 객체 지향 프로그래밍, 클래스, 인터페이스, 상속 정리 - TypeScript #4

이번에는 TypeScript를 활용한 객체 지향 프로그래밍(OOP)에 대해 정리해 보겠습니다. TypeScript의 클래스, 인터페이스, 접근 제어자, 상속, 다형성, 추상 클래스, 데코레이터 같은 기능을 예시와 함께 살펴보겠습니다.   클래스와 인터페이스객체 지향 프로그래밍(OOP)의 본질은 프로그램을 다양한 객체 간의 상호작용이라는 것에 있습니다. TypeScript는 JavaScript를 기반으로 하지만, 클래스(Class) 중심으로 전통적인 OOP 언어처럼 객체를 설계할 수 있도록 합니다.예를 들어, 아래는 간단한 User 클래스를 만든 코드입니다.class User { name: string; age: number; constructor(name: string, age: number) { ..

반응형