
나는 원래도 CS지식이 부족하지만... 학부시절 네트워크, 컴퓨터 구조 강의를 듣지 않아 더 약하다.... ㅠㅠ 이런 약점을 보완하기 위해 유튜브에서 진짜 진짜 엄청 많은 강의들을 찾아봤는데 나에게 맞는 강의가 없었고 이해가 쉬운 강의를 찾기 어려웠다.. 다행히 널널한 개발자 채널에서 강사분이 너무나도 깔끔하게 정리를 해주셔서 이해가 쉬웠다..! 이제 이걸로 네트워크를 부숴보게쒀....!! 네트워크 기초 이론 먼저 강사님이 처음 하셨던 말이 너무 좋았다. OSI 7 Layer ? 완전 개념이니 당연히 이해하기 어렵고 지금 이해하려고 하지마라! OSI 7 Layer를 이전에 볼 때부터 너무 개념적인 설명 때문에 이해하기 어려웠는데 다행이었다... 대신 외울 것이 생겼다... ㅎㅎ 컴퓨터 구조 자체 지식이 ..

함수 기반 View 함수 기반 View, 즉, View함수는 우리가 지금까지 다뤘던 글에서 보았던 View함수를 의미한다. 서비스를 처리하고 다시 응답하는 프로세스를 가진다. 보통 urls.py에서 path를 지정하고 해당 path를 요청했을 때 해당 View함수가 실행되는 로직으로 짜여져있다. 클래스 기반 View 클래스 기반의 View에서는 View 클래스 내부에 여러가지 서비스 처리부터 요청을 받고 응답을 하는 모든기능이 포함된 함수들을 가진다. 위처럼 View 클래스는 get, post기능을 하는 각기 다른 함수들을 포함한다. 이 부분은 어떤 View 클래스냐에 따라 다르다. 장고에서는 미리 이렇게 사용할 수 있는 클래스들을 정의하고 사용자들에게 간편하게 가져다 쓸 수 있도록 documentati..

URL Reverse 장고에서 urls.py에 경로를 입력해주고 라우팅을 해주는 과정에서 일부 설정만 해주면 해당 경로를 처음부터 입력하지 않고 그 경로의 이름만을 입력해주는 방식으로 치환이 가능하다. 위 예시처럼 urls.py에 정의한 경로인 'new/'에 태그로 접근하도록 하려면 직접 경로를 작성해야하는 까다로움이 있었는데 이 문제를 URL Reverse를 사용해서 '앱이름:path이름' 식으로 변경해줄 수 있다. URL Reverse의 기본 URL Reverse 방식은 단순하게 urls.py의 urlpatterns 속성안에 path의 인자로 name을 지정해주는 것이다. 단순히 이렇게만 이름을 지정해줘도 HTML에서 path 이름을 호출하면 해당 링크를 사용할 수 있다. 위의 코드 예시처럼 단순히 ..

HTML Form 장고의 Form 파일과 형식을 보기전에 HTML의 Form을 보자. 어떤 페이지에서 위와 같은 HTML Form이 나타나고 사용자가 form을 작성해서 submit을 하게 되면 Server는 Client의 정보를 받게 된다. 이때 Client가 Server에게 요청정보를 보낼 때 보낼 수 있는 방식이 여러가지가 존재하는데 그 중에서 GET과 POST를 먼저 살펴보자. GET 위에서 HTML로 만든 Form을 사용자가 작성해서 GET방식으로 요청정보를 Server에게 넘겨줬다고 가정해보자. 요청정보를 받는 방식이 GET이기 때문에 아이디/비밀번호/성별 등등의 정보가 URI에 담겨 보내지게 된다. URL/URI에 담겨지는 방식은 아래와 같다. Client가 보내는 요청정보는 위 처럼 Hea..

ORM 이전 글에서도 계속해서 등장하는 ORM이다. 장고의 모델과 실제 DataBase간의 통신에서 아주 중요하게 사용되는 기능이다. 이 ORM으로 실제 DB에 접속하지 않아도 파이썬 문법과 비슷한 형식으로 DB에 CRUD를 수행할 수 있다. ORM의 실제 정의는 이곳에서 찾아볼 수 있다. ORM이란 Object-Relational Mapping의 약자로 객체(Object)와 관계형 데이터베이스(Relational Database)의 데이터를 매핑(Mapping)해주는 것을 의미한다. 객체 간의 관계를 바탕으로 SQL을 자동 생성하여 sql쿼리문 없이도 데이터베이스의 데이터를 다룰 수 있게 해준다. 데이터베이스의 테이블을 객체지향 프로그래밍에서 흔히 사용하는 객체(Class)처럼 사용할 수 있도록 해주는..

