목록분류 전체보기 (106)
훈훈훈
# 문제 - 공통된 시작 단어(prefix)를 반환 # 풀이 def get_prefix(strs): if len(strs) == 0: return '' result = '' strs = sorted(strs) print(strs) for i in strs[0]: if strs[-1].startswith(result+i): result += i print(res) else: break return result # 해설 - 요소가 문자열인 리스트를 받아 알파벳 순으로 정렬 - strs = ['flue', 'fly', 'flower'] 일때 strs = sorted(strs) 을 하면 strs = ['flower', 'flue', 'fly'] 으로 정렬되는 것을 알 수 있음 - 그 후 첫번째 인덱스 문자열과 ..

# 인증(Authentication)과 인가(Authorization) - 인증 : 사용자의 신원을 확인하는 절차이며, 사용자 ID 와 Password를 받아서 등록된 사용자가 맞는지 검증하는 과정이다 - 인가 : 인증이 로그인 과정이라면 인가는 로그인 후 사용자에게 권한을 부여하는 과정이다. # API Token - 인증 방법의 한 종류, API Token을 발급하여 사용자 인증 - 장점 : API Token 탈취 시 탈취자는 API를 호출할 수는 있지만 ID/Password 는 알 수 없어 2차 피해 예방 가능 네트워크로 ID/Password 전송 시 공격자로부터 탈취당할 수 있음 - 발급 절차 : 사용자 인증(ID/Password) -> API Token 발급 -> API Token으로 사용자 인증..
# 문제 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환 ex) 1. input : abcabc / output : 3 ('abc'의 길이) 2. input : codding / output : 4 ('ding'의 길이) # 정답 def get_len_of_str(string): ''' dct : key(문자열 요소), value(인덱스) max_so_far : 가장 긴 단어의 길이 curr_max : 중복 발견 후 문자열 길이 저장 start : 중복된 요소의 인덱스 ''' dct = {} max_so_far = curr_max = start = 0 for index, i in enumerate(string): if i in dct and dct[i] >= start: max_so_far..

파이썬(python) 언어로 최신 음악 리스트를 가져오는 크롤러를 만들어보았다. 크롤러 대상 사이트는 음원 사이트인 FLO를 이용하였고 웹 사이트에서 제공하는 API를 이용하였다. # 사이트 https://www.music-flo.com/new/track?sortType=KPOP 위 사이트에 접속하면 아래와 같이 최신 음악을 볼 수 있는 페이지가 출력이 된다. 해당 페이지에서 개발자 모드(F12) 접속 후 Network 탭에 있는 API를 사용하려고 한다. - API URL : https://www.music-flo.com/api/meta/v1/track/KPOP/new?page=1&size=100×tamp=1581420059879 위 주소로 접속 하면 아래와 같이 Json 형태의 데이터를 볼 수 있다...

파이썬(python) 언어로 암호화폐(가상화폐) 정보를 가져오는 크롤러를 만들어보았다. 크롤러 대상 사이트는 암호화폐 시가총액을 확인할 수 있는 CoinMarketCap 으로 하였다. # 사이트 https://coinmarketcap.com/ko/ 위 사이트 접속 시 이름(Name), 시가총액(Volume), 가격(Price), 등의 정보를 확인할 수 있다. 이제 이 각각의 정보들을 크롤러를 이용해 수집하려고 한다. # 전체 코드 전체 코드는 아래와 같으며 이제 부분 부분 살펴보려고 한다. import requests from bs4 import BeautifulSoup req = requests.get('https://coinmarketcap.com/ko/') html = req.text soup = ..

Django(장고)를 이용해 회원가입과 로그인 기능을 가진 API를 구현해보았다. # 디렉터리 구조 아래 명령어를 사용하여 프로젝트(mysite)와 앱(account)을 생성하였다. > django-admin startproject mysite . > python manage.py startapp account # models.py from django.db import models class Account(models.Model): name = models.CharField(max_length = 50) password = models.CharField(max_length= 200) created_at = models.DateTimeField(auto_now_add=True) updated_at = m..

# 관계형 데이터 베이스란(Realtaional Database)? 테이블과 칼럼으로 데이터를 구조화해서 저장하는 데이터베이스를 관계형 데이터베이스라고함 즉, 테이블로 이루어져 있으며, Key와 Value의 관계를 나타냄, 데이터 끼리 종속성을 가짐 # 장점 - 데이터가 중복이될 시 퍼포먼스와 유지보수 측면에서 효율성이 떨어짐 - 따라서 객체에 관한 데이터베이스를 생성하여 중복을 발생시키지 않고 필요에 따라 데이터를 연관시켜 쿼리 가능 - 위 표를 확인해보면 상단의 노란 음영을 확인해보면 'Author' = 'KIM' 이 3개 있는 것을 볼 수 있다. 모든 정보를 한눈에 보기는 편하지만 정보를 수정하기 위해서는 모든 항목을 수정을 해야한다는 단점이 있다. 그리고 식별자가 따로 없고 이름으로 확인하고 있기..

# 데이터베이스(DataBase) 란? 통합 관리 되는 데이터의 집합 # MySQL 설치 (MAC OS) $ brew insatll mysql $ mysql.server start $ mysql -uroot -p $ show databases; $ use ["DB_NAME"] # 테이블과 칼럼 - TABLES : 데이터베이스에 존재하는 테이블 정보 제공 - COLUMNS : 데이터베이스에 존재하는 테이블 칼럼 정보 제공 # 주석 - " # " : 한 줄 주석 - " -- " : 한 줄 주석 - " /* */ " : 여러 줄 주석 # 스키마(Schema) 데이터베이스에서 자료의 구조, 표현 방법, 관계를 형식 언어로 정의한 구조 DBMS이 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터베이스 사..