no image
[Django] Django로 간단한 게시판 만들기
django를 이용한 간단한 게시판 형식의 웹사이트 만들기! > django-admin startproject tutorial > ./manage.py startapp community > ./manage.py migrate # DB 설정 > ./manage.py createsuperuser # 슈퍼유저 생성 > ./manage.py runserver # 웹 서버 가동 웹 서버 실행 확인 admin 페이지 자동 생성 superuser 설정 시, 입력해준 id, pw 입력 user 관리 가능 DB의 데이터 삭제, 수정, 관리 용이 tutorial/settings.py ... INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django...
2022.01.17
no image
[알고리즘 일기] 154. 곱하기 혹은 더하기
이코테) 그리디 기출문제 02. 곱하기 혹은 더하기 각 자리가 숫자(0부터 9)로만 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'x' 혹은 '+' 연산자를 넣어 결과적으로 만들어질 수 있는 가장 큰 수를 구하는 프로그램을 작성하세요. 단, +보다 x를 먼저 계산하는 일반적인 방식과는 달리, 모든 연산은 왼쪽에서부터 순서대로 이루어진다고 가정합니다. 예를 들어 02984라는 문자열이 주어지면, 만들어질 수 있는 가장 큰 수는 ((((0 + 2) x 9) x 8) x 4) = 576입니다. 또한 만들어질 수 있는 가장 큰 수는 항상 20억 이하의 정수가 되도록 입력이 주어집니다. 입력 조건 첫째 줄에 여러 개의 숫자로 구성된 하나의 문자열 S가 주어집니다..
2022.01.16
no image
[TCP/IP] 라우팅
라우팅 최적의 경로를 선택하고 선택된 경로를 따라 패킷을 전달하는 과정 AS(Autonomous System) : 동일한 관리 도메인에 속하는 네트워크나 라우터의 집합 관리의 용이성과 효율성을 위함 내부 게이트웨이 프로토콜 IGP(Interior Gateway Protocol) RIP(Routing Informaion Protocol) IGRP(Interior Gateway Routing Protocol) EIGRP(Enhanced Interior Gateway Routing Protocol) OSPF(Open Shortest Path First) 외부 게이트웨이 프로토콜 EGP(Exterior Gateway Protocol) BGP(Border Gateway Protocol) 라우팅 알고리즘 정적 라우..
2022.01.14
[TCP/IP] 멀티캐스팅
멀티캐스트 유니캐스트 : 일대일 송신 브로드캐스트 : 전체 호스트에 송신 멀티캐스트 : 특정 호스트들에 송신 멀티캐스팅의 경우 데이터 패킷을 하나만 전송해도 중간에 있는 라우터들이 이를 복사하여 전송한다. 따라서 중간에 있는 패킷라인에서 대역폭을 소비하지 않는다. 멀티캐스트의 기본 요소 호스트 그룹의 정의 멀티캐스트 패킷을 수신하는 호스트들의 집합 그룹 관리 그룹관리 매커니즘(IGMP)를 이용하여 관리 라우팅 경로의 설정 전송에 있어서의 최적의 경로를 설정 멀티캐스트 주소 클래스 D 주소 사용 MAC 주소 변환 상위 25비트를 이미 정해진 코드로 지정 이후 뒤의 23비트를 IP 주소의 하위 23비트로 지정 IGMP 포맷 타입 최대 응답 시간 체크섬 그룹 주소 IGMP 동작 그룹 가입 멤버쉽 감시 멤버쉽 응답
2022.01.14
no image
[TCP/IP] IP 주소 관련 프로토콜 ICMP
ICMP(Internet Control Message Protocol) 오류에 관한 보고 기능 및 네트워크 상태 진단 기능을 통해 IP를 보조하는 기능 수행 IP 패킷이 정상적으로 목적지에 전달되지 못할 경우 원하는 서비스 포트가 존재하지 않는 경우 오류 보고 메시지 : 라우터나 호스트에서 IP 패킷을 전달할 때 문제가 발생하였을 경우 사용 네트워크 진단 기능 : 라우터나 네트워크에 대한 정보를 얻고자 할 때 사용 IP 헤더의 프로토콜 필드값을 1로 설정하여 캡슐화 메시지 타입 필드 : ICMP 메시지 종류 기술 코드 필드 : 메시지 타입에 따라 세분화할 필요 시 사용 체크섬 필드 : ICMP 메시지에 대한 체크섬 메시지 의존 필드 : 메시지 타입에 따라 추가적인 헤더 정보 포함 가능 메시지 정보 필드 ..
2022.01.14
no image
[Django] Django 기초 개념
MVC & MVT M : Model (데이터) V : View (유저에게 보여줌) C : Control / T : Template ( 사용자의 입력과 이벤트에 반응하여 모델을 보여줌) 장고는 따로 쿼리를 작성할 필요가 없다. 변수로만 접근 → DB와 소통 1. 프로젝트 생성 # 프로젝트 생성 $ django-admin startproject '프로젝트명' # app 생성 $ ./manage.py startapp 'app명' # 프로젝트 내부에 다수의 app 생성 가능 2. 프로젝트 환경 설정 파일 DEBUG 디버그 모드 설정 배포시에는 디버그 모드 True를 False로 만들어준다. INSTALLED APPS PIP 로 설치한 앱 또는 본인이 만든 APP추가 MIDDLEWARE_CLASSES reques..
2022.01.13
no image
[Linux - Vim] Vim 에디터 사용 편하게 하기 ② (플러그인)
진짜 Vim editor는,,, 혁명이다(ू•‧̫•ू⑅)oh Vim 에디터는 기본적인 vim 설정외에도 플러그인을 설치하면 더욱 편하게 쓸 수 있다. 우선 아래 스크린샷은 내가 설치해둔 플러그인과 설정이다. Vim Editor에 플러그인 설치하기! 1. 터미널 창에 아래 명령어 입력해서 플러그인 설치 환경 구축하기 curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim 2. 홈 디렉터리(~)에서 '.vimrc' 파일에 설치하고 싶은 플러그인 입력 후, command 모드에서 'PlugInstall' 입력하기 (기존에 .vimrc 파일이 없다면 새로 ..
2021.11.29
[Linux - Vim] Vim 에디터 사용 편하게 하기 ① (명령어 정리)
리눅스 vim 명령어 정리 이름 기능 i insert 모드 esc command 모드 h(좌), j(하), k(상), l(우) 명령 모드에서 방향키처럼 사용 shift + i 현재 커서 라인의 맨 앞 a 현재 커서 뒤 입력 shift + a 현재 커서 라인의 맨 뒤 . 방금 한 입력 재실행 r 현재 커서의 문자 하나 대체 $ 파일 맨 끝으로 이동 shift + $ 현재 라인에서 맨 끝으로 이동 ^ 파일 맨 앞으로 이동 shift + ^ 현재 라인에서 맨 앞으로 이동 shift + v 여러 줄 선택 가능 ( v : visual block) y 선택한 코드 복사 yy 현재 라인 1줄 복사 p 복사한 코드 붙여 넣기 shift + insert 외부에서 복사한 내용 붙여넣기 x 문자 하나 지우기 숫자키 + x ..
2021.11.29
no image
[Socket.io] WebSocket 동작 원리(직접 구현)
Reference 더보기 해당 포스팅은 노마드코더의 '줌 클론코딩' 강좌를 보고 공부한 내용을 작성한 포스팅입니다. 줌 클론코딩 – 노마드 코더 Nomad Coders WebSockets, SocketIO, WebRTC nomadcoders.co 구현 예정 기능 실시간 채팅 보내기 / 받기 닉네임 설정 방 설정 채팅 이벤트 HTTP protocol http://... Client - Server request response 과정 Real-Time 은 아니다. request가 이루어져야만 서버는 답하는 형식 응답이 이루어지고 나서 요청 및 응답 데이터는 소멸 WebSocket protocol ws://... 웹 브라우저에만 국한되는 시스템은 아니다. Client - Server 연결뿐만 아니라 Serve..
2021.10.30