Django Field 이전 글에서 장고의 모델을 활용해서 DB와 웹 서버를 연결하는 과정을 보았다. 장고의 모델에서 정의하는 Field를 통해 DB table에 우리가 원하는 속성 Column을 만들어줄 수 있었다. Field의 종류 Field의 종류에는 위와 같이 수많은 종류들이 있다. 모두 외우기에는 어렵기 때문에 대략적인 분류만 인지하고 필요할 때 보고 가져다쓰기로 하자. 먼저 숫자 Field에서 자동값 증가 필드(Auto)는 3가지로 모두 같은 기능이지만 숫자의 범위를 지정해주는 탓에 다른 이름의 Field로 불린다. 나머지 숫자 필드에서도 음, 양, 크기에 따라 다양한 field가 존재한다. 문자열 Field는 어떤 문자열을 저장할 때 크기를 가변, 고정적으로 정할지, 어떤 종류의 문자열을 정..

장고 템플릿 장고 템플릿은 사용자의 요청에 따른 응답정보를 사용자가 HTML파일로 확인할 수 있도록 한다. 과정 순서는 다음과 같다. 사용자가 URL을 통해 요청정보와 함께 요청. 장고에서 요청을 받아 view함수에서 처리. view함수에서 HTML을 불러 사용자에게 응답. 장고 환경설정 먼저 장고에서 템플릿을 사용하기 위해서는 환경설정이 필요하다. 위와 같이 장고에서 사용할 템플릿을 프로젝트의 settings.py 파일에 작성한다. 이번 프로젝트에서는 장고템플릿을 템플릿으로 사용한다. 템플릿은 INSTALLED_APPS부터 시작해서 TEMPLATES 딕셔너리(정확히는 딕셔너리내 DIRS)까지 탐색한다. 만약 어떤 앱에서 list.html을 사용한다고 하면 장고는 INSTALLED_APPS(대개 기본앱들..

웹 애플리케이션 구조 웹 애플리케이션은 위와 같은 구조로 통신한다. Web browser는 client에 해당하고 Web Server와 WAS(Web Application Server), DB Server는 Server에 해당한다. Client(우리가 흔히 쓰는 브라우저)에서 URL을 통해 어떤 정보를 요청(request)하면 Server는 요청정보를 받아와서 일련의 application을 수행하고 반환, 반응, 응답(response)한다. 이때 Client(browser)에게 정보를 보여주는 방식을 만드는 기술이 Front-End, Server에서 요청정보를 가지고 일련의 처리를 하는 기술이 Back-End, 이 모든 기술들을 합쳐 Full-Stack이라 칭한다. Web Browser에 응답정보를 디자..

Container 우리는 어떤 서비스를 만들기 위해서 그 서비스 구축을 위한 환경을 조성해줘야한다. 그 환경에서는 OS, Software같은 것을 필요로 하게 되는데, 하나의 시스템안에서 두 개 이상의 software를 동시에 실행하고 싶을 때가 있다. 하지만 일반적인 시스템의 경우에는 같은 시스템 내에서 두 개 이상의 software를 동시에 실행할 수는 없다. 이런 이유때문에 가상머신(Virtual Machine)의 개념이 등장했다. 가상머신은 하나의 시스템위에서 그 시스템의 리소스로 여러 개의 환경을 구축하고 동시에 실행할 수 있도록 도와준다. 하지만 동시에 운용하고 싶은 환경이 매우 많은 기업이나 서비스에서는 일일이 이 가상머신의 환경을 세팅해줘야 한다. 그렇다면 서비스를 구축하는데에 들어가는 시..

가상화 클라우드 가상화 클라우드는 기존 IT 산업에서 빈약한 인프라와 인프라 구축의 복잡성 때문에 등장했다. 이전 글에서 물리적인 컴퓨터에서 가상 머신을 사용해서 한 물리적인 머신 위에 여러 개의 가상 머신을 올리는 실습을 진행했다. 이렇게 가상화를 통해 여러 개의 가상환경을 만드는 방식을 점점 발전시켜 나가 아래처럼 최종적으로 가상머신을 다른 사용자에게 제공해줄 수 있는 서비스가 만들어지게 되었다. 이런 가상화는 컴퓨터의 성능을 책임지는 장치들 뿐만 아니라 네트워크도 수행된다. 위와 같이 가상화의 큰 발전으로 클라우드 제공 기업으로부터 가상머신을 제공받을 수 있다. 인터넷을 통해서 필요한 만큼 사용하고 사용한 만큼 지불하면 되기 때문에 매우 편리하다. 클라우드의 구분 클라우드는 일반 사용자에게 공개하는..