목록대학교 (252)
SW
0. Cookie, Session 울랄라스파라는 곳이 있다. 울랄라스파는 회원등록을 하고 입장해서 내부 시설들을 맘껏 이용한 뒤 나올 때 한꺼번에 계산하는 방식이다. 우리가 브라우저로 어느 웹사이트를 이용하는 과정을 위 스파에 비유해 설명해보겠다. 이곳에서는 스파의 쿠폰북이 아닌 '쿠키북'이라는 수첩같은 것을 들고다니면서 이용하는 시설마다 이걸 보여주게 되어 있다. 이 '쿠키북'에는 시설 측에서, 혹은 내가 직접 뭔가 기록할 수도 있고 수정하고나 찢어서 버릴 수도 있다. 이 '쿠키북'의 핵심은 내가 들고다닌다는 것. 그리고 시설을 이용할 때마다 보여준다는 것이다. 쿠키는 사이트를 방문하고 이용할 때 브라우저에 저장되는 내용들이다. 브라우저는 내 컴퓨터에 있는것이므로 내가 갖고 있는 정보이다. 그런데 이 ..
0. Flask Flask는 프레임워크로 "마이크로프레임워크"라고도 한다. 플라스크는 기본적인 기능부터 시작해서 확장 가능하도록 설계됐다. virtual environment를 생성하고 flask라는 폴더를 홈디렉토리에 만들었다. pip install flask로 flask를 설치하고 python > import flask 하여 문제없는지 확인한다. 1. 초기화 모든 플라스크 애플리케이션은 애플리케이션 인스턴스를 생성해야 한다. 웹 서버는 클라이언트로부터 수신한 모든 request를 이 오브젝트에서 처리하는데 이때 웹 서버 게이트웨이 인터페이스(WSGI)라는 프로토콜을 사용한다. 애플리케이션 인스턴스는 Flask 클래스의 오브젝트이며 다음과 같이 생성된다. Flask 클래스 생성자에 필요한 한 가지 인수..
0. Web Server 동작원리 Web browser가 Web Server에게 정보를 요청한다. 어떤 요청은 Web Server가 직접 처리할 수 없다. 예를 들어 .py로 끝나는 것은 Web Server가 처리할 수 없다. 그래서 Web Server는 Python에게 CGI기술을 이용해서 위임한다. Python은 그 코드를 웹페이지로 바꿔준다. Python이 File을 읽고 다시 가져와서 Web Server로 보내준다. Web Server는 다시 Web browser로 보내준다. 1. 환경 구축 bitnami 설치 apache2 > conf > httpd.conf 에서 #LoadModule cgid_module modules/mod_cgid.so 찾은 후 주석으로 만들어주는 #을 지운다. 확장자가 ...
0. 무엇을 언제 써야할까? 파이썬의 양대 웹 프레임워크 두개 중에 고민하고 있다면 Flask를 쓰면된다.(초보자, 학습목적) 서비스를 제공하고 싶다면 django쓰면 된다.(서비스) Flask -> Micro Web Framework : 정말 필요한것만 제공해준다. pip install 을 통하여 추가적으로 설치해주는 것이다. Django -> 장고를 설치하게 되면 모든 것이 딸려온다. 보통 웹서비스를 만드는데 있어서 90~95퍼센트, 대부분의 경우는 모두 설치되어 있다.
0. 차이점 무엇을 빌드하느냐에 따라 다르다. 우선 CRUD(Create Read Update Delete)를 알아야 한다. 예를 들면, 인스타그램은 CRUD이다. 장고는 CRUD를 위한 최선의 옵션이다. 블로그, 인스타그램, 유튜브같은 것에 최적이다. 이와 같은 경우에는 파이썬 + 장고 조합을 선택할 것이다. 필요한 것을 다 갖추었다. 유저, 인증, 뷰, 템플릿 등등 최적화 되어 있다. 그러나 그런 경우가 아닌, 우버와 같이 CRUD외에 리얼타임이 필요하다거나 API를 사용해야하는데 그게 자바스크립트 베이스라던가 그런경우에는 nodeJS를 사용하면 좋다. 넷플릭스는 nodejs를 자주 사용한다. CURD이외에도 리얼타임을 자주 하기 때문이다. 결론을 말하면, CRUD를 활용한다? 파이썬 + 장고 조합을..
0. Planning the Movie Component componentDidMount는 처음 Load될때 실행될 때 작동하는 것을 설정하는 것이다. setTimeOut을 사용하여 6초 후에 isLoading상태를 바꿔보겠다. 1. Fetching Movies From API 그리고 일반적으로 쓰는 JavaScript의 fetch 말고 Axios를 쓸 것이다. Axios는 fetch 위에 있는 layer이다. Axios를 땅콩 주위의 초콜릿에 비유할 수 있다. Axios 사용을 위해 terminal 에서 npm i axios 를 실행해준다. API를 YTS라는 사이트에서 가져오겠다. https://yts.mx/ The Official Home of YIFY Movies Torrent Download -..
0. 제목 백준 2579 계단 오르기 BOJ 2579 계단 오르기 C++ 2579 계단 오르기 1. 문제 https://www.acmicpc.net/problem/2579 2. 풀이 DP 방식을 이용하였다. [백준 2156] 포도주 시식 문제와 비슷하다. 먼저 초기값인 dp[1], dp[2], dp[3] 을 먼저 설정해준다. 문제에서 계단을 오를때 항상 마지막 계단을 밟아야 한다고 나와있다. 마지막 계단을 i번째 계단이라고 놓으면 i-1 번째 계단과 i-2 번째 계단을 밟는 경우를 생각해봐야 한다. i-1 번째 계단을 밟을 경우 3개 연속으로 밟으면 안되므로 i-2번째는 밟을 수 없다. 따라서 dp[i-3] + arr[i-1] + arr[i] 가 된다 i-2 번째 계단을 밟을 경우는 그대로 dp[i-2]..
0. React의 장점 모두 JavaScript 기반이다. 별도로 프레임워크를 베울 필요 없이 JS 활용하면 된다. angular나 vue.js처럼 다른 언어를 배울 필요가 없음 예를 들어, Angular를 배우고 Angular을 안쓰면 다른 곳에 쓸 수가 없다. 그러나 React는 그렇지 않다. 리액트 구조는 요소별, 컴포넌트별로 나눠서 작업할 수 있게 되어 있다. 그룹별로 쪼개서, 작업할 수 있다. 모든 걸 작은 요소로 쪼개서 작업하고 마무리하면 가져다가 다른 곳에 쓸 수 있다. JSX는 리액트로 html을 쓰는 방법이다. 리액트는 Undirectional(단방향) 데이터플로우를 가지고 있다. 데이터는 항상 일정한 장소에 위치해 있고, 그 장소에서만 변경할 수 있다. Angular의 경우, 데이터는 ..
0. 제목 백준 10610 30 BOJ 10610 30 C++ 10610 30 1. 문제 https://www.acmicpc.net/problem/10610 2. 풀이 30의 배수가 되려면 3의 배수이면서 10의 배수여야한다. 10의 배수이려면 마지막에 0이 반드시 나와야 하고 3의 배수이려면 각 자리 수의 합이 3으로 나누어 떨어져야 한다. 그리고 문제에서 N이 최대 100000개의 숫자로 구성되어 있다고 하여 문자열로 입력을 받았다. 먼저 입력값에 0이 포함되어 있는지 확인하고 포함되어 있는 것들의 자리수 합을 구한다. 자리수가 3으로 나누어 떨어지면 내림차순을 하고 정답을 출력한다. 조건에 맞지 않으면 -1을 출력한다. 3. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16..
0. 인공지능(A.I.) A.I는 2개로 나눌 수 있다. Narrow A.I, General A.I 보통 할리우드 영화나 넷플릭스에서 나오는 A.I는 general A.I를 뜻한다. general A.I는 인간이 하는 행동을 할 수 있고, 혹은 인간보다 더 뛰어난 능력을 가지고 있다. 대화를 나눌 수 있고 게임을 할 수 있고 판단을 할 수 있고 인간과 같은 것이다. 하지만 현실에서는 또 현재 산업에서는 narrow A.I를 다루고 있다. narrow A.I는 단 한개만 할 줄 알고, 그것만 잘한다. 집중하는 범위가 좁은 것(narrow)이다. narrow A.I의 예시로는 페이스북의 얼굴 인식 기능이 있다. 하지만 그 뿐이다. narrow A.I 이므로 딱 한개만 잘 할 수 있다. 1. 머신러닝 이때 머..