본문 바로가기

분류 전체보기

(54)
[python] decorator, closure, iterator, and generator 1. 클로저 함수: 함수 안에 함수가 구현되어, 외부함수가 내부 함수를 리턴하도록 설계된 구조의 함수 (정확히 말하면 내부함수가 클로저함수이다. 함수 밖의 변수를 기억하는 함수). 이때 외부 함수는 자신이 가진 변숫값 등을 내부 함수에 전달할 수 있다.# wrapper.pydef mul(m): # 인자 m 필요 def wrapper(n): return m * n return wrapperif __name__ == "__main__": mul3 = mul(3) # mul3 = wapper(m=3): 함수 호출 시 내부함수에 m 전달 mul5 = mul(5) print(mul3(10)) # 30 출력 print(mul5(10)) # 50 출력 외부 함수..
[python] 파이썬 이론 공부 1. 함수# datetime.date# 연, 월, 일로 날짜를 표현할 때 사용import datetimeday1 = datetime.date(2021, 12, 14)# 최대 공약수: math.gcd# 최소 공배수: math.lcmimport mathmath.gcd(60, 100, 80)math.lcm(15, 25)# 난수(규칙이 없는 임의의 수) 생성import randomrandom.random() # 0.0에서 1.0 사이의 실수 범위 내# >>> 0.53840103305098674random.randint(1, 10) # 1에서 10 사이의 정수 범위 내# >>> 6# 두 번째 인수 갯수만큼 무작위 추출random.sample([1, 2, 3, 4, 5], len(data)) # >>> [5, 1,..
[BE] BE framework and Flask 1. 프레임워크: 여러 기능을 가진 클래스와 라이브러리가 '특정 결과물을 구현하기' 위한 목적으로 합쳐진 형태로, 개발을 보다 쉽고 간편히 할 수 있도록 도와주는 도구 개발자들은 1) 사용 목적(프론트/백)에 따라 2) 사용 언어에 따라 다양한 프레임워크를 사용한다. 파이썬JavaScript(Node.js 기반)JAVAFront React BackDjango, FlaskExpressSpring Boot 먼저 백앤드 프레임워크란 "서버에서 실행될 어플리케이션 개발을 돕는 프레임워크"이며, 대표적인 파이썬 프레임워크로는 Flask가 있다. 개발자들은 백앤드 프레임워크 Flask를 통해, 프론트의 요청을 기반으로 API 생성 후 이를 다시 사용자에게 전달하거나, DB를 연동하는 등 전체 어플리케이션의 작..
[python/flask] 로그 관리 (logging) 오류를 로그 파일로 기록하여, 프로그램이 제대로 실행되는지 확인하는 것을 로그 관리라고 한다. 1) 파이썬 라이브러리를 활용해 로그를 생성할 수 있다.import logging# 로거 생성logger = logging.getLogger("myLogger")### 로그 포맷 지정 방법 (1): logging에 직접 ###logging.basicConfig(filename="./log_file.txt", level=logging.DEBUG, format="[ %(asctime)s | %(levelname)s ] %(message)s", datefmt="%Y-%m-%d %H:%M:%S")### 로그 포..
[DB] Alembic & SQLalchemy for CRUD 1. SQLalchemy: python으로 DB를 관리할 수 있게 도와주는 ORM(Object Relational Mapper) 라이브러리기능 1) python 코드를 SQL 쿼리로 추상화 2) 세션/트렌젝션/연결 풀을 관리 파이썬 환경을 DB 환경을 유사하게 미믹해줌 (환경 설정) 2. Alembic: DB를 마이그레이션 해주는 도구로, DB 변화 감지 파일을 생성해 업데이트를 반영함(LIKE git)Flask-Migrate 패키지가 alembic에 내부적으로 의존하고 있어, flask-migrate를 설치하면, alembic도 함께 설치된다.(실제 맵핑) 3. ORM & Migration1) ORM: python class와 DB 테이블 mapping"Python 클래스를 DB 테이블로 표현하겠다"..
MS AI School 2차 프로젝트 후기 1. 주제 / 서비스명: IT 분야 비기너 맞춤형 취업 도우미 '엣취🤧'2. 기간 : 2025.04.02 ~ 2025.04.17 (주말/공휴일 제외 총 12일)3. 조 / 인원: 1조 / 9명4. 작업물 / 발표자료: Github / googleDriive 이번 프로젝트는 후기글을 어떻게 구성해야 할지 고민이 길었다. 1차 프로젝트의 진행과정이 워터폴 모델에 가까웠다면(안정적인 드라이빙), 이번 프로젝트는 전보다 서비스 볼륨이 커지면서 거의 애자일 모델의 스크럼 방식으로 진행되었기 때문이다. 실행과 검토를 여러번 반복했기 때문에, 이전처럼 기-승-전-결의 직선적 구조로는 프로젝트 과정을 깔끔하게 기술하기 어려울 것 같았다. 고민 끝에 내린 결론은 '어차피 내 경험을 정리하려고 쓰는 후기이니, ..
[Algorythm] 그리디 알고리즘 Greedy algorythm: 지역 최적해를 추구하는 알고리즘. 매 선택에서 지금 이 순간 당장 최적인 답을 선택하여 결과를 도출한다. 1) 최적해를 보장하는 상황최적 부분 구조: 부분해를 푸는 과정이 최적해를 구하는 과정과 일치그리디 선택 속성: 선택 과정이 다른 과정에 영향을 주지 않음 2) 최소신장 구조: 그리디 알고리즘을 사용하는 대표적 트리형태 자료구조로, 신장 트리 중 간선 가중치 합이 최소인 것. 그리디 알고리즘 중에서도 1) 프림 알고리즘과 2) 크루스칼 알고리즘을 사용신장트리: 모든 정점이 간선으로 연결되어 있고 간선 구조가 정점 갯수보다 하나 적은 그래프프림 알고리즘 O(E*logV)임의의 정점 하나를 선택해 최소 신장트리에 추가최소 신장트리와 연결된 정점 중 가장 가중치가 적고, 순..
[IDE] Interpreter, Compiler, Kernel 1. IDE 통합개발환경. 즉, 개발에 필요한 텍스트 에디터, 컴파일러, 인터프리터, 디버거 등 여러 가지 도구들을 한 번에 제공하는 프로그램 IDE에 입력되는 언어는 인터프리터 언어(python, JS, SQL 등)과 컴파일 언어(C, C++, ...)로 분류되며 특징은 다음과 같다.기능컴파일러인터프리터번역단위전체행(라인)별도의 목적 파일생성O생성X실행속도빠름느림번역속도느림빠름 이런 차이는 왜 발생하는가? IDE에 입력된 코드는 컴파일을 거쳐 low-level 언어로 변환되고, 최종적으로 (컴퓨터가 바로 알아들을 수 있는) 기계어로 번역되어야 코드가 실행된다는 것이 그 원인이다. 일단, 컴파일러를 통과한 언어는 바로 기계어가 될 수도 있고, 파이썬처럼 바이트코드가 될 수도 있다. 컴파일에는 4가지..