profile
삽질의 기록들 👨‍💻
태그 목록
전체보기 (123)42Seoul(35)C(19)cpp(16)JavaScript(15)network(12)python(11)django(11)React(11)git(10)ip(8)component(6)minishell(6)CSS(6)예발자닷컴(6)cloud(6)CloudCore(6)IBM(6)iOS(6)Libft(5)Clouders(4)오픈소스컨트리뷰톤(4)github(4)2021 오픈소스 컨트리뷰션 아카데미(4)bash(4)html(4)Props(4)오픈소스(4)libasm(3)쿠버네티스(3)ft_service(3)signal(3)GNL(3)swift(3)Makefile(3)ft_server(3)라이브러리(3)kubernetes(3)ft_printf(3)UIkit(3)shell(3)파이프(3)Debian(2)node.js(2)EventListener(2)next.js(2)컨테이너(2)object(2)pipe(2)Nginx(2)mutex(2)dockerfile(2)errno(2)컴퓨터공학(2)State(2)pod(2)phpmyadmin(2)GCC(2)Philosophers(2)ES2020(2)rebase(2)POST(2)redirection(2)리다이렉션(2)static(2)서브넷마스크(2)Subject(2)연결리스트(2)mysql(2)tcp(2)추상 클래스(2)dup2(2)wordpress(2)UITableView(2)redux(2)docker(2)querystring(2)Semaphore(2)템플릿언어(1)접근제어(1)include(1)execve(1)Namespace(1)가상화(1)객체(1)exit status(1)ssl(1)iterator(1)Rand(1)HI THIS IS BRAIN(1)desired state(1)PDU(1)Static_cast(1)try(1)bash 명령어(1)종료상태(1)templates(1)식사하는 철학자(1)rewind(1)엑세스함수(1)플래그 레지스터(1)Dynamic_cast(1)i/o stream(1)MVC(1)참조자(1)vector(1)Plucking some brains(1)Dispatch(1)exit status code(1)객체지향 프로그래밍(1)yaml(1)const 참조자(1)csrf(1)다형성(1)GCP(1)SaaS(1)PaaS(1)IaaS(1)kine(1)service(1)unix(1)Subnetting(1)IP주소(1)에러메세지(1)UIAction(1)Xcode(1)Conversion(1)SIGQUIT(1)wait()(1)복사 생성자(1)throw(1)테이블뷰(1)키보드 인터럽트(1)SOLID(1)네트워크(1)멤버 이니셜라이저(1)linkedlist(1)model(1)store(1)printf(1)&&(1)subnetmask(1)fstream(1)동적할당(1)apiVersion(1)socket(1)컨테이너 어댑터(1)reducer(1)콜백함수(1)method(1)admin(1)생성자함수(1)dup(1)action(1)Microservices(1)virtual(1)Dangling Reference(1)popUpButton(1)Netmask(1)ssh(1)const함수(1)인스턴스(1)find(1)continue(1)stl(1)const(1)SIGINT(1)형식문자열(1)replace(1)어셈블리어(1)syscall(1)keyboradEvent(1)클래스 템플릿(1)writeFile(1)bootstrap(1)반복자(1)Deadlock(1)인터페이스(1)const_cast(1)대입 연산자 오버로딩(1)delete(1)포드(1)file descriptor(1)stringstream(1)레지스터(1)즉시실행함수(1)shellscript(1)고정IP(1)사설IP(1)고정소수(1)Git Confolict(1)new(1)keyCode(1)this(1)axios(1)MTV(1)disclosureIndicator(1)순수 가상 함수(1)api server(1)Dependabot(1)parser(1)서식지정자(1)material(1)reset(1)etcd(1)fork(1)표준 알고리즘(1)Sed is for losers(1)시그널(1)replicaset(1)kubelet(1)SSR(1)Brodcast(1)서브넷팅(1)classnames(1)Clouder(1)SDU(1)인공지능(1)공인IP(1)Metadata(1)SIGTERM(1)CDN(1)클래스(1)상호배제(1)정적변수(1)Markdown(1)블록체인(1)가상함수(1)master(1)form(1)난수생성기(1)유동IP(1)Fetch(1)fd(1)형식태그(1)pm2(1)교착상태(1)가변인자(1)RAII(1)UPD(1)조건부렌더링(1)익명함수(1)범용 레지스터(1)urls(1)상속(1)redirect(1)onClick(1)IPclass(1)JSX(1)Storyboard Reference(1)CPP-Moudule(1)스케줄러(1)가상상속(1)Map(1)CRUD(1)쿼리스트링(1)NodePort(1)컨트롤러(1)file(1)시스템콜(1)srand(1)DHCP(1)Netwhat(1)time(1)Coplien(1)i-value(1)IoT(1)readFile(1)devops(1)ClusterIP(1)메르센트위스터(1)Severless(1)My Awesome Phonebook(1)strerror(1)Typora(1)파일입출력(1)가상머신(1)spec(1)mt19937(1)브로드캐스트(1)reinterpret_cast(1)javasciprt(1)routing(1)메모리(1)nextjs(1)임계구역(1)가상 소멸자(1)ClapTrap(1)opcode(1)OSI7모델(1)예외 처리(1)cors(1)베어메탈서버(1)부동소수(1)refactoring(1)R-value(1)함수호출규약(1)다중상속(1)클러스터(1)템플릿상속(1)signal handler(1)자식 프로세스(1)UIMenu(1)Borderlands(1)autoindex(1)TCP/IP(1)함수 템플릿(1)ORM(1)open(1)lodash(1)노드(1)library(1)44BIT(1)Canonical(1)표준 컨테이너(1)SPM(1)catch(1)queryset(1)List(1)http(1)DNS(1)ubuntu(1)linux(1)stack(1)deployment(1)loadbalancer(1)getline(1)std::exeception(1)Proxy(1)넷마스크(1)스토리보드(1)공유자원(1)

