반응형

Programming/Python 22

[Python] 파이썬 Fast API 개발 환경 설정 및 Docker와 Github Action으로 CI/CD 구현하기

이번 포스팅에서는 제가 최근에 진행한 Python 개발 환경 설정과 Docker를 이용한 CI/CD 구축 과정에 대해 공유하려고 합니다.개인적으로 진행하는 프로젝트가 파이썬의 FastAPI를 사용하고 있어서 파이썬을 선택하게 되었습니다. macOS와 VSCode를 사용하고 있으며, 각 패키지를 Homebrew로 설치했습니다. 배포 환경은 AWS가 아닌 Oracle 인스턴스로, GitHub Actions를 사용하여 배포할 예정입니다.   1. Python 개발 환경 설정먼저 파이썬 개발 환경을 세팅하기 위해 pyenv, poetry, ruff, 그리고 mypy를 사용하였습니다. 이 과정에서 사용된 설정 방법을 공유하겠습니다.1.1 pyenv로 Python 버전 관리하기pyenv는 여러 파이썬 버전을 쉽게 ..

Programming/Python 2024.12.02

[Python] 파이썬 Comprehension 에 대해서 알아보자.

오늘은 파이썬 Comprehension 에 대해서 알아보는 시간을 갖도록 하겠다. Comprehension의 개념을 알면 List, Set, Dictionary에서 보다 간결하게 데이터를 가져올 수 있다. (1) 정의 - 다른 Sequence로 부터 새로운 Sequence (Iterable Object)를 만들 수 있는 기능. - 단, if 조건식에서 다중 조건은 and만 가능하다. (or은 불가) (2) 종류 ① List Comprehension - List Comprehension은 입력 Sequence로부터 지정된 표현식에 따라 새로운 리스트 컬렉션을 빌드하는것이다. - [if 조건식] 에서 [ ] 은 리스트 괄호가 아니라, 옵션의 뜻을 나타낸다. 즉, 조건이 있을때만 넣으면 된다. [ 출력표현식 ..

Programming/Python 2021.10.18

[Python] 파이썬 예외 종류에 대해서 알아보자.

오늘은 파이썬 예외 종류에 대해서 알아보는 시간을 갖겠다. 1. 예외 종류 - 문법적으로는 에러가 없지만, 코드 실행(런타임) 프로세스에서 발생하는 예외 - 크게 8가지로 볼 수 있겠다. (1) NameError : 참조변수 없음 a = 10 b = 5 print(c) # c가 존재하지 않음 Result NameError: name 'c' is not defined (2) ZeroDivisionError : 숫자값을 0으로 나눴을 때 발생 print(100 / 0) Result ZeroDivisionError: division by zero (3) IndexError : 인덱스 범위 오버 (보통 배열 및 리스트) x = [10, 20, 30] print(x[5]) # 5는 없는 인덱스 Result Ind..

Programming/Python 2021.08.19

[Python] 파이썬 모듈과 패키지에 대해서 알아보자.

오늘은 파이썬에서 모듈과 패키지를 활용하는 방법에 대해서 알아보는 시간을 갖겠다. 1. 클래스 pkg/arithmetic.py class Arithmetic: def __init__(self, title="Arithmetic"): self.title = title def sum(endNum): return (endNum * (endNum + 1)) / 2 def sumPrint(endNum): sum = (endNum * (endNum + 1)) / 2 print('sum => ', sum) 예시1. - 콤마(,)를 사용해서 가져올 수 있다. from pkg.arithmetic import Arithmetic sum = Arithmetic.sum(10) print('sum : ', sum) Arithme..

Programming/Python 2021.07.31

[Python] 파이썬 파일 쓰기(Write)에 대해서 알아보자.

오늘은 파이썬 파일 쓰기(Write)에 대해서 알아보는 시간을 갖도록 하겠다. 예제1. - 'w' : 파일 쓰기 - 동일한 경로의 파일명이면 새로 overwrite한다. with open('./resource/text1.txt', 'w') as f: f.write('GoodDay') Result - resource/text1.txt GoodDay 예제2. - 'a' : 이어 쓰기 - 해당 파일에 이어쓰기를 진행한다. - 위에서 작성한 text1.txt 파일을 이어썼다. # 예제2 with open('./resource/text1.txt', 'a') as f: f.write(' is coming') Result - resource/text1.txt GoodDay is coming 예제3. from rand..

Programming/Python 2021.07.31

[Python] 파이썬 파일 읽기(Read)에 대해서 알아보자.

오늘은 파이썬 파일 읽기에 대해서 알아보도록 하겠다. 1. open() 함수 - 파이썬에서 제공하는 빌트인 함수 - 파일을 여는데 사용하는 함수 - 파일모드 ① 'r' : 읽기 모드 ② 'w' : 쓰기 모드 (기존파일 삭제) ③ 'a' : 추가 모드 (파일 생성 또는 추가) open([ 경로 ], [ 파일모드 ]) 예제1. 파일 읽기 (1) - 객체를 할당해서 사용하는 방법 f = open('./Songs/listen.txt', 'r') content = f.read() print(content) f.close() # 반드시 close 리소스 반환 Result Listen to the song here in my heart A melody I start but can't complete Listen to..

Programming/Python 2021.07.31

[Python] 파이썬 클래스 상속에 대해서 알아보자.

오늘은 파이썬에서 클래스의 특징인 상속에 대해서 알아보는 시간을 갖도록 하겠다. 예제1. - 부모클래스(슈퍼클래스)를 상속받으면 슈퍼클래스 및 서브클래스의 모든 속성, 메소드 사용 가능 class Car: """Parent Class""" def __init__(self, tp, color): self.type = tp self.color = color def show(self): return 'Car Class "Shor Method!"' # 상속받을 슈퍼클래스를 인자로 넣어주면 상속 class BmwCar(Car): """Sub Class""" def __init__(self, car_name, tp, color): # 슈퍼클래스를 초기화 해줘야 한다. super().__init__(tp, color..

Programming/Python 2021.07.26

[Python] 파이썬 클래스(class)에 대해서 알아보자.

오늘은 객체 지향언어의 가장 큰 특징인 클래스(class)의 기본 특징에 대해서 알아보는 시간을 갖겠다. 1. 클래스 (1) 예제1 - 초기화는 __init__ 메서드를 사용한다. - 아무것도 없는 클래스에서는 pass가 없으면 애러가 난다. class UserInfo: def __init__(self, name): self.name = name def user_info_p(self): print("초기화 : ", self.name) # 네임스페이스 user1 = UserInfo("Yun") print(user1.name) user1.user_info_p() user2 = UserInfo("Park") print(user2.name) user2.user_info_p() # 메모리 주소가 다르다 -> 다른..

Programming/Python 2021.07.25

[Python] 파이썬 람다(Lambda)에 대해서 알아보자.

오늘은 파이썬에서 사용되는 람다(Lambda)에 대해서 알아보는 시간을 갖겠다. 1. 람다(Lambda) - 특징 : 메모리 절약, 가독성 향상, 코드 간결 - 함수는 객체 생성 -> 리소스(메모리) 할당 - 람다는 즉시 실행(Heap 초기화) -> 메모리 초기화 (1) 일반적인 함수 - 일반 적인 함수는 메모리에 할당이 된다. def mul_10(num : int) -> int: return num * 10 var_func = mul_10 print(var_func) print(type(var_func)) print(var_func(10)) Result 100 (2) 람다_1 lambda_mul_10 = lambda num: num * 10 print('>>>', lambda_mul_10(10)) Re..

Programming/Python 2021.06.20

[Python] 파이썬 함수에 대해서 알아보자.

오늘은 파이썬의 함수에 대해서 알아보는 시간을 갖도록 하겠다. 1. 함수 (1) 함수 선언 def hello(world): print("Hello", world) (2) 함수 호출 hello("Python!") hello(7777) Result Hello Python! Hello 7777 (3) 리턴 함수 선언 및 호출 def hello_return(world): val = "Hello" + str(world) return val str = hello_return("Python!!!!") print(str) Result HelloPython!!!! (4) 다중 리턴 함수 def func_mul(x): y1 = x * 100 y2 = x * 200 y3 = x * 300 return y1, y2, y3 v..

Programming/Python 2021.06.20
반응형