전체 글 218

[python] Flask 배포하기

웹 서버와 SGI 웹 서버란 실제로 사용자의 요청을 받고 응답을 주는 엔진엑스(Nginx), 아파치(Apache) 등을 말하며, 네트워크 통신의 전반적인 부분을 담당한다.Nginx, 아파치와 같은 웹서버와 플라스크 애플리케이션 등 웹 애플리케이션 사이에서는 통신이 필요하다. 서버 게이트웨이 인터페이스(SGI)가 바로 그 통신 규약, 이 규약을 통해 웹 서버는 사용자의 HTTP 요청을 웹 애플리케이션에 전달하고, 애플리케이션의 응답을 다시 사용자에게 전달한다. 플라스크에서의 SGI는 그중에서도 플라스크 웹 애플리케이션과 웹 서버 사이의 통신 방식만을 정의한다. Flask run 만으로도 내부적으로 간단한 WSGI 서버를 실행시킨다.그러나 이것은 운영 환경에서 사용하기엔 부족한 면이 많음 - 성능 이슈 : ..

[python] Flask Restapi 구현

Restful api 컴퓨터나 스마트폰 애플리케이션이 서버에 정보를 요청하거나 보낼 수 있는 방법 중 하나이다. 서버는 정보가 저장된 컴퓨터를 말하고, 클라이언트는 그 정보를 사용하려는 사람이나 애플리케이션을 의미한다. RESTful API는 정보 교환을 단순하고 효율적으로 만들어줌, 웹사이트나 애플리케이션에서 중요한 역할을 하게 됨 HTTP 매서드 이해하기HTTP 메서드는 서버와 클라이언트가 어떻게 대화 할것인지 정한 규칙 GET(조회) : 클라이언트가 서버에게 "이 정보 좀 줘"라고 요청하는 것임, 웹 브라우저에서 웹페이지를 열 때, 서버에게 그 페이지의 정보를 가져오라고 요청 POST(생성) : 클라이언트가 서버에게 새로운 정보를 보내는 것, 새글을 블로그에 올릴 때 그 글의 내용을 서버에 올리라는..

파이썬 시계열 예측 분석 - 제이펍 [도서리뷰]

파이썬 시계열 예측 분석은 데이터 과학 분야에서 실무자들에게 필수적인 시계열 예측 분석을 다루는 종합적인  방법에 대해 다룬 가이드라고 생각된다.이 책은 특히 데이터 사이언티스트, 분석가, 엔지니어 등 실무자들에게 유용한 내용을 담고 있다. 한 때, 데이터분석가의 꿈을 키웠던저에게는 매우 반가운 책이였습니다. 시계열 예측은 통계분석의 꽃이라고 생각된다. 표지의 그림은 라는 그림인데, 드 생소뵈레르라는 화가가 그린 그림이라고 한다. 생소뵈르의 작품들은 200년 전만 해도 세계 도시와 지역의 문화의 다양성을 보여줬는데,이를 빗대어 요즘 비슷비슷한 IT 책들 사이에서 독창성과 진취성을 나타내고자 이 표지를 선택했다고 한다. 대상독자는 다음과 같다. 통계 혹은 머신러닝에 처음 입문하는 사람들이 대상이되기 보단,..

[Python] Flask 세션과 쿠키

세션 과 쿠키웹 애플리케이션에 상태를 관리하는 두 가지 주요기술은 session과 쿠키임 웹은 기본적으로 상태를 유지않는(stateless) 특성이 있는데, 이는 웹서버가 클라이언트의 요청 사이의 상태 정보를 저장하지 않는다는 것을 의미함 웹페이지를 이동할 때 마다 사용자가 누구인지, 어떤 작업을 햇는지 등의 정보를 매번 인식 세션과 쿠키는 상태를 유지하지 않는 웹의 한계를 극복하기 위해 사용됨 세션 : 세션은 서버 측에서 사용자의 상태 정보를 유지, 사용자가 웹 애플리케이션에 로그인 하면, 서버는 고유한 세션 ID를 생성하고, 이를 쿠키로 클라이언트에 전송한다. 클라이언트는 이 세션 ID를 가진 쿠키를 사용해 이후 요청에서 자신을 인증하고 서버는 이 ID를 사용해 사용자의 세션 데이터에 접근한다. 세션..

[Flask] Flask + mysql 연결

Flask에서 DB와 연결을 하려면 여러 방법이 있지만, 일반적으로 많이 사용되는 것은 SQL-Alchemy를 사용하여 연결하는 것이다. SQL-Alchemy는 객체-관계 매핑을 제공하여 파이썬 클래스를 데이터베이스 테이블과 연결을 통해 보다 직관적이고 유지관리를 쉽게 해준다. 데이터베이스 종류는다양하지만, 일반적으로 많이 사용되는 MySQL을 사용한다고 가정한다.Flask에서  DB를 접속하려면, Flask-SQLAlchemy와 mysql연결을 위한 pymysql을 설치한다.  - 필요한 패키지 설치pip install Flaskpip install Flask-SQLAlchemy## db 종류에 따라 선택해서 설치하면 됨pip install pymysql   - 사전 환경설정먼저 PC에 MySQL을 설..

