• Python

    Python – [VSCode] No Python interpreter is selected 해결

    문제 Python 개발을 하던 중 실행시 갑자기 권한 거부 에러가 발생하고 VSCode 리부팅시 아래와 같이 Python interpreter를 찾지 못하는 현상을 발견하게 됩니다 원인 실행 파일 손상에 의해 발생되는 현상입니다 아래 이미지를 보시면 python.exe 파일의 용량이 0KB로 나오는걸 알 수 있습니다 해결 방법 가상 환경 이용시 지정 파이썬 버전의 가상 환경을 재구성합니다 Python – 가상환경이란? (venv, pyenv) 가상 환경이 아닌 경우 공식 사이트에서 설치 파일을 받아 재설치를 진행합니다 Python 공식 사이트 – Download

  • AWS

    AWS – Elastic Beanstalk이란?

    Elastic Beanstalk이란? 환경 구성과 함께 웹 애플리케이션의 코드를 업로드하여 신속하고 간편하게 서비스를 배포 및 관리할 수 있는 Amazon Web Services(AWS) 관리형 서비스 Docker 컨테이너 기반의 어플리케이션 배포 지원 Go, Java, .NET, Node.js, PHP, Python 및 Ruby에서 개발된 애플리케이션을 지원 AWS CloudFormation으로 구현되어 있으며 CloudFormation의 하위 개념 AWS CloudFormation – AWS에서 지원하는 컴퓨터 시스템과 소프트웨어의 자동화된 구성, 조율, 관리 도구 (오케스트레이션) Elastic Beanstalk 주요 기능 및 구성 EC2 인스턴스 인스턴스 메타데이터 서비스(IMDS) 기반으로 구성 및 관리 인스턴스 메타데이터는 애플리케이션이 실행 중인 인스턴스를 구성 또는 관리하는 데 사용할 수 있는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 관련 데이터 로드밸런서 환경의 인스턴스 간에 트래픽을 분산하는 역할 화면 좌측 [환경 이름 – 구성 – 로드밸런서]…

  • CI,  Docker Container

    CI – Circle CI 사용법

    CI/CD 란? CI는 지속적인 통합(Continuous Integration) 을 말하며 CI를 통해 개발자 각자가 개발한 구현 기능을 공유 브랜치에 통합하고 통합한 코드를 빌드 및 테스트하여 버그 발생 시 수정을 후 다시 통합을 진행함으로써 품질을 보다 더 안정적으로 관리할 수 있습니다.CD는 위의 CI를 통해 신뢰성을 갖춘 있는 소프트웨어를 github와 같은 형상관리 저장소에 자동으로 업로드하는 지속적 제공(Continuous Delivery) 과 사용자가 사용하는 프로덕션 환경까지 릴리즈하는 지속적 배포(Continuous Deployment) 를 말합니다. 또한 이러한 관리 과정은 수식어에 맞게 지속적이어야 합니다.프로젝트의 크기가 커질수록 각 과정의 수동 작업의 시간이 오래 걸리게 되므로 자동화되어야 하며 Circle CI는 이러한 CI/CD를 돕기 위한 플랫폼입니다. Circle CI 설정 파일 Circle CI 설정 파일의 경로 및 파일명 경로 – ./circleci 파일명 – config.yml Orbs…

  • git

    Git – [ERROR] internal server error 해결

    문제 git push/pull 시 발생 오래되거나 유효하지 않은 참조가 많을 경우 해결 방법1 remote 브랜치 정리와 파일 정리 진행 해결 방법2 git 저장소 복제 해결 방법3 빈 저장소 생성 후 git 저장소 push 참고 자료 https://github.com/isaacs/github/issues/1253

  • Web

    Web – CSRF와 XSS

    정의 사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어: Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다. 유명 경매 사이트인 옥션에서 발생한 개인정보 유출 사건에서 사용된 공격 방식 중 하나다. 사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. 일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다. 보완책 Referer Check 도메인 단위의 검증 – 백엔드에서 request의 referer를 확인하여 도메인의 일치를 체크하는 방법참고 : https://privacyinternational.org/guide-step/4150/http-referer-explanation Security…

  • mongoDB

    MongoDB – 계정 관리

    mongod.conf mongod.conf 파일은 mongodb 설정 파일입니다 mongoDB는 기본적으로 authorization이 활성화되어 있지 않아서 누구나 쉽게 접속할 수 있습니다 접근 제어를 위해 별도의 authorization 활성화 설정을 해야합니다 mongod.conf 환경설정 더 알아보기 Dockerize시 계정 설정 Docker mongoDB 슈퍼 계정 관련 환경 변수 MONGO_INITDB_ROOT_USERNAME MONGO_INITDB_ROOT_PASSWORD Docker-Compose 작성 예시 예시로 mongo-express도 함께 추가하였으나 mongo-express는 사용 시에만 참고하세요 mongo-express – Node.js, Express 및 Bootstrap3으로 작성된 웹 기반 MongoDB 관리 인터페이스 Docker Image 배포 예시 1, 2번과 같이 Docker 배포 시 별도의 계정과 패스워드를 지정하지 않았으므로 authorization 비활성화를 위해 mongod.conf의 security.authorization 값이 disabled가 되도록 설정합니다 3번과 같이 Docker 배포 시 슈퍼 계정에 대한 환경 변수를 지정하였으므로 해당 계정으로 접속이 가능하도록 authorization 활성화를 위해 mongod.conf의 security.authorization 값이 enabled가…

  • mongoDB

    MongoDB – 기본 환경설정

    ※ mongoDB 4.2 version 해당 문서는 mongoDB 4.2 version을 기준으로 테스트 후 작성하였으니 참고 부탁바랍니다. mongodb 서비스 관리 mongod 환경설정 파일 위치 지정 mongod 환경설정 주요 옵션 옵션 기본값 설명 systemLog.verbosity 0 로그 메시지 에 디버그 상세 수준 (1-5) systemLog.logRotate rename 서버 로그 교체 시 동작 지정(rename or reopen) systemLog.destination 모든 로그 출력을 보내는 대상 (file or syslog) systemLog.logAppend false 재시작 시 기존 로그를 작성 방식(백업 후 새로 작성 or 기존 로그에 이어서 작성) systemLog. path 필수 로그 파일의 경로 net.port 필수 DB 접속 포트 net.ipv6 false ipv6 사용 허용 여부 net.bindIp 필수 접근 허용 IP net.bindIpAll false 모든 IP 접근 허용에 위해 ipv4의 경우 bindIp에 0.0.0.0 로 입력하면 되지만 ipv6의…

  • mongoDB

    MongoDB – 백업 및 복원

    백업하기 mongodump 명령어 사용 예시 mongodump 주요 옵션 옵션 설명 –uri 대상 mongoDB의 접근 uri -h, –host 대상 mongoDB의 접근 호스트 IP –ssl 활성화된 ssl mongod나 mongos 연결시 –sslCAFile 인증 기관의 루트 인증서 체인이 포함된 .pem 파일 –port 대상 mongoDB의 접속 포트 -u, –username 대상의 사용자 ID -p, –password 대상의 사용자 비밀번호 -d, –db 대상 데이터베이스 -c, –collection 대상 컬렉션 -q, –query 적용할 쿼리 –out 백업 데이터를 저장할 디렉터리 경로 –gzip 백업 데이터를 gzip 파일로 압축하여 저장 복원하기 mongoimport JSON, CSV 또는 TSV 파일의 데이터를 mongoDB 인스턴스로 변환 UTF-8로 인코딩된 데이터 파일만 지원 mongorestore mongodump로 생성된 binary database dump 파일을 mongoDB 인스턴스로 변환 참고 자료 mongodump mongoimport mongorestore