728x90

개발 295

[Python] ENUM 타입 사용하기

파이썬에서 Enum(열거형) 타입을 사용하려면 enum 모듈을 사용해야 한다. enum 모듈은 파이썬 3.4부터 표준 라이브러리에 포함되어 있다. 아래 코드는 Enum 타입을 정의하고 사용하는 간단한 예제 from enum import Enum class Color(Enum): RED = 1 GREEN = 2 BLUE = 3 print(Color.RED) # Color.RED print(Color.RED.value) # 1 print(Color['GREEN']) # Color.GREEN print(list(Color)) # [, , ] 위 예제에서 Color 클래스는 Enum을 상속하고 있다. Enum 클래스의 각 멤버는 Enum 상수를 나타내며, 상수의 이름과 값을 정의할 수 있다. Color.RED와..

개발/Python 2023.06.10

[Python] @classmethod 사용하기

@classmethod는 파이썬에서 사용되는 데코레이터(decorator) 이 데코레이터를 클래스 메서드(class method) 위에 사용하면 해당 메서드가 클래스에 속하는 메서드임을 나타낸다. 클래스 메서드는 인스턴스가 아닌 클래스 자체에 연관된 작업을 수행하는 메서드. 일반적인 인스턴스 메서드와는 달리, 클래스 메서드는 첫 번째 매개변수로 클래스 자체를 받는 cls 매개변수를 사용한다. 클래스 메서드는 클래스 레벨의 작업을 수행하는 데 유용함. 예를 들어, 클래스 변수를 조작하거나 변경하는 작업, 클래스의 다른 메서드를 호출하거나 인스턴스를 생성하는 작업 등을 수행할 수 있다. - @classmethod를 사용하여 클래스 메서드를 정의하고 호출하는 간단한 예시 class MyClass: class_..

개발/Python 2023.06.09

REST API 란?

REST API는 Representational State Transfer Application Programming Interface의 약자이다. REST는 웹 서비스를 구현하기 위한 아키텍처 스타일이며, 네트워크를 통해 다른 애플리케이션들이 데이터를 요청하고 전송할 수 있도록 하는 프로그래밍 인터페이스이다. REST API는 웹 기술을 기반으로 하며, HTTP 프로토콜을 사용하여 데이터를 요청하고 응답하는 방식으로 작동한다. REST API는 주로 JSON 형식으로 데이터를 주고받는다. 따라서 클라이언트 애플리케이션은 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 서버의 리소스에 대한 작업을 요청하고, 서버는 JSON 형식으로 데이터를 응답한다. REST API의 핵심 개념..

개발/ETC 2023.06.08

[FastAPI] FastAPI 시작하기 Response Model ~ File 요청

회사에서 Python + FastAPI로 개발을 하게 되었다. 그래서 공식문서를 훑어보았다. 1. Return Type API 호출 후 return 해줄 때 FastAPI에서 검증을 거친다. 데이터가 유효하지 않은 경우 (예: 필드가 누락된 경우)는 앱 코드가 제대로 작동하지 않거나 예상한대로 반환하지 않는 것을 의미하므로, 잘못된 데이터를 반환하는 대신 서버 오류를 반환한다. 이렇게 함으로써 사용자와 클라이언트는 예상한 데이터와 데이터 구조를 정확히 수신할 수 있음을 확신할 수 있다. - main.py from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class Item(BaseModel): name: str descr..

개발/Python 2023.05.17

[FastAPI] FastAPI 시작하기 Request Body~Parameter Validations

회사에서 Python + FastAPI로 개발을 하게 되었다. 그래서 공식문서를 훑어보았다. 1. Request Body 클라이언트(예: 브라우저)에서 API로 데이터를 보내야 할 때 request body으로 보낸다. 넘길 파라미터가 한, 두개 면 그냥 넘기고 받으면 되지만, 넘길 파라미터가 많으면 코드량이 많아진다. Request Body는 클라이언트에서 API로 보내는 데이터. Response Body는 API가 클라이언트로 보내는 데이터. - main.py from fastapi import FastAPI from pydantic import BaseModel class Item(BaseModel): name: str description: str | None = None price: float ..

개발/Python 2023.05.16

[FastAPI] FastAPI 시작하기 도입부~쿼리 매개변수