실전 SQL 퀵스타트 - 제이펍 [도서리뷰]

개발자들은 어떻게 데이터를 관리하고 조작하는데 어떻게 효율적으로 할 수 있는지 개발 프로젝트 시, 항상 매우 중요하게 고려되는 사항입니다. SQL은 데이터를 관리하는데 있어서 최적의 도구라고할 수 있습니다. SQL을 통해 데이터의 흐름을 이해하고, 데이터베이스의 성능을 최적화하며, 비즈니스 요구사항에 맞는 데이터 솔루션을 설계할 수 있습니다.  또한, 데이터 분석가나 데이터 과학자와 협업할 때도 SQL은 중요한 커뮤니케이션 도구로 작용합니다.2023년 StackOverFlow 기준, SQL은 4위를 차지하며 개발언어들을 뒷바침해주는 데이터 언어로 자리매김을 하고 있습니다. https://survey.stackoverflow.co/2023/#most-popular-technologies-language S..

[C#] Proxy 패턴

카테고리 : 구조패턴 개요 : Proxy 패턴은 클라이언트가 실제 사용을 원하는 객체를 직접 사용하는 것이 아니라 그 객체에 대한 대리자(Proxy) 역할을 하는 객체를 두고, 클라이언트가 대리자(Proxy( 객체를 통해서 실제 객체를 사용하도록 하는 방식이다. Proxy 패턴은 클라이언트와 실제 사용하고자 하는 객체(RealSubject) 사이에 대리자(Proxy)를 두고, 실제 객체(RealSubject) 대신 대리자를 호출하는 방식이다. 대리자(Proxy) 객체는 실제 객체와 동일한 인터페이스를 가지며, 클라이언트와 실제 객체 사이에는 하나 이상의 복수 Proxy 객체가 있을 수 있다. Proxy 패턴에서 대리자(Proxy)는 단순하게는 클아이언트 요청을 그대로 실제 객체에 전달 가능하며, 대리자(..

[C#] Decorator 패턴

카테고리 : 구조 패턴 개요 : Decorator 패턴은 기존 객체의 구조를 그대로 둔 채, 그 객체에 부가적인 기능을 동적으로 추가하기 위해 사용된다. 객체지향 프로그래밍에서 흔히 클래스에 새로운 기능들을 추가하기 위해 서브클래스를 만들어 사용하는데, 이것의 대안적인 방법으로 Decorator 패턴을 이용할 수 있다. 클래스 상속을 사용하면 너무 많은 서브클래스들이 만들어 지는 경우 Decorator 패턴이 유용하게 사용된다. 기능 확장을 위해 서브클래스를 사용하는 방식은 컴파일시에 결정되는 기능 확장 방식인 반면, Decorator 패턴은 객체를 전달하며 기능을 확장하는 방식으로 런타임시에 동적으로 기능 추가, 확장하게 된다. 서브클래싱 방식은 클래스 상속을 사용하게 되는데 상속으로 구현시, 서브클래..

[C#] Winform 콤보박스를 이용한 학점계산기 만들기

학점계산기를 만들어보았다. 구현 사항 1) 교과목, 학점, 성적을 표시하는 컨트롤 배열 2) Form1_Load() 메서드는 6개 교과목을 입력, 학생마다 신청과목이 다를 수 있으므로, 실행 화면에서 수정 3) 학점, 성적, 교과목을 표시하는 콤보박스와 텍스트박스의 배열 초기화 4) 학점, 성적 콤보박스에 표시될 Item을 배열로 만듬 5) 학점 콤보박스 배열 crds의 각 요소에 대해 arrCredit의 각 요소를 Items로 등록 후, 최초 3을 SelectedItem으로 지정 6) 성적 콤보박스 배열 grds의 각 요소에 대해 lstGrade 리스트의 각 요소를 Items로 등록 7) "평균평점" 버튼을 클릭시, 실행 되는 메서드 제작 8) totalSocre는 각 과목의 학점수와 성적을 곱한 값의..

[C#] Bridge 패턴

카테고리 : 구조 패턴 개요 : Brdige 패턴은 실제 로직을 담은 구현 클래스를 직접 호출하는게 아닌, 이 구현체로 부터 추상층 클래스를 분리하여 클라이언트는 이 추상층 클래스를 거쳐 구현체 클래스를 사용하는 방식이다. Bridge 패턴은 클래스 자체와 그 클래스가 동작하는 구체적인 구현 내용을 분리하는 것으로, 클래스 자체는 추상화 하여 추상층 클래스로 만들고, 클래스가 실제 무슨 일을 하는 지는 별도의 구현체 클래스로 만들게 된다. 일반적인 객체지향 프로그래밍(OOP)에서의 서브클래스들은 상위의 부모/추상 클래스를 상속하여 서브클래스에서 다른 행위들을 정의하게 된다. 이러한 객체지향 프로그래밍의 서브클래스 상속은 컴파일 시, 부모/ 추상 클래스(abstraction)가 구현체인 서브클래스(impl..