전체 글 217

네트워크의 기초, 토폴로지

네트워크 노드와 링크가 서로 연결되어 있으며, 리소스를 공유하는 집합 노드 : 서버, 라우터, 스위치 등의 네트워크 장치를 총칭. 링크 : 유선 or 무선 처리량 링크 내에서 성공적으로 전달된 데이터의 양 보통 의미를 "얼만큼의 트래픽을 처리했는가?"로 생각하면 됨 트래픽 : 특정 시점에 링크 내에 흐르는 데이터의 양 단위 : bps(bits per second) 지연 시간 요청이 처리되는 시간(어떤 메세지가 두 장치 사이를 왕복하는 데 걸리는 시간) 매체 타입, 패킷의 크기, 라우터의 패킷 처리 시간에 영향을 받음 네트워크 토폴로지 노드의 링크가 배치되는 방식, 연결 형태 특정한 토폴로지는 노드 사이의 물리적, 논리적 연결 구성으로 결정 1. 트리 토폴로지 == 계층형 토폴로지 트리 형태로 배치한 네트..

버블 정렬

정의 가장 간단한 정렬 알고리즘 중 하나로, 이름에서 알 수 있듯이 "버블"처럼 큰 값이 배열의 끝으로, 작은 값이 배열의 시작으로 이동하게 다. 이 알고리즘의 기본 아이디어는 인접한 두 원소를 비교하여 필요한 경우 위치를 교환하는 것 과정 첫 번째 원소부터 마지막 원소까지 반복하면서 인접한 두 원소를 비교한다. 두 원소의 순서가 잘못되어 있다면(즉, 오름차순 정렬에서 첫 번째 원소가 두 번째 원소보다 크다면) 위치를 교환한다. 1~2의 과정을 배열의 끝까지 반복한다. 이렇게 하면 가장 큰 원소가 배열의 마지막 위치로 이동한다. 배열의 길이를 1 줄이고 위의 과정을 반복한다. 배열의 길이가 1이 될 때까지 위의 과정을 반복한다. 시간 복잡도 최선의 경우: O(n) (이미 정렬된 배열) 평균적인 경우: O..

파이썬(python) sys.stdin.readline 사용

보통 input()으로 문자열 값을 입력받지만 반복문으로 여러 줄을 입력받아야 할 때는 시간 초과 문제가 발생할 수 있다고 한다. 특히 스택 / 큐 관련 문제에서는 이렇게 여러 줄을 입력받아야 하는 경우가 많아서 시간 초과의 압박이 크다. 따라서 이럴 경우에는 import sys로 모듈을 불러오고 sys.stdin.readline()을 사용하는 것이 좋다. readline()은 한 줄 단위로 입력받기 때문에 개행문자가 같이 받아지므로 주의하고, 정수로 사용할 경우 int()로 덮어줘야 한다. input()은 값의 개행문자를 삭제시켜서 리턴한다. # 한 개의 정수를 입력받을 때 N = int(sys.stdin.readline()) 리스트와 같이 여러 개의 값을 입력받아야 할 경우에는 개행문자의 특징을 이용..

언어/Python 2023.08.04

AWS 기초

1. IAM 소개 AWS Identity and Access Management (IAM)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. IAM을 사용하면 AWS에서 사용자, 그룹 및 역할을 생성하고 관리하여 리소스에 대한 액세스를 안전하게 제어할 수 있습니다. IAM을 사용하면 다음과 같은 보안 기능을 수행할 수 있습니다. 인증: IAM을 사용하여 사용자가 AWS 리소스에 액세스할 때 사용자 이름과 암호를 요청하여 인증할 수 있습니다. 권한 부여: IAM을 사용하여 사용자, 그룹 또는 역할에 대한 권한을 지정할 수 있습니다. 권한은 AWS 리소스에서 수행할 수 있는 작업을 나타내며 IAM 정책을 사용하여 지정할 수 있습니다. 권한 검증: IAM을 사용하여 사용자가 AWS 리..

AWS 2023.08.02

장고 50문 50답 채우기(4)

