Django vs Ruby on Rails 공통점 routes.rb - Django의 urls.py와 비슷한 역할 - Controller(Django에서 Views)의 메소드를 실행시켜준다. ex) get '/gogo', to: 'lotto#index' => get방식의 gogo가 url에 들어오면 lotto라는 이름의 controller에 가서 index라는 메소드를 실행시킨다. 성능 - Ruby와 Python의 성능 수준은 거의 동일하다. 일반적인 CRUD 앱에서는 차이가 눈에 띄지 않는다. 성능이 우선 순위 목록에서 높고 수천 명의 동시 사용자에게 서비스를 제공해야하는 경우 올바른 선택이 아니다. Architecture - 두 언어의 아키텍처 는 MVC 모델을 기반으로하며 잘 구조화되어 있습니다. ..
점근적 실행 시간(Asymptotic Running Time) - 입력값 n이 커질 때, 즉 입력값이 무한대를 향할 때 함수의 실행 시간의 추이를 의미한다. 시간복잡도(Time Complexity) - 어떤 알고리즘을 수행하는 데 걸리는 시간을 설명하는 계산 복잡도(Computational Complexity) 빅오 별 특징 - O(1) : 1초가 걸린다는 것이 아니라 입력값이 아무리 커도 실행 시간이 일정하다는 뜻이다. 상수 시간이라는 것이 빠르다고 생각이 들 수 있지만 일정하다는 것이 포인트이므로 이 상수값 자체가 엄청나게 크다면 사실상 일정한 시간의 의미가 없다. 해시테이블의 조회 및 삽입이 이에 해당한다. - O(logN) : 매우 큰 입력값에도 크게 영향을 받지 않는 편으로 웬만한 n의 크기에 ..
문제 app.codility.com/programmers/lessons/7-stacks_and_queues/brackets/ Brackets coding task - Learn to Code - Codility Determine whether a given string of parentheses (multiple types) is properly nested. app.codility.com 문제 상황 - 전형적인 Stack 문제로 올바른 괄호 찾기 문제이다. 해결 전략 - 검색 속도가 빠른 dict를 이용해 짝을 구성하여 open bracket일 경우 stack에 저장, close bracket의 경우는 open bracket에서 pop하여 비교해서 같으면 제거, 다르면 잘못된 bracket이므로 ret..
Django에서 AJAX 사용하기 AJAX를 사용하지 않는 방식과 AJAX 사용과의 차이점 - 왼쪽 방식은 AJAX를 사용하지않는 것으로 Request가 들어오면 url로 href 되어 views.py에서 models.py의모델 내용을 변경하고, 변경사항을 반영하는 템플릿으로 다시 redirect해준다. 이 과정은 새로고침으로 볼 수 있다. - 오른쪽 방식은 AJAX를 사용한 것으로 Button Onclick을 JS로 감지하여 AJAX를 통해 서버와 통신한다. 즉, 위에서는 url을 바로 Django에서 href하는 것과 다르게 AJAX를 통해 통신하는 과정이 추가된다. AJAX 예시 코드 1 2 3 4 5 6 7 8 9 10 $.ajax({ url: '127.0.0.1:8000/hello', type:..
인덴트 - PEP 8 이후로 추천하는 방식은 tab이나 2칸 space가 아닌 4칸 space이다. - parameter가 첫째줄에 시작하고, 다음줄로 내려갈 경우 아래와 같이 parameter 시작 위치 선을 맞춰준다. 1 2 foo = long_function_name(var_one, var_two, var_three, var_four) cs - parameter가 첫째줄에 시작하지 않을 때, 줄바꿈이 발생하면 indent로 구별해준다. 1 2 3 4 5 6 7 8 9 def function_name( param_1, param_2, param_3): print(1) foo = long_function_name( param1, param2 param3, param4) cs Naming Conventi..
URL Dispatcher - HTTP request가 들어올 때마다, 등록된 urlpatterns 상의 매핑 리스트를 처음부터 순차적으로 훝으며 URL 매칭을 한다 - 매칭되는 URL Rule이 다수 존재해도 처음 매칭되는 Rule 만을 사용한다. - 매칭되는 URL Rule이 없을 경우 404(Page Not Found) Error 응답을 발생한다. Django.conf.urls.url() (Django 1.x 버전) - Django 1.x 버전의 url() 메소드가 regex 사용을 위한 re_path()가 되고, path가 추가되었다. Django.urls.path() - 기본 지원되는 Path converters를 통해 정규표현식 기입이 간소화되었다. urlpatterns 예시 - Django ..
프로그래밍 언어의 특징 제네릭 프로그래밍 - generic이란 파라미터의 타입이 나중에 지정되게 해서 재활용성을 높일 수 있는 프로그래밍 스타일 ex) Java(1.5ver. 이후), C++(템플릿 기능 활용) 동적 타이핑(Dynamic Typing) - 정적 타이핑과 달리 자료형을 컴파일이 아닌 런타임 시 결정하는 것으로, 자료형의 명시 없이 변수명만 가지고 선언 및 값을 전달하는 것이 가능하다. - 런타임 당시에 타입에 대한 결정을 진행하므로 프로그래밍 하는 입장에서 편할 수 있지만, 한 편으로는 런타임 동안 예상치 못한 에러가 발생할 수 있고 이를 발견하는데 큰 어려움을 겪을 수 있다. ex) Python, Ruby, Javascript 정적 타이핑(Static Typing) - 자료형(type)을..
- Total
- Today
- Yesterday
- 텀 프로젝트#백준알고리즘#Python
- 파이썬알고리즘인터뷰#4장
- 랜선자르기#이분탐색#BOJ#Python
- 토마토#백준알고리즘#Python
- 미로 탐색#백준알고리즘#Python
- 종이자르기#분할정복#BOJ#Python
- 배열합치기#분할정복#BOJ#Python
- 섬의개수#백준알고리즘#Python
- filter#isalnum#lower
- django#slicing
- 순열사이클#BOJ#Python
- 나무자르기#BOJ#이분탐색#Python
- Swift#Tuples#Range
- API#lazy#
- 리모컨#완전탐색#BOJ#Python
- PassingCars#Codility#Python
- Triangle#Sorting#Codility#Python
- 백준 알고리즘#BackTracking
- Distinct#Codility#Python
- N으로 표현#DP#Programmers#Python
- 쿼드트리#BOJ#분할정복#Python
- 암호코드#dp#BOJ#Python
- Brackets#Stacks and Queues#Codility#Python
- 공유기 설치#BOJ#이분탐색#Python
- NumberofDiscIntersections#Codility#Sort#Python
- django
- 병든 나이트#BOJ#탐욕법#Python
- 반복수열#백준알고리즘#Python
- 터틀비치#리콘#xbox#controller
- 날짜 계산#BOJ#완전탐색#Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |