본문 바로가기

programming study

(889)
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (3) (2021.3.7) 01. Array vs. LinkedList 경우 Array LinkedList 특정 원소 조회 O(1) O(N) 중간에 삽입 삭제 O(N) O(1) 데이터 추가 데이터 추가시 새로운 메모리 공간을 할당 맨 뒤의 노드만 동적으로 추가 정리 데이터에 접근하는 경우가 빈번한 경우 삽입과 삭제가 빈번한 경우 02. 클래스 클래스: 분류, 집합, 속성과 기능을 가진 객체를 총칭하는 개념 객체: 세상에 존재하는 유일무이한 사물 클래스가 동물이면, 객체는 강아지 또는 고양이가 될 수 있다. 클래스 만들기 객체를 생성할 때 데이터를 넣어주거나, 내부적으로 원하는 행동을 실행하게 할 수 있다. self를 사용해서 객체에 데이터를 쌓을 수 있다. 메소드(method): 클래스 내부의 함수 class Cat: def __..
HTTP (2021.3.7) 등장배경 1990년대 웹은 크게 4가지의 중요한 요소로 이루어졌다. HTML: 웹 페이지를 만드는 컴퓨터 언어 URL, URI 웹 브라우저, 웹 서버 HTTP HTTP소개 클라이언트가 무엇(컨텐츠)을 요청한다. (Request) 서버가 응답한다. (Response) 이 두개를 나타내는 것이 HTTP Hyper Text Transfer Protocol 인터넷에서 가장 중요한 통신 규칙 HTML, CSS, JavaScript와 같은 컨텐츠를 주고받기 위해서 서버와 클라이언트가 서로 이해할 수 있는 공통의 약속(메시지) 매우 단순한 통신규칙이었다. 이후, 보다 풍부한 기능을 가진 프로토콜로 발전 HTML을 포함한 이미지, 오디오, 동영상 등의 멀티미디어 파일 전송 개발자 도구 살펴보기 개발자 도구의 Netwo..
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (2) (2021.3.6) Baekjoon Online Judge 백준 온라인 저지 사이트의 문제 풀이 4344 문제 링크 n = int(input()) for i in range(n): arr = list(map(int, input().split())) # 학생 수 뽑기 s = arr.pop(0) # 평균 구하기 avrArr = sum(arr) / len(arr) # 평균을 넘는 학생 수 구하기 cnt = 0 for j in range(len(arr)): if arr[j] > avrArr: cnt += 1 # 비율 구하고 반올림 후 출력하기 ratio = format((cnt / s) * 100, ".3f") print(ratio, "%", sep="") 4673 문제 링크 # 셀프 넘버가 아닌 수를 받을 배열 check = [..
[항해99 1기] [Chapter2-1] 자료구조, 알고리즘 (1) (2021.3.5) Baekjoon Online Judge 백준 온라인 저지 사이트의 문제 풀이 10869 문제 링크 a, b = map(int, input().split()) print(a + b) print(a - b) print(a * b) print(int(a / b)) print(a % b) comment 고작 일주일 안 풀었다고 여기서 막히다니… 정수화를 하지 않아 오답처리가 되었었다. 2588 문제 링크 a = input() b = input() for i in range(-1, -4, -1): print(int(a) * int(b[i])) print(int(a) * int(b)) 2884 문제 링크 오답 # 하루의 시간은 24시간 # 24시간은 24 * 60 = 1440 분 # 자정을 기준으로 700분을 넘기..
[항해99 1기] [Chapter1] 웹개발 미니 프로젝트 (4) (2021.3.4) [항해99 1기] [Chapter1] 웹개발 미니 프로젝트 (4) (2021.3.4) CSS 오류 서버를 구동했을 때 CSS가 적용이 안되는 오류 CSS 파일 자체는 불러오나, 개발자가 저장한 코드가 적용이 되어있지 않은 상태 이유 웹 서버에서 캐시에 올려놓고 새로운 파일로 교체를 안 해주기 때문이다. 해결책 브라우저에서 캐시를 지우기 css파일이름을 바꾸기 위와같이 CSS에 변경사항이 생기면 ver을 수정하면 적용된다. 회원가입 기능 해쉬 함수 입력 데이터를 랜덤하게 암호화 항상 똑같은 길이의 암호화된 값을 뱉어낸다. 결과 값으로 역으로 유추 불가 패스워드에 사용 일어나는 일 아이디, 패스워드 등을 받아 서버에 넘긴다. 패스워드는 해쉬함수를 통해 암호화 DB에 저장 로그인 기능 JWT JSON Web ..
[항해99 1기] [Chapter1] 웹개발 미니 프로젝트 (3) (2021.3.3) 스크래핑 생생정보통 맛집 스크래핑 파이썬 코드 from selenium import webdriver # 셀레니움, bs4 from bs4 import BeautifulSoup import time from selenium.common.exceptions import NoSuchElementException from pymongo import MongoClient import requests # localhost의 foodlist에 저장하기 client = MongoClient('localhost', 27017) db = client.foodlist driver = webdriver.Chrome('./chromedriver') # 생생정보통 맛집 스크래핑 url = "https://menutong.com..
[항해99 1기] [Chapter1] 웹개발 미니 프로젝트 (2) (2021.3.2) Bulma 미리 정해진 모습의 클래스를 가져다 쓰는 무료 CSS 프레임 워크 Bulma의 클래스에 CSS 추가 가능 공식 문서 https://bulma.io/documentation/ 01. Hero 배너 화면 전체 너비를 채우는 배너 클래스 클래스를 중첩해서 색, 그래디언트, 높이를 변경 가능 Hero title Hero subtitle 02. Section body 태그 안에 넣어서 구역을 나눌 때 사용 Section A simple container to divide your page into sections, like the one you're currently reading
[항해99 1기] [Chapter1] 웹개발 미니 프로젝트 (1) (2021.3.1) Git 시작하기 여러 사람들이 작업하는 코드를 한 곳에서 편하게 관리할 수 있게 해주는 프로그램 공동 작업시 발생할 수 있는 문제 상황 방지 Git은 작업 기록을 남기고 이력을 추적해서 코드를 손쉽게 관리하도록 도와준다. 버전 관리도 매우 간편 인트로 - 이것만 알고 가기 git을 사용하려면 작업자 컴퓨터들과 가운데에서 코드를 관리할 원격저장소가 있어야 한다. 내 로컬 저장소에 작업 내역을 반영 -> commit 원격 저장소에 작업 내역을 업로드 -> push 원격 저장소 작업 내역을 내 로컬 저장소로 -> pull 자주 쓰이는 명령어 모음 git init: git repository를 내 컴퓨터에 생성 git clone [url]: 이미 있는 repositroy를 내 컴퓨터에 다운로드 git add.:..