회사에서 Python + FastAPI로 개발을 하게 되었다. 그래서 공식문서를 훑어보았다. 1. 도입부 (1) 설치 - 가상환경에서 할 지 말지는 자기마음이지만, 가상환경에서 하는것이 여러 프로젝트를 할 때 깔끔하게 가능 pip install fastapi pip install uvicorn 2. 첫걸음 (1) 시작하기 - main.py 생성 후 아래 코드 작성 from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"} - app 변수는 FastAPI 클래스의 인스턴스 - app.get("/")은 HTTP 메소드 중 하나인 get * 참고 POST: 데이터를 생성하기..

개발/Python 2023.05.15

Index가 적용되지 않는 경우 정리

1. 인덱스에 들어있는 컬럼을 수정하면 인덱스가 적용되지 않는다. num이라는 컬럼이 인덱스에 들어 있을 때, SELECT * FROM table WHERE num + 10 = 30 // Index 적용 안됨 SELECT * FROM table WHERE num = 20 + 10 // Index 적용 됨 2. Null을 조건에서 사용한 경우 인덱스가 적용되지 않는다. SELECT * FROM users WHERE num IS NULL // Index 적용 안됨 SELECT * FROM users WHERE num IS NOT NULL // Index 적용 안됨 SELECT * FROM users WHERE num > 0 // Index 적용 됨 SELECT * FROM users WHERE num > '..

개발/ETC 2023.05.11

[Spring] @Modelattribute, @RequestBody 차이점

@ModelAttribute와 @RequestBody는 둘 다 Spring MVC 프레임워크에서 사용되는 어노테이션으로, HTTP 요청의 데이터를 컨트롤러 메서드에서 처리하기 위해 사용된다. 그러나 두 어노테이션의 사용 방법과 동작에 차이점이 있다. @ModelAttribute @ModelAttribute는 HTTP 요청의 파라미터를 객체로 바인딩하기 위해 사용된다. 컨트롤러 메서드의 파라미터 앞에 @ModelAttribute를 사용하여 해당 파라미터를 객체로 변환하고, 이를 컨트롤러 메서드 내에서 사용할 수 있다. 또한, 이 어노테이션을 사용하면 해당 객체를 자동으로 뷰로 전달된다. 주로 HTML 폼 데이터를 처리할 때 사용된다. 객체 클래스에 @Setter 어노테이션이나 Setter가 필요하다. 예시..

PK와 UK 차이

유일성(Uniqueness): PK는 테이블에서 유일한 값을 가져야 한다. 즉, 테이블의 각 레코드는 PK 값을 중복으로 가질 수 없다. UK는 테이블에서 유일한 값을 가지긴 하지만, 한 테이블에서 중복된 UK 값을 가질 수 있다. UK는 여러 개의 NULL 값을 가질 수 있다. NULL 값 허용 여부: PK는 NULL 값을 가질 수 없다. 즉, PK는 반드시 값을 가져야 한다. UK는 NULL 값을 가질 수 있다. 기능(Functionality): PK는 테이블에서 각 레코드를 식별하는 데 사용되며, 테이블 간의 관계를 설정하는 데 사용된다. PK는 외래 키(Foreign Key)를 참조할 수 있다. UK는 테이블에서 유일한 값을 갖는다는 점에서 PK와 유사하지만, 외래 키를 참조할 수 없다. 개수(C..

개발/ETC 2023.04.25

Git, SVN 차이

1. 분산 vs 중앙 집중식: git은 분산 버전 관리 시스템이며, 모든 개발자가 로컬 저장소를 가지고 독립적으로 작업할 수 있고, 변경 사항을 원격 저장소와 동기화할 수 있다. 반면에 svn은 중앙 집중식 버전 관리 시스템으로, 모든 개발자들이 중앙 서버에 접근하여 작업하고 변경 사항을 반영한다. 2. 브랜치와 병합: git은 브랜치와 병합 기능이 강력하게 내장되어 있어, 다양한 브랜치를 만들고 병합을 수행하여 동시에 다양한 작업을 처리할 수 있다. svn도 브랜치와 병합을 지원하지만, git에 비해 제한적이고 번거로운 경우가 있다. 3. 로컬 저장소 vs 중앙 서버: git은 로컬 저장소를 가지고 작업할 수 있어, 오프라인 상태에서도 커밋, 브랜치 생성, 히스토리 조회 등이 가능하다. 반면에 svn은..

개발/ETC 2023.04.24
728x90