본문 바로가기

전체 글

(64)
1-4 자료구조 / 시간복잡도 / 검색 알고리즘 1. 자료구조와 알고리즘 을 공부하는 이유는? 어떤 자료구조를 택하느냐에 따라 코드 실행속도가 0.2초가 걸릴수도, 2초가 걸릴수도 있기 때문이다. 특히 다루는 데이터의 양이 많아질수록 이 시간의 중요성은 더 중요하다. 가장 효율적인 자료구조와 알고리즘을 선택하여 시간복잡도를 줄여야한다. 2. 시간 복잡도 시간 복잡도는 알고리즘의 실행 시간이 입력 크기에 대해 어떻게 증가하는지를 설명하는 개념. 알고리즘의 효율성을 평가하고 비교하기 위해 사용된다. 이때 실제 시간을 측정하는 것이 아니다. '코드 안에 얼마나 많은 단계가 있는가'로 측정. 단계가 적을수록 좋다. 일반적으로 알고리즘의 시간 복잡도는 Big O 표기법을 사용하여 나타낸다. 예를 들어, O(1), O(log n), O(n), O(n log n)..
1-2/1-3 OOP(객체지향 프로그래밍) - OOP 프트웨어 개발 방법론 중 하나로, 프로그램을 작성할 때 현실 세계의 객체(Object)를 모델로 삼아 프로그래밍하는 방법. 이 방법론은 객체들 간의 상호작용을 중심으로 프로그램을 구성하며, 코드의 재사용성, 유지보수성, 확장성 등을 향상시킬 수 있다. - 캡슐화 : 객체의 상태와 행위를 하나로 묶고, 외부로부터의 접근을 제어 - 상속 : 기존의 클래스(부모 클래스)를 기반으로 새로운 클래스(자식 클래스)를 생성 - 추상화 : 객체에서 공통된 속성이나 동작을 추출하여 모델링하는 과정 - 다형성 : 같은 이름의 메서드 또는 연산자가 다양한 객체에서 다양한 방식으로 동작할 수 있는 능력 - 프로그래밍 / 알고리즘 / 문제해결 프로그래밍 : 주어진 문제를 해결하기 위해 컴퓨터가 수행해야 하는 작업단계..
1-1 Programming 1. 정규표현식 - 원하는 구조의 문자열 추가 # 원하는 구조의 문자열 추출 # 'col'로 시작하며 하나의 문자열 후에 'r'이 오는 문자형 자료 찾기 import re wordlist = ["color", "colour", "work", "working", "fox", "worker", "working"] for word in wordlist: if re.search('col.r', word): print(word) # >>> color # 만약 'col..r'로 설정하면 colour가 출력되고 # 'col.*r'로 설정하면 color, colour 둘다 출력된다. ('.*'는 임의의 문자열 의미) - 문자열의 특정 패턴 확인 # re.match(pattern, str) # match는 문자열의 시작..
[기초] while문 활용해 가위바위보 게임 만들기 1. 작업 계획 ① 사용자에게 가위, 바위, 보 정보 입력받기 - while, input() ② 컴퓨터는 랜덤으로 가위, 바위, 보 선택 - random.choice ③ 사용자 승패 여부 가리기 - 사용자 입력값과 컴퓨터 랜덤값 비교 ④ 게임 실행 - 위에서 정의해둔 함수 모두 불러와 이용 - while, score 계산, 승패여부 출력 - 최종 게임 score 출력 2. Code # 라이브러리 import random # user가 선택한 값 입력받기 def get_user_choice(): while True: user_choice = input("가위, 바위, 보 중에서 선택하세요 (게임 종료: '게임종료'): ") if user_choice in ['가위', '바위', '보', '게임종료']: r..
[코드스테이츠 / Flask] 머신러닝 모델을 웹서비스로 구현하기 0. 작업 계획 ① 모델 저장 : 모델을 학습시키고 저장한다 ② 시작 페이지 : 여섯가지 정보를 입력받는 박스가 있고 predict를 통해 정보를 전송한다 ③ 결과 페이지 : 저장해둔 모델을 불러온다. 입력받은 정보를 통해 모델 예측 결과를 반환한다 1. 완성된 모델 피클링 먼저 '식당 위생 검사' 데이터를 이용해 머신러닝 모델을 만들었다. 시설타입, 위험성, 위치한 도시, 검사 종류, 검사 시기를 통해 위생 검사 통과 여부를 예측하는 모델이다. 모델을 학습시키고 테스트까지 마친 후, 피클링을 통해 모델을 flask_app 폴더 내에 저장했다. import joblib joblib.dump(clf, './flask_app/model.pkl') 2. flask_app 본격적으로 flask 앱을 만들어보자...
[Flask] 생활코딩 강의 요약 *이 포스트는 생활코딩 Flask 기초 강의를 듣고 요약한 내용이다 https://www.youtube.com/watch?v=X_n6IZmieV8&list=PLuHgQVnccGMClNOIuT3b3M4YZjxmult2y 0. 웹 프레임워크 웹 애플리케이션을 개발하기 위해 사용되는 소프트웨어 프레임워크. 웹 개발마다 공통적으로 필요한 부분이 있는데 이러한 기본 구조와 기능을 제공한다. 개발 언어마다 유명한 웹 프레임워크가 있고, python에는 django, FastAPI, Flask가 있다. 오늘은 이 중 이해하기 쉬운 Flask를 다룬다. flask 앱을 이용해 웹을 구현해 실행시켰을 때, 브라우저는 python을 읽는 것이 아니다. 브라우저는 html만 해석할 수 있다. 하지만 flask는 브라우저가 ..
[데이터 엔지니어링] 3-1 Docker 1. Docker 윈도우 환경에서 애플리케이션을 개발해 완성했다. 이를 서버로 보내 배포하고자 하는데 서버는 리눅스다. 게다가 파이썬 버전 등 여러가지 환경이 맞지 않는다. 이 경우에 필요한 것이 docker다. 내가 만든 코드와 환경을 묶어서 docker image로 만들어 서버로 보낸다. 서버는 image를 받아서 container로서 활성화 시켜서 코드를 실행시킬 수 있다. 도커 공식문서 https://docs.docker.com/engine/reference/commandline/container_run/#options docker container run docker container run: See [docker run](run.md) for more information. docs.docke..
[데이터 엔지니어링] 2-4. NoSQL 1. NoSQL DB는 RDB(SQL)과 NoSQL로 나뉜다. RDB : 관계형 데이터베이스. SQL 쿼리로 데이터를 가져올 수 있다. 처음부터 정리된 상태(스키마, 테이블간 관계, Primary key)로 저장되기 때문에 꺼내올 때도 쉽다. 하지만 짧은 시간 안에 많은 데이터를 저장하기는 어렵다. NoSQL : 관계형 데이터베이스가 아닌 모든 DB. 몽고DB, 카산드라 등이 있다. 데이터를 막 때려넣을 수 있기 때문에 큰 기업에서 많이 쓴다. 일례로 인스타그램도 처음 출시됐을 때는 RDB를 썼지만 사용자가 많아지자 NoSQL로 넘어갔다. NoSQL은 넣을 당시 막 집어넣었기에 꺼내올 때 생각을 많이 해야할 수도 있다. a. NoSQL의 종류 Key-Value 타입 : 데이터를 Key-Value의 쌍을 ..