본문 바로가기

분류 전체보기

(77)
[Flask] CORS (Cross-Origin Resource Sharing) 설정 CORS (Cross-Origin Resource Sharing) 설정 CORS란? CORS는 보안상의 이유로 필요한 경우에만 서버와 협의하여 데이터를 요청할 수 있도록하는 장치이다. CORS를 알기 위해서는 우선 Origin이 무엇인지 이해가 필요하다. Origin (출처) 우리가 특정 사이트를 접속을 위해 사용하는 URL은 아래의 그림과 같은 요소로 구성되어 있다. 각 구성요소는 다음의 특징을 가진다. Protocol(Scheme) : http, https Host : 사이트 도메인 Port : 포트 번호 Path : 사이트 내부 경로 Query string : 요청의 key와 value값 Fragment : 해시 태크 CORS에서 얘기하는 Origin은 위의 URL 구성 요소 중 _Protocol ..
[AWS EC2] 인스턴스 중지 및 시작 인스턴스 중지 및 시작테스트 서버가 먹통이 되어 인스턴스를 중지 후 재시작 했는데 Putty 접속이 되지 않았다.  인스턴스 대시보드에서는 실행중으로 잘 돌아가고 있었고, 인스턴스 스크린샷, 시스템로그를 확인 해봐도 인스턴스는 잘 작동하고 있었다. 인스턴스 중지 공식문서를 확인해보니 탄력적 IP 주소를 적용하지 않아서 생긴 문제였다. 탄력적 IP 주소를 할당해주지 않으면 인스턴스 중지 후 재시작 할 때 새로운 퍼블릭 IPv4 주소가 생성된다. https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/Stop_Start.html Amazon EC2 인스턴스 중지 및 시작 - Amazon Elastic Compute Cloud인스턴스를 중지하면 인스턴스 스토어 ..
[SQL - Error] utf8mb4_0900_ai_ci, utf8mb4_general_ci 문제 mysql 테이블에 백업 데이터를 업로드 할 때 해당 에러 발생 원인 mysql 5.7 버전은 utf8mb4_general_ci, 8.0 이상 버전은 utf8mb4_0900_ai_ci 를 사용하기 때문에 8.0 이상 버전에서 export한 데이터를 5.7버전에 import 할때 에러가 발생함 해결방법 mysql을 8.0 이상으로 업데이트 mprot할 dump 파일을 열어서 char set을 general_ci로 변경 (데이터 손상이 있을 수 있으므로 권장하지 않음)
[Python] 파이썬 패키지(Package) 사용법 패키지(Package) 사용법 패키지(Packages)란? 도트(.)를 사용하여 파이썬 모듈을 계층적(디렉터리 구조)으로 관리할 수 있게해주는 기능이다. 파이썬 패키지는 디렉터리와 파이썬 모듈(하나의 .py 파일)로 이루어 진다. 패키지 만들기 패키지 예시 - crossfit 디렉터리 안의 __init__.py 파일은 해당 디렉터리가 패키지의 일부임을 알려주는 역할을 한다. crossfit/ # 디렉터리 __init__.py cardio/ # 디렉터리 __init__.py run.py rowing.py weight/ # 디렉터리 __init__.py deadlift.py squat.py # run.py def run_test(): print("달리러 나가자!") # rowing.py def rowing_..
[클린 코드] 네이밍 클린 코드: 네이밍 Convention의 종류 snake_case: Python, Ruby 등에서 권장 camelCase : Java, Javascript 등에서 권장 PascalCase : 대부분의 프로그래밍 언어에서 클래스를 네이밍할 때 사용 kebab-case: HTML Element를 표현할 때 사용 변수와 상수 변수와 상수를 네이밍 할 때는 명사 혹은 형용사를 사용한다. user_date = ... #명사 is_valid = ... #형용사 함수와 메서드 함수와 매서드를 네이밍할 때는 동사 혹은 형용사 구문 형태를 사용한다. def send_data(): ... def input_is_valid(): ... 클래스 클래스 이름을 네이밍할 떄는 명사 구문 형태를 사용한다. class Client:..
[Python] 파이썬 Class 상속(inheritnace) 파이썬 Class 상속(inheritnace) 상속이란? 클래스에서 상속이란, 물려주는 클래스(Parent Class, Super class)의 내용(속성과 메소드)을 물려받는 클래스(Child class, sub class)가 가지게 되는 것을 말한다. 자식클래스를 선언할때 소괄호로 부모 클래스를 포함시키면, 자식클래스에서는 부모클래스의 속성과 메소드를 사용 할 수 있다. class Parent: ...내용... class Child(Parent): ...내용... 상속 기능은 기존의 class를 업데이트 할 때 유용하게 사용 할 수 있다. 기존의 Employee 클래스를 상속 받은 Employee2 클래스는 Employee 클래스의 속성과 메소드를 모두 사용할 수 있다. class Employee: ..
[Ubuntu] 리눅스 우분투 Cron(크론), Crontab(크론탭) 설정 리눅스 우분투 Cron(크론), Crontab(크론탭) 설정 매일 특정 시간에 API를 호출해야 하는 작업이 있어서 우분투에서 crontab에 작업을 추가했다. 멀티태스킹이 가능한 운영체제에서 사용자에 의해 제어 및 관리되지 않고, Background Process로 돌며 작업을 수행하는 프로그램을 Daemon(데몬)이라 한다. Daemon의 프로세스들은 보통의 Foreground Process의 프로그램들과 구분되기 위해 이름의 끝에 'd' 를 포함한다. 리눅스에서 지정한 스케쥴에 맞춰 작업을 수행 하는 데몬을 Cron(크론)이라고 하고,이 Cron이 수행할 작업과 스케쥴을 설정해 명령 리스트를 만드는 것을 Crontab(크론탭)이라고 한다. 이 기능을 사용하면 24시간 동작하는 서버에서 특정 시간에 ..
[Github] Git-flow Git-flow란? Git을 사용한 협업의 한 방법으로, git이 갖는 가장 큰 장점은 효율적인 브랜치 관리를 극대화한 방법론이다. Git-flow Git-flow에는 항상 유지되는 메인 브랜치들(master, develop)과 일정 기간 동안만 유지되는 보조 브랜치들(feature, release, hotfix)이 있다. master 정식 배포되는 안정적 버전의 소스코드 master 브랜치에는 배포해도 될 만큼 안정성이 충분히 검증된 코드들만이 병합되어야 한다. master 브랜치에는 지난 배포판 버전의 소스코드를 확인하기 위한 태그(tag)들을 추가한다. 태그를 이용해 각 릴리즈 버전의 소스코드를 확인할 수 있다. release 새로운 버전 릴리즈 준비 develop 브랜치를 기반으로 생성된다. re..