170508-0514_TIL
08 May 2017 | TIL5월 14일 (일)
오늘 한 일 (회고)
- AskDjango 오프라인 강의에 참여했다.
- 간단한 사진 업로드 페이지 작성
- 아마존웹서비스 클라우드에 서비스 배포 (AWS ElasticBeanstalk + RDS + S3) 하는 방법에 대해서 배웠다.
- codility 알고리즘 문제를 풀었다.
- 텀블벅 페이지를 마크업을 개선했다. 연습 페이지
내일 할 일
- 팁스타운 코드챌린지 예선문제 풀어보기 링크
- AskDjango 사용자 인증 부분 강의노트 정리하기
5월 13일 (토)
오늘 한 일 (회고)
- bootstrap grid 시스템, scss를 활용하여 개인프로젝트용 웹 페이지를 마크업을 진행했다. 연습 페이지
내일 할 일 (회고)
- AskDjango 오프라인 강의 참여
- 텀블벅 연습 페이지 개선
5월 12일 (금)
오늘 한 일 (회고)
- 패스트캠퍼스 웹 프로그래밍 스쿨 수업 참여
- scss를 활용하여 텀블벅 페이지를 마크업했다. 연습 페이지
내일 할 일
- bootstrap을 활용하여 게시판 메인화면 만들기
- 텀블벅 연습 페이지 개선하기
- linked list 복습하기
5월 11일 (목)
오늘 한 일 (회고)
- hash 관련 강의를 들었다.
- 다른사람의 알고리즘 풀이 내용을 보면 hash를 활용해서 O(1), O(N) 으로 해결하는 경우가 있어서, hash 라는게 뭔지 궁금했다.
- 파이썬의 딕셔너리는 해시 테이블(hashtable) 알고리즘을 활용하기 때문에, 검색시 O(1)의 성능을 가진다고 한다.
해시 함수(hash function)는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다. 해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다. 그 용도 중 하나는 해시 테이블이라는 자료구조에 사용되며, 매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어에 널리 사용된다. 해시 함수는 큰 파일에서 중복되는 레코드를 찾을 수 있기 때문에 데이터베이스 검색이나 테이블 검색의 속도를 가속할 수 있다 위키백과
- 코딩 인터뷰 완전 분석 풀이 강의를 듣고 실습했다.
- 문자열 뒤집기 알고리즘
- anagram, 문자열 2개 입력 받아 순열인지 판별하는 메서드
- 공백을 %20으로 바꿔주는 알고리즘
- 같은 문자 반복 횟수를 이용한 문자열 압축
- 알고리즘 문제를 풀었다. 괄호 확인하기 문제는 2달 전에 못 풀어서 넘어갔던 문제인데, 컴공입문 수업에서 배웠던 stack을 활용해서 풀 수 있었다.
- AskDjango 장고 기본강의를 들었다.
- 이미지 처리 라이브러리 pilkit, 이미지 썸네일 helper앱 django-imagekit을 활용하여 썸네일 이미지를 생성하는 방법에 대해서 배웠다. 블로그 정리내용
- 패스트캠퍼스 웹 프로그래밍 스쿨 수업 참여
- scss를 활용한 마크업 실습
5월 10일 (수)
오늘 한 일 (회고)
- AskDjango 장고 기본강의를 들었다.
- 유저가 업로드한 파일의 저장 방식 (media files) 에 대해서 배우고 주요 내용을 블로그에 정리했다.
- 재귀함수 부분을 복습하고 관련강의를 통해서 실습한 내용을 정리했다.
내일 할 일
- 패스트캠퍼스 웹 프로그래밍 스쿨 수업 참여
- AskDjango 장고 기본강의 듣기
- 알고리즘 문제 풀기
- 재귀함수 강의 듣기
5월 9일 (화)
오늘 한 일 (회고)
- 패스트캠퍼스 웹 프로그래밍 스쿨 수업 참여
- 컴퓨터공학 입문 수업 복습
- 바이너리 서치 (이진탐색)에 대해서 복습하고, 이진탐색을 제귀적 방법으로 구현하는 부분을 연습했다.
- AskDjango 장고 기본강의를 들었다.
- Message Framework 를 활용하여 새글 추가, 수정, 삭제시에 활용 가능한 기본 메시지를 view에서 작성하고, template에서 표시하는 방법
- 장고에서 static files (HTML, CSS, image) 을 찾는 방법 (static files finders)
- 개발환경에서 static 파일 서빙, 실배포를 위한 collectstatic (외부 웹서버에서 finder의 도움 없이도 static 파일을 서빙하기 위해 static_root 경로에 파일들을 복사)
- 파이썬 웹프로그래밍 2장을 읽었다.
- 파이썬의 웹 라이브러리 (웹 서버용 / 웹클라이언트용 http패키지 (저수준 API제공), urllib패키지 (고수준 API제공))
- 프레임워크는 개발자가 웹 서버 프로그램을 개발하기 쉽도록, 저수준의 기능을 이미 만들어 놓은 프로그램
- 중급 이상의 개발자가 되려면, 프레임워크가 어떻게 동작하는지, 파이썬의 웹 서버 라이브러리가 웹 프레임 워크에서 어떻게 사용되는지 등에 대한 기술을 파악할 필요가 있다.
내일 할 일
- 패스트캠퍼스 웹 프로그래밍 스쿨 수업 참여
- AskDjango 장고 기본강의 듣기
5월 8일 (월)
오늘 한 일 (회고)
- 패스트캠퍼스 웹 프로그래밍 스쿨 첫수업에 참여했다. (오리엔테이션, HTML 기초)
- REST API 대한 글을 읽었다.
- REST API 설계시 가장 중요한 항목 2가지, 다른건 다 잊어도 아래 내용은 꼭 기억하자.
- 1) URI는 정보의 자원을 표현해야 한다.
- 2) 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
- 파이썬 웹프로그래밍 1장 웹프로그래밍의 이해 부분을 읽었다.
- URL 설계는 웹 서버 로직 설계의 첫걸음이고, 사용자 또는 웹 클라이언트에게 웹 서버가 가지고 있는 기능을 명시에 주는 중요한 단계이다.
- URL은 웹 클라이언트에서 호출한다는 시점에서 보면, URL은 웹 서버에 존재하는 애플리케이션에 대한 API이라고 할 수 있다.
- REST (Representational State Transfer)는 API(URL)의 명명 규칙을 정하는 방법 중 하나이다.
- REST방식은 웹 서버에 존재하는 요소들을 모두 리소스라 정의하고 URL을 통해 웹 서버의 특정 리소스를 표현한다는 개념을 갖는다. 리소스는 상태가 변할 수 있고, 리소스에 대한 조작을 HTTP 메소드로 (GET, POST, PUT, DELETE) 매핑한다.
- 웹서버 : 웹 클라이언트의 요청을 받아 처리하고 결과를 웹 클라이언트에게 응답한다. 정적인 페이지를 제공할 때 사용한다.
- 웹 어플리케이션 서버 : 웹 서버로 부터 동적 페이지 요청을 받아서 요청을 처리하고, 결과를 웹 서버로 반환한다. 주로 동적 페이지 생성과 데이터 베이스 연동 기능을 처리한다. (프로그램과 웹서버 사이에 정보를 주고받는 규칙인 CGI 방식의 대안 기술로서 발전)
- 파이썬 웹 프로그래밍 실전편 실습 - 첫페이지 template, static 작성
내일 할 일
- AskDjango 장고 기본강의 듣기
- 파이썬 웹프로그래밍 2장 읽기
- 컴퓨터공학 입문 수업 복습