[Django] URL app별로 관리하기

장고 프로젝트를 처음 생성하면, url은 프로젝트 폴더에서 관리하게 된다. CRUD 기능을 가진 app을 만드는데 필요한 url 들이다. 겨우 하나의 app만 가진 장고프로젝트 인데도, 벌써 이렇게 url들이 많아졌다. 만약 여러 기능을 가진 프로젝트를 만든다면 project 폴더의 urls.py가 얼마나 복잡해질지는 안봐도 뻔하다. 그래서, url을 app 별로 관리해주는 것이 필요할 것 같다! 장고 url이 제공하는 include() 함수를 사용하면, 프로젝트의 urls.py를 기능별로(app별로) 편하게 관리할 수 있다. 1. app 폴더 안에 urls.py 파일 생성 기존에 project 폴더에 있던 urls.py의 내용을 그대로 가져와준다. admin 관련 url은 project 전체에서 관리해야하니 거기에 남겨두자! 2. project 폴더의 url path() 수정 include

2020년 7월 23일
·
0개의 댓글
·

[Django] 한 템플릿에서 복수의 css 파일 적용하기

base.html을 상속받은 자식 템플릿의 경우, 무조건 부모 템플릿의 main.css 파일도 같이 상속받는다. 만약 자식 템플릿에서 따로 적용하고 싶은 css 파일이 있다면 어떻게 해야할까? 예를들어, 새 글쓰기를 기능을 가진 new.html 파일은 Navbar 도 상속받아야하고, 글 작성 form을 위한 css도 따로 적용해줘야한다. 해결 방법은 아래와 같다. 1. 자식 템플릿 css 파일 생성 우선, new.css 파일을 static 폴더에 만들어준다. 2. 부모 템플릿의 head에 {%block%} 생성 new.css를 위한 extrahead라는 이름의 block을 base.html의 head 섹션에 정의해준다. {% block extrahead %} {% endblock %} 자식 템플릿의 head 섹션에서 파일별로 다르게 사용할 수 있는 `

2020년 7월 23일
·
0개의 댓글
·

[Django] static 으로 css 로드하기

장고에서는 css나 js같은 정적 파일들을 static 폴더에서 한번에 관리한다. 1. static 폴더 생성 app 폴더 안에 static 폴더를 생성하고, 그 안에 main.css 파일을 넣어준다. 2. base.html에 static 링크하기 만약 개별 페이지 마다의 css 파일을 만들었다면 똑같이 static 폴더에 넣어준 뒤 각 템플릿에서 static으로 링크하면 된다. 3. base.html 만들기 나는 codepen의 Fly-Out Nav를 가져와 사용했다. 모든 페이지에 들어갈 nav 요소이기 때문에 base.html 에 넣어준것이고, 각 페이지마다의 템플릿은 block content 에 담길 것이다. 만약 부트스트랩을 사용하고싶다면 아래 CDN을 head에 추가해주자!

2020년 7월 23일
·
0개의 댓글
·

[Django] 템플릿 상속

템플릿 상속이란? html 문서 중 기본 뼈대가 되는 문서를 기본 템플릿으로 정하고, 이는 공통의 코드이므로 다른 문서에서 기본 템플릿의 코드가 필요하면 상속하여 가져다 쓰는 것. base.html 템플릿은 모든 템플릿이 상속해야 하는 템플릿으로 표준 HTML 틀을 갖춘 문서가 된다. 기본이 되는 템플릿을 'base.html'로 정한다. 1. templates 폴더에 base.html 생성 body 태그의 는 base.html을 상속한 템플릿에서 구현해야 하는 영역이 된다. 즉, block 외의 모든 요소들은base.html을 상속한 템플릿들에서 공통적으로 보여지게 된다. head태그의 메타데이터도 상속 받기 때문에 이를 이용해 부트스트랩 CDN을 모든 템플릿에서 일일이 다운받지 않고 사용할 수 있다. 2. home.html 에서 상속 각

2020년 7월 23일
·
0개의 댓글
·

[Django] '새 글 작성' 기능 만들기

블로그 model 만들기 와 이어지는 실습입니다. 이전 소스코드는 이 곳 을 참고하세요. 1. CRUD란? > create, read, update, delete 사용자 인터페이스가 갖추어야 할 기능(정보의 참조/갱신/검색)을 가르키는 용어이다. 우리가 웹이든 앱이든 어떤 소프트웨어를 사용한다면 반드시 일어나는 행위일 것이다. 이전에 만들었던 블로그에 CRUD 중 create와 read에 해당하는 새 글 작성 기능을 추가해보자. admin 계정을 이용하지 않고, 사용자가 직접 포스트를 작성할 수 있도록 만들어볼 것이다. 조금 더 구체적으로 고민해보자면, 아래 기능이 필요할 것

2020년 7월 10일
·
0개의 댓글
·

[Django] 블로그 model 만들기

helloworld 출력하기 와 이어지는 실습입니다. 이전 소스코드는 이 곳 을 참고하세요. 1. 객체(Object) 블로그 내 모든 포스트를 저장하는 부분을 만들어보자. 먼저 객체(object)에 대해서 조금 알고 있어야한다. 기본적으로 객체지향설계 개념은 현실에 존재하는 것을 속성과 행위로 나타내는 것을 말한다. 여기서 속성은 객체 속성(properties), 행위는 메서드(methods)로 구현된다. 2. 모델(Model) 장고에서 사용하는 모델은 객체로 만들고, 이 객체를 저장하면 그 내용이 자동으로 데이터베이스에 저장된다.

2020년 7월 10일
·
2개의 댓글
·

[Django] 템플릿 언어

Django의 템플릿 언어(template language)는 강력함과 편리함 사이의 균형을 잡고자 설계되었다. 템플릿 언어를 사용하면 HTML 작업을 훨씬 수월하게 할 수 있다. 변수, 필터, 태그, 주석 등 4가지 기능을 제공한다. 장고 공식 문서에 나와있는 예제를 보면서 각 기능들을 공부해보자. 1. 템플릿 변수 템플릿변수를 사용하면 뷰에서 템플릿으로 객체를 전달할 수 있다. {{ 변수 }}와 같이 생겼다. 점(.) 은 변수의 속성에 접근할 때 사용한다. 위의 예제에서는 {{ section.title}} 와 같이 사용했다. 뷰에서 section객체를 html 문서로 보내 title 속성을 출력할 수 있도록 지원하는 것이다. 2. 템플릿 필터 템플릿필터는 변수의 값을 특정 형식으로 변환할 때 사용한다. 변수 다음에 파이프(|)를 넣은 다음 적용하고자 하는 필터를 명시한다.

2020년 6월 3일
·
0개의 댓글
·

[Django] MTV 패턴

장고는 MVC(Model-View-Controller)를 기반으로 한 프레임워크다. 하지만 장고에서는 같은 개념을 MTV(Model - Template - View)라고 부른다. 참고로 MVC패턴은 데이터(model), 사용자 인터페이스(view), 데이터 처리 로직(controller)을 구분해 한 요소가 다른 요소들에게 영향을 주지 않도록 설계하는 방식인데, 장고도 기본적으로 이 방식을 따르며 명칭이 조금 다를 뿐이다. 1. Model 모델은 데이터베이스에 저장되는 데이터를 의미한다. excel과 같은 표의 형태로 정리하여 데이터베이스에 넣는다고 생각하면 된다. 원래 DB를 다루기 위해서는 SQL이라는 언어를 알아야하지만, 장고는 이 SQL을 몰라도 DB 작업을 가능하게 해주는 ORM을 제공하기 때문에 공부할 내용이 훨씬 적다. > ORM이란? > > Object-Relational Mapping의 약자로, SQL이라는 언어 대

2020년 6월 3일
·
0개의 댓글
·

Django로 Hello World 웹사이트 만들기

1. project 생성 가상환경이 켜진 상태에서 helloworld 라는 프로젝트 폴더를 생성한다. 터미널 경로를 생성된 프로젝트 폴더로 이동한다. 2. app 생성 manage.py 파일이 있는 프로젝트 폴더 내에 print 앱 폴더를 생성한다. 3. project 와 app 연결하기 app을 만들었지만 project는 그 app의 존재를 아직 모른다. 그래서 app을 만들었다고 등록해주는 절차가 필요하다. helloworld/settings.py 수정 settings.py 파일에 INSTALLED_APPS 영역에 print.apps.printConfig 을 추가해준다. print/apps.py 파일을 열어보면 printConfig 라는 클래스가 정의되어 있는데, 그것을 등록해주는 절차이다. 4. Template 만들기 template은 유저가 보는 화면이라 생각하면

2020년 6월 1일
·
0개의 댓글
·

Django는 어떻게 작동할까?

web_flow 한 html 파일을 웹 서버에 띄우기 위해서, django는 어떤 일을 할까? 웹서버에 HELLO WORLD 를 출력하는 가장 간단한 장고 프로젝트를 통해 장고 내에서 html 파일, 즉 정보들이 어떻게 처리되는지 알아보자. 1. Django 프로젝트 시작하기 가상환경이 켜진 상태에서 아래 명령어를 입력해 프로젝트 폴더를 만든다. 프로젝트 이름을 helloworld 라고 했다고 가정하자. 그러면 helloworld 라는 폴더가 생기고, 그 안에 또 helloworld 폴더와 manage.py 파일이 생성된다. 같은 이름의 폴더가 두 개여서 헷갈릴 수 있으니 상위폴더 이름을 helloworld_project 같은 식으로 바꿔주는

2020년 6월 1일
·
0개의 댓글
·
post-thumbnail

가상환경에 Django 설치하기

1. 기본환경 세팅 git 설치하기 python 설치하기 잘 설치되었으면 설치된 버전이 뜬다. 2. 가상환경 생성 및 실행 > Django개발을 할때는 묻지도따지지도말고 가상환경부터 키고 시작한다. 2.1. 생성 제일 마지막에는 사용할 가상환경 이름을 적어주면 되는데, 보통 myvenv 같은 네이밍을 사용한다고 한다. 작업 폴더안에 myvenv 라는 폴더가 생겼으면 성공. 2.2. 실행 source 대신 . 을 입력해도 된다. 가상환경을 실행한다고 크게 달라지는 건 없다. 터미널 명령어 줄 위에 (myvenv) 라는 게 생겼으면 가상환경이 실행 중이라는 뜻이다. 2.3. 종료 근데 그냥 터미널 혹은 vscode를 꺼도 종료된다. 3. Django 설치하기 꼭

2020년 6월 1일
·
0개의 댓글
·