목록전체 글 (44)
거북이의 IT 공부
쿼리(Query) 장고에서 manager를 사용하면 반환되는 데이터의 타입이 queryset인데 여기서 'query'가 무엇인지 정확히 알아야 한다. 쿼리 = 데이터베이스를 관리하기 위한 명령을 하거나 데이터베이스에게 원하는 정보를 달라고 요청하는 등의 행위(=질의) SQL 그렇다면 데이터베이스를 다루고 명령을 내려서 원하는 업무를 하기 위해서는 '코딩'이 필요하다. 데이터베이스 중 관계형 데이터베이스를 관리하기 위해 만들어진 언어 = SQL이다. SQL로 쿼리문을 작성하여 데이터베이스 서버에 요청을 하면 데이터베이스 서버에서 우리가 요청한 작업을 수행해준다. SQL은 Structured Query Language로 한글로 풀이하면 '구조화된 쿼리 언어'이다. 즉, 쿼리를 쓸 수 있는 구조를 갖춘 언어라..
미리 답을 말하면 장고 자체는 웹서버가 아니다. 장고는 장고만의 웹서버를 사용한다. 개발 목적으로 python으로 짜여진 가벼운 WSGI(web server gateway interface)를 사용한다. 장고 프로젝트 만들 때 wsgi.py가 자동으로 생성된다. (WSGI = 장고의 내장 WAS = 장고만의 웹서버) 이러한 Python WAS인 WAGI 덕분에 runserver를 하면 장고에서 GET, POST 요청 등 Client가 웹서버에 보내는 요청(request)를 확인할 수 있다 - 이는 결국 우리 컴퓨터 자체가 하나의 서버로 동작하게 된 것이다. 그래서 장고로 작은 프로젝트 만들 때 장고(정확히 말하면 WSGI)를 웹서버로 생각해도 무방하다. (아파치같은 웹서버를 따로 파지 않는 이상말이다!)..
백트래킹이란? 해를 찾아가는 도중, 지금의 경로가 해가 될 것 같지 않으면 그 경로를 더이상 가지 않고 되돌아가는(Backtracking) 기법을 말한다. -> 반복문의 횟수를 줄여서 효율적이다!!! 좀더 정확하게 말하자면 어떤 노드의 유망성, 즉 해가 될 만한지 판단한 후 유망하지 않다고 결정되면 그 노드의 이전(부모)로 돌아가(Backtracking) 다음 자식 노드로 가는 기법을 말한다. 이를 가지치기라고 하는데, 불필요한 부분을 쳐내고 최대한 올바른 쪽으로 간다는 의미이다. 기본적으로 백트래킹은 '가능한 모든 방법을 탐색한다'(완전 탐색 기법) 에 기본 아이디어가 있다. 대표적인 완전 탐색 방법으로는 DFS (Depth First Search, 깊이 우선 탐색) 이 있다. 하지만 DFS 는 모든곳..
STL이란? 표준 C++ 라이브러리(Standard Template Library)로 프로그램에 필요한 자료구조와 알고리즘을 Template으로 제공하는 라이브러리 C++은 template라는 걸 통해서 한 가지 타입에 특정되지 않고, 여러 타입에 일반적인 문법을 사용할 수 있게 된 데다 STL을 통해서 타입 / 컨테이너 / 알고리즘을 분리해 하나씩만 구현해도 여러 조합의 경우를 포괄할 수 있는 언어가 되었다. STL = 컨테이너 + 반복자 + 알고리즘 컨테이너(Container) 특정한 타입의 원소들을 담아 다루기 위한 객체 Vector - 동적 배열이므로 배열의 크기를 변경할 수 있다. - 임의 접근이 가능하며, 뒤에서의 삽입이 빠르다. - 삽입, 삭제, 탐색 O(n), 임의 원소 접근 O(1) 보장..
JSP(Java Server Page) JSP란 Java언어를 기반으로 하는 Server Side 스크립트 언어이다. HTML 코드 내 java 코드 정적인 HTML내에 자바 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하여 웹 브라우저에 돌려주는 언어이다. MVS -> View Servlet(서블릿) "클라이언트의 요청(request)를 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 자바 코드 내 HTML코드 MVC -> Controller
웹의 작동 원리 http://tcpschool.com/webbasic/works 코딩교육 티씨피스쿨 4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등 tcpschool.com 웹 서버, WAS, 그리고 WSGI 웹 서버 웹 브라우저(클라이언트)에서 HTTP요청을 받고 HTML 문서와 같은 웹 페이지(그림, 스타일시트, 자바스크립트)를 정적으로 처리해서 반환하는 소프트웨어 + 하드웨어이다. 웹 서버는 정적이다. 예) Apache, Nginx, IIS 등등 CGI (Common Gateway Interface) 정적으로 동작하는 웹서버를 동적으로 기능하게 만들기 위함. 웹서버에 들어온 Request를 외부 프로그램과 연결하여 해당 프로그램이 그 요청(동적인 파일)을 ..
프레임워크는 '일정하게 짜여진 틀, 뼈대를 가지고 일한다'라는 느낌을 받아가면 되겠습니다. 일정한 형태의 틀, 부품을 가지고 다양한 형태의 결과물을 만드는 것! 이것이 바로 프레임워크입니다. 소프트웨어 프레임워크는 개발에 필요한 화면구현, DB연동, 개발환경들의 공통적인 부분을 제공함으로서 개발 시간과 (인력)비용을 절감할 수 있게 해줍니다. 쉽게 말하면 프로그램 개발의 다양한 기능들을 통합적으로 제공한다 '특정 프로그램을 개발하기 위한 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램' 프레임워크 vs 라이브러리 라이브러리 = 도구의 모음 프레임워크를 가지고 프로그램을 프레임워크에서 제공하는 요소와 그것을 사용하기 위한 규약을 지키면 그 밖에 나머지는 어떤 라이브러리를 가져다가 써도 어떤 패키지를 가져다가..
코딩 공부방법을 치다가 우연히 알게 되었다. 클론 코딩은 기존에 있던 것들을 그대로 구현만 하는 것이다. 따라서 기획, 설계는 필요없다!! 나의 기술을 늘리기 위한 공부 방법이다. 인강보고 '에어비엔비' 구현하는 것이 왜 클론 코딩인지 알게 되었다! https://velog.io/@city7310/%EB%82%B4%EA%B0%80-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EB%B0%A9%EC%8B%9D 내게 실용적이었던 프로그래밍 공부 방법들 나는 보통 재능이나 공부의 양으로 친구들의 성장 속도를 따라가기 힘들었다. 그래서 '무작정 열심히'보단, '의식적인 연습'을 지속해 나가야 했다. 이득충이 되는 방향으로 공부를 하다 보니까, velog.io