본문 바로가기

개발

(48)
[Django] DRF(장고 rest framework)와 REST API App application을 개발할때 우리는 REST API를 이용해 데이터를 교환한다. REST API란? 1. 일반적으로... 서버와 클라이언트사이 데이터 교환시 우리는 HTTP프로토콜을 이용하여 데이터를 교환한다. REST API(Representational State Transper)는 HTTP를 동사는 그대로 사용하면서 더 명시적으로 Client와 Server사이의 데이터 교환을 하기위해 고안된 디자인 Guide이다. (북유럽풍, 한국식, 일본식 이런 스타일!!!) 2. REST 구성 자원(RESOURCE) - URI 행위(Verb) - HTTP METHOD 표현(Representations) 3. REST 특징 1) Uniform (유니폼 인터페이스) Uniform Interface는 UR..
[파이썬] Python coding convention (파이썬 코딩 컨벤션) Python coding convention 파이썬 코딩 컨벤션은 파이썬을 코딩할 때 사용하는 일종의 올바른 스타일 관례라고 할 수 있다. 세살 버릇 여든간다고 초반에 잘못 잡아 놓은 코딩 버릇은 시간이 지날 수록 바꾸기 어려울 것이다. 현업에 들어가기전 주요 파이썬 코딩컨벤션을 살펴보며 올바른 파이썬 코딩 스타일을 가질 수 있도록 해야겠다. PEP8 PEP8은 파이썬의 코딩 스타일 가이드이다. 여기서 PEP는 파이썬의 개발은 파이썬 개선 제안서(Python Enhancement Proposal)의 줄인 말이다. PEP 프로세스는 새로운 기능을 제안하고 커뮤니티의 의견을 수렴하여 파이썬의 디자인을 결정을 문서화하는 파이썬의 주요 개발 프로세스를 말한다. Style Guide for Python Code ..
[Git] 커밋 메세지 작성 규칙들 좋은 커밋 메시지 작성하기 위한 규칙들 코드를 작성하면서 어려운것들중 하나는 이름을 어떻게 짓는지에 대한 고민 바로`Naming` 일 것입니다. 클래스, 함수, 변수 등등 많은 이름을 고민하지만 그 중 하나인 커밋 메시지를 어떻게 작성하여야 좋은 커밋 메시지일지에 대하여 알아보도록 하겠습니다. 커밋 메시지의 7가지 규칙 1. 제목과 본문을 빈 행으로 구분한다 2. 제목을 50글자 내로 제한 3. 제목 첫 글자는 대문자로 작성 4. 제목 끝에 마침표 넣지 않기 5. 제목은 명령문으로 사용하며 과거형을 사용하지 않는다 6. 본문의 각 행은 72글자 내로 제한 7. 어떻게 보다는 무엇과 왜를 설명한다 커밋 메시지 구조 헤더는 필수이며, 범위(scope), 본문(body), 바닥글(footer)은 선택사항입니다..
리눅스 ssh-keygen 발급 ssh-keygen 입력 cd ~/.ssh/ 이동 cat id_rsa.pub 입력 ssh-rsa 부터 ~~~ ~~~~ ~~~~~~~~~ aaa@~~~~ 까지 복사 후 사용
파이썬 효율적 메모리 관리하기 파이썬의 메모리 관리 파이썬의 좋은 점은 파이썬의 모든 것이 객체라는 것 객체가 더 이상 필요하지 않으면 Python 메모리 관리자가 자동으로 객체에서 메모리를 회수 = 동적 메모리 할당이 파이썬 메모리 관리의 기초 Python 메모리 관리자는 Python의 메모리 할당을 관리 모든 파이썬 객체와 데이터 구조를 포함하는 개인 힙이 있습니다. Python 메모리 관리자에는 객체 별 할당자가있어 int, string 등과 같은 특정 객체에 대해 메모리를 명확하게 할당 그 아래에서 원시 메모리 할당자는 운영 체제의 메모리 관리자와 상호 작용하여 개인 힙에 공간이 있는지 확인 Python 메모리 관리자는 "블록"이라는 메모리 청크를 관리합니다. 동일한 크기의 블록 모음이 "풀"을 구성 풀은 힙 = 64 풀에 할..
Django 주소 뒤에 슬래쉬 붙이거나 없애기 Django 프레임웍에서 APPEND_SLASH 옵션에 대한 사용법입니다. Django 에서는 urls.py 에 url 패턴을 정의하는데요. 리퀘스트가 들어오는 url 이 urls.py 에 정의되어 있지 않을 경우 주소 뒤에 슬래쉬를 붙여서 리다이렉트를 시킵니다. 예를 들어 /blog/list 로 접속을 했을 경우 urls.py 에 ('^blog/list/$', home_blog.list), 이렇게 blog/list/ 만 정의가 되어 있으므로 Django 는 요청된 url 이 없다고 판단하고 뒤에 슬래쉬를 붙여서 /blog/list/ 로 정의된 url 이 있는지 찾습니다. 위의 경우는 blog/list/ 가 정의되어 있으므로 blog/list/ 로 리다이렉트가 되어서 성공적으로 접속이 됩니다. 이게 문제..
[Django] Error: That port is already in use. - 해결 방법 이럴 경우 port 8000과 관련된 모든 프로세스를 죽이고 다시 실행시키면 된다. Mac에서는 터미널에서 "sudo lsof -t -i tcp:8000 | xargs kill -9"를 입력하면 된다.
웹 저장소 비교: 세션 스토리지, 로컬 스토리지, 쿠키의 차이점과 활용 방법 1. 로컬 스토리지 window.localStorage 에 위치 값으로는 문자열, 불린, 숫자, null, undefined 모두 저장할 수 있지만 문자열로 변환됨 localStorage.setItem('key', 'value) // 로 저장 localStorage.getItem('key') // 로 조회 localStorage.removeItem('key') // 해당 키 삭제 localStorage.clear() // 스토리지 전체 삭제 [object 생성자] 형으로 저장된다. 한번에 통째로 저장하려면 JSON.stringify() 해야함 받을때는 JSON.parse() ​ 데이터를 지우기 전까진 영구적으로 계속 저장되어 있음!! 최대 5MB의 정보를 저장할 수 있다. ​ 2. 세션 스토리지 wind..
레디스(Redis) 소개: 기능, 사용처 및 핵심 개념 이해하기 인메모리 데이터 저장소 Redis 개발을 하다보면 트랜잭션이 많이 발생하는 화면에서 느껴지는 느림(?) 같은 것을 느끼곤 했다. 자주사용되는 하지만 세션에 담고 있기에는 뭔가 모호한 것들을 조회하기 위해 DB를 몇번이나 갔다와야 하니.. 어떻게 하면 속도를 줄일 수 있을지 고민했다. 처음에는 한방에 union all로 가져와? 같은 .. 별로인 생각도 해봤는데 검색하다 보니 redis라는 캐시? 데이터베이스?의 존재를 알게 되었다. 쭉 찾아보니 꽤나 유용한 기술이라고 생각되고 실제로 유명한 곳에서 많이 사용되고 있음을 알고 한번 정리해 보려고 한다. 소개 redis의 어원 redis는 단어의 의미에서 보면 외부에 key-value를 저장하는 서버를 말한다. redis.io 에는 다음과 같이 redis를 ..
gitignore 변경사항 반영하기 git rm -r --cached .
Mysql 인덱스(index) DB의 테이블을 읽어들이는 방식은 크게 Full-Scan과 Range-Scan으로 나뉩니다. Full-Scan은 테이블에 포함된 모든 레코드를 처음부터 끝까지 읽는 방식이고,Range-Scan은 테이블의 일부 레코드에만 접근하는 방식입니다. 이 두 가지 방식 중에 Range-Scan을 할 때 인덱스를 이용하면 성능을 향상시키는데 도움이 됩니다. 인덱스 그렇다면 인덱스는 무엇일까요? 인덱스는 책의 목차, 단어장 뒤에 있는 색인과 같이 테이블에 한 열을 이용해 특정 알고리즘을 이용해 따로 정리하여 데이터를 SELECT 할 때 빠르게 조회할 수 있도록 도움을 주는 기능입니다. 인덱스 자료구조 인덱스의 자료구조는 가장 많이 쓰이는 B-Tree방식이 있고 그 이외에 hash, Fractal-tree 방식도 있습니..
주소창에 URL을 치면 일어나는 일들 ⚡️ 브라우저 주소창에 URL을 치면 일어나는 일들 2021년 10월 10일, #network 최근에 컴퓨터 네트워크 공부를 다시 하면서 “브라우저 주소창에 URL을 치면 일어나는 일을 아는대로 말 하기”라는 웹 개발자 면접 단골 질문에 대해 다시 생각해보게 되었습니다. 해당 질문을 면접에서 받았을 때 어느정도 깊이로 말하는게 좋을까 생각하면서 브라우저가 웹 화면을 띄우는 과정들을 자세하게, 이야기하기 좋게 정리해 봤습니다. 몇몇 프론트엔드 기술 면접 독스에 있는 내용보다 살짝 매운맛이다-라고 생각하고 보시면 좋을 것 같습니다. 더 자세하게 정리합니다. 패킷의 길고도 짧은 여행 어떻게 클라이언트의 HTTP 요청 메시지가 서버에 전송되고, 이걸 받은 서버의 HTTP 응답 메시지가 클라이언트에 전송되는지, ..
(9) (Django 개발부터 배포까지) Django 사이트 도메인 연결(호스팅케이알) 배포한 장고사이트에 도메인 연결 해볼게요~ 먼저 도메인이 있어야합니다. 무료 도메인이 있긴하지만 별로 추천 드리진 않습니다. 호스팅케이알, 가비아 등등 도메인 판매 하시 사이트에서 할인을 많이 해주는 도메인 또는 마음에드는 도메인을 구매해주세요 저는 호스팅케이알에서 900원에 구매해서 적용해볼게요 https://www.hosting.kr/ 글로벌 IT 파트너 - 호스팅케이알(HK) KISA 고객만족도 최다 선정, 도메인 최저가 제공, 기업/공공도메인, 도메인연결/웹호스팅 무료, 서버, 아마존클라우드(AWS), G Suite, 홈페이지제작 1644-7378 www.hosting.kr test-sim.xyz 도메인을 구매해서 연결 ㄱㄱㄱ 구매 하셨다면 도메인 관리 클릭 적용할 도메인 클릭 DNS 레코드 관리..
(8) (Django 개발부터 배포까지) Django AWS, Docker(Nginx+gunicorn)로 배포하기 -2- 이번 포스팅은 전 포스팅에서 만들어둔 EC2 인스턴스에 우리가 작성한 코드를 올려 배포해 볼게 주로 윈도우 환경에서는 Putty(SSH) + 파일질라(SFTP) 프로그램을 사용해서 배포를 많이 하시죠 프로그램 두개를 쓰다보니 저는 좀 별로 더라구요 그래서 제가 정말 유용하게 쓰고있는 프로그램도 하나 소개 해들게용 바로 MobaXterm 입니다. 푸티보다 사용하기도 편하고 보기도 좋고 SSH+SFTP를 같이쓸수있어서 진짜 편합니다 굳굳 MobaXterm사용해서 배포 진행해볼게여~ 다운로드 https://moba.softonic.kr/ MobaXterm X 서버 및 Unix 명령 세트가있는 향상된 터미널 moba.softonic.kr MobaXterm실행 초기화면 Remote Host - 탄력적IP 입력 U..
(7) (Django 개발부터 배포까지) Django AWS, Docker(Nginx+gunicorn)로 배포하기 -1- 안녕하세요~ 오래만에 글을 쓰네요 제가 했던 방식을 최대한 쉽게 하려고 저도 공부를 많이 하다보니 글써야지..써야지 하면서 늦어졌네요 설명에 대한 부분은 저도 아직 누구에게 잘 설명 할 수 없는 수준이라 잘못된 정보를 전달 할 수 도있기에 최대한 간단하게 하겠습니다 설명이 부족해 궁금하신 부분은 검색하셔서 공부하시면서 적용하면 될 것 같습니다. --------------------------------------------------------------------------------------------------------------------------------- 먼저 EC2 검색해서 들어가줍니다 인스턴스 시작 클릭 프리티어 사용 가능한 ubuntu 다음 클릭~ 여기 까진 딱히 설정할게 없으니 ..
Django ORM model 정리 CharField 문자열을 저장하는 필드로 max_length로 최대 길이를 제한할 수 있다. 더 큰 문자열을 다룰 경우 TextField를 사용한다. DateField datetime.date를 저장하는 필드이다. auto_now=True를 인자로 추가하면 Model.save로 저장할 때마다 현재 시간으로 갱신된다(QuerySet.update로는 갱신되지 않는다). updated_at 필드에 주로 사용한다. auto_now_add=True를 인자로 추가하면 처음 객체가 생성될 때 현재 시간으로 설정된다. 주로 created_at 필드에 사용한다. 위 두 인자를 사용하면 editable=False, blank=True로 설정된다. DateTimeField datetime을 저장하는 필드로 인자의 사용방법..
Django 템플릿에서 newline 을 br 태그로 변경 newline 캐릭터를 무조건 br 태그로 변경 {{item.content | linebreaksbr}} newline 캐릭터 다음에 빈 라인이 하나 더 올 경우 p 태그로 감싸기 {{item.content | linebreaksbr}}
Django 마이그레이션 자주 쓰는 명령어 python manage.py makemigrations python manage.py migrate python manage.py migrate "앱 이름" ---------------------------------------------- **** 마이그레이션 잘 안될때 **** python manage.py migrate --fake "앱 이름" python manage.py migrate --fake "앱 이름" zero
[파이썬] 코딩테스트용 문법 정리 자료형 수 자료형 정수형 실수형 #소수부가 0일 때 0을 생략 a = 5. # 5.0 # 10억의 지수 표현 방식 (최단 경로문제에서 자주 사용) a = 1e9 # 100000000.0 # 컴퓨터는 2진수 체계이기 때문에 실수 덧셈을 정확히 하지 못한다. 보통 5째 자리에서 반올림 하면된다. a = 0.3 + 0.6 print(rount(a,4)) 수 자료형의 연산 a = 7 b = 3 # 나누기 a / b # 나머지 a % b # 몫 a // b # 거듭 연산자 a ** b # a의 b승 리스트 자료형 리스트 초기화 a = [1,2,3,4,5,6,7,8,9] print(a) print(a[4]) # 빈 리스트 선언 방법 a = list() a = [] # 크기가 N이고 모든 값이 0인 1차원 리스트 초..
html input태그 모바일에서 숫자만 입력되게 하기 type을 number로 지정할 경우 숫자 입력시 3자이상 입력할 수 없음 ios에서 input 태그 클릭시 화면