16. Django의 기본 기능을 사용하는 것과 JWT를 사용하여 로그인 기능을 구현하는 것에는 어떤 차이점이 있습니까? JWT를 사용하면 유저 관련 정보를 모두 base64 인코딩을 하고 유지 시간도 짧아 보안에 유리하며, 다른 프레임워크에 호환성도 높다. Django 기본 인증은 Django 내장인 만큼 훨씬더 간편하게 사용할 수 있는 이점이 있다. 17. 데이터 테이블 간의 관계를 나타내는 FK, OneToOne, ManyToMany 필드에 대해서 설명하시오 FK: 다대일 관계. 다른 테이블과 관계가 있을 때 다른 테이블의 내용을 불러오고 이용할 수 있다. OnetoOne: 1:1의 대응 관계 테이블입니다. 예를들어 유저와 유저프로필 모델 ManytoMany: A 모델에 연관된 B 모델 필드가 여러..

Framework/Django 2023.07.25

장고 50문 50답 채우기(3)

11. Django를 통해 CRUD를 구현하는 방법에 대해서 HTTP Method와 함께 설명하시오 get: 정보 조회 (read) post: 정보 업로드(create) put: 정보수정(update) delete: 정보 삭제(delete) 12. Django에서 테이블을 설계하고 데이터베이스에 반영하는 방법에 대해서 설명하시오 models.py에 models.Model을 상속해 클래스를 생성하고 charfield, integerfield 등 필드를 사용해 테이블을 설계합니다. 만들어진 테이블은 python manage.py makemigration 명령어로 migration 파일을 생성한뒤 python manage.py migrate로 반영합니다. 13. 회원가입을 할 때 비밀번호를 암호화하여 저장하는..

Framework/Django 2023.07.24

장고 50문 50답 채우기(2)

6. Django의 MTV패턴 시스템은 무엇입니까? Model-Template-View로 이루어진 패턴으로 Model은 데이터베이스에 저장되는 데이터를 의미하고, Template은 사용자가 시각 적으로 확인할 수 있는 화면 즉, UI를 담당하는 부분이고, View는 데이터를 가공하고 처리하는 부분을 의미합니다. 7. ORM에 대해서 설명하시오 Object-Relational Mapping의 약자로 SQL이라는 언어 대신 데이터베이스를 쉽게 다룰 수 있게 하는 방법입니다. 8. Django의 장단점은 무엇입니까? 장점: 파이썬 웹프레임워크 중에서 가장 사용자가 많아서 자료 찾기가 편리하며, RDBMS와의 상호 작용을 완전히 지원하는 기본 내장 ORM이 함께 제공됩니다. 단점: 무겁고 복잡하며, Flask와..

Framework/Django 2023.07.24

ㅁㄴㅇㄹ

1. Django Template Engine은 무엇이고 어떤 기능을 제공합니까? Template Engine은 웹 프레임워크인 장고의 HTML을 동적으로 생성할 수 있는 편리한 방법이다. 템플릿에는 원하는 HTML 출력의 정적 부분과 동적 콘텐츠가 삽입되는 방법을 설명하는 몇 가지 특수 구문이 포함되어 있다. Django 프로젝트는 하나 이상의 템플릿 엔진으로 구성할 수 있다. Django는 창의적으로 DTL(Django template language)이라고 불리는 자체 템플릿 시스템과 인기 있는 대체 Jinja2를 위한 내장 백엔드를 제공한다. Django는 백엔드에 관계없이 템플릿을 로드하고 렌더링하기 위한 표준 API를 정의한다. Django Template Engine은 Django 웹 프레임..

Framework/Django 2023.07.20

CookAI 회고

1. 최종 서비스 아키텍쳐 2. 프로젝트 진행 과정 1주차: 기획 및 개발 환경 구성 전체적인 방향성, MVP 기능, 개발 일정, 역할분담 상의 및 결정 개발 용이성을 위해 통일된 개발환경 구성 및 패키지 관리 의사결정 Poetry, pyenv 사용 2주차: BE 구현, AI 활용 의사결정 테스트코드 작성 사용자 인증 기능 개발 나의 냉장고 기능 개발 게시글 CRUD 기능 개발 및 의사결정 사물인식 AI, 추천알고리즘 활용 의사결정 Cronjob을 이용한 주기적인 데이터 삭제 기능 개발 3주차: AI, FE 구현,배포 RoboFlow를 이요한 사물인식: 크롤링, 라벨링, 학습 진행 CBF, CF 추천알고리즘 구현 Docker와 AWS를 이용해 배포 환경 조성 및 배포진행 사용자 인증 파트의 FE 구현 C..

project/project 2023.07.14