본문 바로가기

전체 글

Posts/Algorithm [누구나 자료구조 알고리즘] Python 선택정렬 💡 Goal - 선택정렬 알고리즘을 이해하기. - 선택정렬 알고리즘을 파이썬으로 구현하기. - 선택정렬 알고리즘 특징을 2가지 이상 말하기. 개념 가장 작은 값을 찾아 맨 왼쪽(앞) index로 위치 변경 0번 index, 1번 index 반복 매번 가장 작은 데이터를 선택하여 정렬 각 위치에 어떤 값이 들어갈지 찾는 정렬 비교와 교환으로 이루어진 알고리즘 순서(오름차순 기준) 주어진 데이터의 →(왼쪽에서 오른쪽) 방향으로 확인한다. 임시로 0번 인덱스를 최소값으로 지정한다. 한칸씩 오른쪽으로 이동하며 비교한다. 길이의 끝까지 돌면서 임시로 지정한 값보다 값이 더 작으면 해당 데이터의 index를 최소 index로 변경한다. 반복이 끝난 후 구해진 최소값 index를 가지고 임시로 지정한 변수와 swap.. 2021. 12. 11. 20:00
Posts/Algorithm [누구나 자료구조 알고리즘] Python 버블정렬 💡 Goal - 버블정렬 알고리즘을 이해하기. - 버블정렬 알고리즘을 파이썬으로 구현하기. - 버블정렬 알고리즘 특징을 2가지 이상 말하기. 개념 서로 인접한(연속된) 두 원소를 확인해 정렬하는 알고리즘 인접한 2개의 원소를 확인하여 조건에 맞는 순서로 교환 비교와 교환으로 이루어진 알고리즘 순서(오름차순 기준) 연속된 두 항목을 가리킨 후 비교한다. 두 항목의 값의 크기가 뒤바뀌어 있으면 값을 교환한다. 비교 포인터를 오른쪽 한칸씩 이동한다. 배열의 끝까지 또는 정렬된 항목까지 1~2단계를 반복한다. 특징 장점 구현이 간단하다 단점 순차적으로 확인하기 때문에 크기에 맞지 않는 비교가 일어남 순차적으로 확인하기 때문에 N개의 길이가 있다면 N번 교환이 발생 코드 def bubble_sort(input_l.. 2021. 12. 11. 17:32
Posts/CS [Python 자료구조] 해시테이블 (Hash Table) 해시 테이블 CodeIt 자료구조 수업을 정리한 내용입니다. 1. Key-Value 데이터 110호: "제임스" 하나의 key와 그 key에 해당하는 value를 말합니다. 하나의 key에는 하나의 value만 존재 2. Direct Access Table 배열 인덱스를 키로 이용해서 데이터를 저장하거나 가져오는 것을 Direct Access Table이라 말합니다. 하지만 위에 사진에서 볼 수 있듯이 사용하는 데이터의 갯수는 5개이지만 인덱스의 가장 큰 값으로 인해 총 길이가 942개중 937개가 낭비되는 현상이 발생합니다. 3. Hash Table 해시 함수와 배열을 함께 사용하는 자료구조를 말합니다. 원하는 크기의 배열을 생성 해시 함수를 이용해 저장할 key:value 데이터의 키를 배열 inde.. 2021. 12. 7. 00:19
Posts/CS [Python 자료구조] 링크드 리스트 (Linked List) 링크드 리스트란? CodeIt 자료구조 수업을 정리한 내용입니다. 링크드 리스트 배열이나 동적 배열처럼 데이터를 순서대로 저장 동적 배열처럼 요소를 계속 추가 가능 노드 노드 객체는 2가지의 속성을 가지고 있습니다. data와 next로 이루어져 있는데 data는 저장하고자 하는 정보를 말하며, next는 다음 노드의 레퍼런스를 말합니다. 첫번째 노드 객체는 head 노드라고 하며 head 노드의 메모리주소만 알고 있으면 연결되어 있는 모든 노드를 접근할 수 있습니다. (실제 메모리에선 여기저기 흝어져있음) class Node: def __init__(self, data): # 인스턴스 변수들의 초기값 setting self.data = data # 노드 저장 데이터 self.next = None # 다.. 2021. 11. 25. 23:55
Posts/CS [Python 자료구조] 배열 (Array) 배열이란? CodeIt 자료구조 수업을 정리한 내용입니다. 배열 파이썬은 C를 기반으로 만들어졌고 C의 배열을 이용해서 만들어진게 파이썬 리스트 C 배열은 크기 고정, 같은 데이터 타입만 가능 C 배열의 경우 데이터가 메모리에 연속적으로 저장 파이썬은 데이터가 연속적일수도 있고 아닌 아예 다른 곳에 저장될 수도 있음 파이썬의 경우 메모리에 데이터의 주소값을 저장 아무리 큰 값이어도 가리키기만 하는 역할이므로 C배열과 다르게 다양한 값 저장 가능 item_list = [10, "데이터", True, -4] 배열 인덱스 접근 찾고자 하는 위치의 주소(index)를 알고 있기에 시간복잡도는 O(1) 입니다. 배열 탐색 배열의 탐색은 특정 조건을 만족하는 값을 찾는 것을 말합니다. 예를 들어 하나의 배열에 특정.. 2021. 11. 23. 00:00
Posts/Django Django 실제 서버에 왜 runserver를 하지 않고 웹서버+wsgi를 사용할까? "그냥 다들 사용하니까", "검색하면 이렇게 나오니까" 라는 이유 말고 왜라는 질문에서 시작하여 이 내용을 정리하게 되었습니다. 1. 클라이언트와 서버의 구조 내용을 작성하기 앞서 애플리케이션은 요청과 응답이 어떻게 동작하는지에 대해 짚고 넘어가야합니다. 아래 그림을 보며 간략히 설명을 작성하였습니다. 1-1. 동작 순서 사용자가 앱이나 웹브라우저 환경에서 API 서버에 요청을 하게 됩니다. 해당 요청은 가장 먼저 웹서버에 가게 됩니다. 클라이언트 API 호출 가장 먼저 웹서버로 접속합니다 (nginx) 소켓을 통해 wsgi까지 도달 (wsgi: 장고와 웹서버의 데이터 통신을 교환할 수 있게 도와주는 인터페이스) wsgi에서 django로 전달되어 프로젝트내 파이썬 코드가 실행 1-2. webserver.. 2021. 11. 14. 21:43
Posts/Server AWS ElasticBeanstalk으로 토이프로젝트 배포하기 1. Elastic Beanstalk Elastic Beanstalk은 애플리케이션을 실행하는 인프라에 대해 자세히 알지 못해도 신속하게 배포하고 관리할 수 있는 기능을 제공합니다. 프로비저닝, 로드 밸런싱, 조정, 애플리케이션 상태 모니터링등 세부 정보를 자동으로 처리해줍니다. (이후 Elastic Beanstalk은 EB라 작성하겠습니다.) EC2를 이용하면 인스턴스 서버에 일일이 웹서버(nginx)와 패키지 의존성등을 설치해주어야 하는 번거로움들이 생깁니다. (사실 번거로운것보단 EB가 너무 편한게 아닐까..?) EB를 사용하게 되면 이런 과정들을 다 손쉽게 처리할 수 있도록 도와줍니다. aws 사이트에서도 사용할 수 있지만 프로젝트내에서 awsebcli를 활용하여 사용해보겠습니다. 2. EB CL.. 2021. 11. 14. 00:29
Posts/CS 파이썬으로 공부하는 자료구조 자료구조란? CodeIt 자료구조 수업을 정리한 내용입니다. 자료구조 우리가 데이터를 저장하고 관리하기 위한 구조입니다. 예를 들어 서점에서 개발책을 찾으려 할때 IT 구역으로 가서 언어별 또는 기술별 카테고리를 찾아서 책을 찾는 것과 비슷한 개념입니다. 늘 정해진 규칙속에 분리하여 정리를 해놓으면 그만큼 자료를 찾기도 쉽기 때문에 자료구조도 이러한 원리로 데이터의 효율적 접근 및 조작을 위한 저장 및 관리 방식으로 이해하면 쉽습니다. 데이터가 저장되는 곳 스토리지 데이터가 영구적 저장 데이터를 저장 or 받아오는데 시간이 느림 언제 사용할지 모르는 파일 저장 메모리 데이터를 임시 저장 문서 파일을 작성시는 메모리에 임시저장된 상태, 저장버튼을 눌렀을시 스토리지에 저장 데이터를 저장 or 받아오는데 시간.. 2021. 11. 13. 10:20