기타 219

[WIL] Postgresql(Ubuntu) 외부접속 허용하기

새로운 프로젝트를 위해 MariaDB를 사용하다가 Postgresql을 적용해보려고 하는데 개발서버에 올려둔 DB 서버에 접속이 되질 않아 찾아보다가 발견하여 이를 정리해보았다 해당 포스팅에선 파일 권한과 관련된 문제가 발생할 수 있어 파일/경로 권한 설정이 되었는지 확인 후 진행해야 한다.(간단한 명령어는 chmod -R [8진수 권한 명령어] [폴더경로]) 우선 우분투 환경에서는 기본적으로 computer 디스크의 etc/postgresql/[버전]/main/postgresql.conf 파일을 열어보면하단과 같은 라인이 있는데 이때 60번 라인의 listen_addresses 에 접속 가능하게 할 IP를 설정해주거나 모든 IP에 공개를 할 생각이라면 "*" 를 사용한다.  해당 부분을 수정하고나서 주..

[TIL] ASP 쿼리/조건문

업무를 하다보니 옛날에 만들어둔 ASP로 만든 API를 수정해야 할 일이 생겼는데 해당 페이지를 개발한 개발자가 없어 내가 기능을 수정해야 했다... 필자는 파이썬 위주로 작업을 해왔고 기껏해야 한번씩 기능 수정으로 인한 자바를 사용해 봤지만 ASP는 당황스럽게도 한번도 해본적이 없어 어려움이 많았다 혹시나 필자와 같이 어려움을 겪고 있는 사람을 위해 빈약하지만 자료를 남겨보고자 한다. 우선 ASP의 조건문은 일반적인 프로그래밍 문법과 다른것이 익숙치 않아 생각보다 실수가 잦았다 if 조건 = 비교 then 조건 충족시 실행 elseif 조건 = 비교 then 두번째 조건 충족시 실행 else 조건 미충족시 실행 end if 위 코드와 같이 조건문의 비교연산자는 "==" 가 아닌 "=" 으로 사용하여야 ..

[Flask] Decorators?

플라스크는 데코레이터(Decorators) 기능이 있는데 특정 함수가 개발자가 원하는 형태로 동작하게 만들어주는 기능이다. 하단의 예시는 Method Decorators(메서드 데코레이터)로 출력값을 JSON 형식으로 변경하는 방법에 대한 것 이다 def jsonify_decorator(function): def modifyOutput(): return {"output":function()} return modifyOutput @jsonify_decorator def hello(): return 'hello world' @jsonify_decorator def sub(): num1 = input("숫자 1: ") num2 = input("숫자 2: ") return int(num1) - int(num2)..

기타/Python 2024.02.07

[Flask] API 호출 방식과 오류 핸들링

RESTful API를 개발할때 요청 URL에 리소스 ID를 넣어서 보낼 수 있다. (ex. test.com/ticket/12345678) Flask 는 이를 위한 동적 라우팅 기능을 제공하기 때문에 쉽게 적용할 수 있는데 예시는 다음과 같다 @app.route("/ticket/") def get_info(booking): res = request.get("http://티켓정보사이트/~~~/{escape(booking)}.JSON") if res.status_code == 200: return {"message": res.JSON()} elif res.status_code == 404: return {"message": "Wrong"} ''' 하단의 예시는 파라미터의 타입을 지정하는 방법으로 URL 끝에..

[Flask API] 기초 지식

파이썬에서 Flask API는 웹 애플리케이션을 제작할 수 있는 마이크로 프레임워크이다 커뮤니티를 통한 기능 확장이 용이한 편이며 디버거 모드로 실행 가능한 웹 서버도 제공하여 디버깅 기능 또한 내장되어 있어 코드 동작 여부를 신속하게 확인 할 수 있다 RESTful 서비스에 유용한 동적 URL을 지원, Flask-SQLAlchemy 패키지로 ORM을 지원하여 데이터베이스에 접근할 수 있도록 기능 지원도 한다 from flask import Flask app = Flask(__name__) @app.route("/") def basic(): return "Hello World" 위와 같은 코드가 기본적으로 Flask를 사용하는 예시이며 터미널(VS code 기준)에 하단의 명령어를 입력하면 터미널 내에 ..

[IBM-Python] 파이썬 패키징 개념

해당 포스팅은 Coursera의 IBM - Developing AI Applications with Python and Flask 강의를 학습하며 배운것들을 요약 정리하였다. 파이썬 패키지를 참조하게 만들려면 __init__.py 를 추가해야 한다 단위 테스트 사례를 적용하기 위해서 접두사 'test'를 붙이면 단위 테스트 수행 함수로 식별 된다 PEP8 가이드라인에 따르면 메서드(method) 이름은 소문자와 밑줄로 구분하여 작명한다 파이썬 모듈은 __init__.py가 같은 디렉토리에 패키징 되어 있어야 한다 웹 앱과 API에 대한 설명 모든 웹 앱은 API이지만 모든 API가 웹 앱은 아니다 API와 달리 웹 앱은 사용자가 설치하지 않아도 사용이 가능하다 웹 앱은 CRUD 액션을 지원한다 PyLin..

기타/Python 2024.02.05

파이썬 - Poetry?

의존성 관리 도구는 공식적으로 지원하기도 하고 일반적으로 강의를 듣다보면 많이 사용하는 pip가 가장 익숙하기도 하고 이때까지 쓰는데 어려움이 없었기에 별다른 생각 없이 사용하고 있었지만 솔직히 사용하는 패키지 정보 기록과 가상환경 재설치가 너무 힘들기는 했다... 하지만, Poetry는 명령어를 통해 패키지를 설치하면 자동으로 기록해주며 재설치도 수월하다는 장점이 있어 나 스스로도 배우면서 많은 사람들에게 도움이 되었으면 하는 마음으로 부족한 정보를 정리해본다. 컴퓨터가 컨테이너라면 Poetry는 컨테이너 실려있는 "상자" 라고 생각하면 된다. 만약 우리가 상자 안에 있는 가위가 필요한데 단순히 컨테이너 문을 열어서 들어갔다고 상자 안에 들어있는 가위를 쓸 순 없을텐데 가위를 사용하려면 어떻게 해야할까..

기타/Python 2024.01.11

[Django] 쿠키와 세션

로그인 기능을 구현하다보니 로그인 상태를 유지해야할 필요가 있어 쿠키와 세션에 대해 찾아보게 되었다. 찾아보니 큰 틀로 간단하게 요약하자면 COMM: 쿠키, 세션 둘다 로그인 정보와 같이 유지되어야 하는 정보를 저장하기 위한 목적으로 적용한다 DIFF: 쿠키는 개인PC(브라우저)저장, 세션은 서버에 저장 된다는 점이다 HTTP 통신 방식의 특징을 안다면 사용하는 이유를 알 수 있는데 이는 다음 포스팅으로 적어 좀 더 자세히 다뤄보겠다. 쿠키 - 사용자가 웹 사이트 방문시, 서버에서 사용자의 PC에 저장하는 작은 기록 정보 파일 필요시 정보 참조 혹은 재사용이 가능하다. 특징 1. 이름, 값, 저장기간(만료일), 경로 정보로구성 2. 클라이언트에 총 300개의 쿠키 저장 가능 3. 하나의 도메인 당 20개..

기타/Django 2023.06.29

[Django] 기존 DB 장고와 연결/연동 하기

미니 프로젝트를 진행하는 중 Vertabelo로 데이터베이스를 설계하고 SQL 스크립트를 실행하여 이미 테이블과 칼럼을 다 만들어둔 상태에서 장고를 연결하려고 하니 models.py 에서 자꾸만 에러가 발생하는 문제가 있었다. 당연히 아직 장고에 익숙치 않던 나는 기본 개념조차 부족하니 왜 에러가 생기는지 몰라 검색해보았는데 장고는 models 부분에 데이터베이스와 연결이 되어있지 않으면 당연히 에러가 생기는 구조로 되어있다고 한다. ORM을 사용하기 때문이라는데 이 부분은 추후에 추가로 작성해보도록 하겠다. 기존 DB -> 장고 마이그레이션 기존에 사용중이거나 새로 만들어 장고에서 연결 할 필요가 있는 데이터베이스를 마이그레이션 하는 방법은 inspectdb 명령어로 이루어진다. # inspectdb ..

기타/Django 2023.06.27

[Database] 데이터베이스 네이밍 규칙

필자의 블로그는 필자마냥 이것저것 하긴 해야하는데 이걸 어떻게 사용해야 할지 이게 왜 이렇게 되는건지 모르고 막막한 사람들을 위한 블로그로 잡설+서론이 긴것은 양해바랍니다. 기존에 있던 서비스를 분석하고 어느정도 파악이 되어 기능을 추가하려고 손을 댔더니 데이터베이스 구조가 엉망이다... 관련 문서가 사실상 없는 상태와 마찬가지로 눈가리고 아웅식으로 운영이 되고 있던터라 이번 기회에 아예 새로운 프로젝트로 진행하여 Postgresql 과 Django를 이용해 새로 만들고자 했고 이를 위해 데이터베이스부터 다시 만들어보고자 했다 그런데 사수도 없고 인수인계도 제대로 받지 못했고 실력도 뛰어난것도 아닌 이 신입 개발자가 할 줄 아는게 뭐가 있겠는가? 모든 회사가 빠르게 서비스되야 하는 것을 요구하지만 다행히..