일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- django widget
- CSS
- PYTHON
- 알고리즘 풀이
- 알고리즘
- 장고
- MAC
- es6
- Baekjoon
- javascript
- Algorithm
- Git
- API
- django ORM
- 백준
- HTML
- 알고리즘 문제
- java
- form
- DRF
- 파이썬
- web
- react
- c++
- 알고리즘 연습
- 파이썬 알고리즘
- AWS
- django rest framework
- js
- Django
- Today
- Total
목록분류 전체보기 (341)
수학과의 좌충우돌 프로그래밍
클라이언트와 서버는 서로 요청과 응답을 주고 받습니다. 이 때 클라이언트는 요청 메서드, request method를 통해 요청의 목적이나 종류를 알리게 됩니다. 이번 포스팅에서는 각각의 HTTP 요청 메서드들을 비교하고 정리해보도록 하겠습니다. HTTP 요청 메서드 각 HTTP 요청 메서드와 특징들을 표로 정리하였습니다. detail request body successful response body safe idempotent cachable allow in HTML forms GET 리소스 요청 NO YES YES YES YES YES HEAD GET 메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함 X NO NO YES YES YES NO POST 내용 전송 YES YES NO NO N..
클라이언트와 서버가 요청과 응답을 주고 받을 때 서버는 응답의 결과가 어떨지 알려줘야 합니다. 결과의 내용을 response body에 상세하게 적어줄 수도 있지만 다양하게 발생하는 에러에 이를 다 적는 것은 적지 않은 시간이 소요될 뿐 아니라 다양한 서버 개발자가 함께 작업하다보면 메세지의 포멧이 다양해져 클라이언트와의 소통에 문제가 생길 수 있습니다. 그렇기 때문에 세자리 숫자로 결과가 어떨지에 대한 표준 약속을 정하고 이를 HTTP 상태코드 라고 합니다. 상태코드의 첫번째 자리는 1~5가 위치하며 이를 통해 크게 범주를 나눌 수 있습니다. 1 : 정보응답 요청을 받았으며 프로세스를 계속 진행합니다. 2 : 성공 요청을 성공적으로 받았습니다. 3 : 리다이렉션 요청을 완료하기 위해 추가 작업이 필요합..
Spanning multi-valued relationships 에 대해서 설명하기 전에 어쩌다가 해당 문제에 부딪혔는지 설명을 우선적으로 하도록 하겠습니다. 배경 설명 이번 예시에서 사용할 모델은 3개입니다. 실제로는 필드 수가 훨씬 많지만 원활한 이해를 이해 필드를 많이 줄여 적절한 예시를 만들어 보았습니다. class Sutra(models.Model): name_kor = models.CharField(max_length=255, null=True, blank=True) description = models.TextField(blank=True, null=True) def __str__(self): return self.name_kor class Evaluation(models.Model): RE..
서버 아키텍쳐를 공부하던 중에 비슷한 두 개의 개념을 접하게 되었습니다. 리버스 프록시와 로드 밸런서. 얼핏 봐서는 두 개념이 비슷해보이고 명확하게 구분이 안되서 각각에 대해서 정리하고 두 개의 차이점을 알아보도록 하겠습니다. Reverse Proxy 우선 Reverse Proxy 부터 알아보도록 합시다. Proxy의 뜻은 대리로서 이 경우 서버와 클라이언트 사이의 대리자 역할을 말합니다. 이후 포스팅에서 다루겠지만 여러 클라이언트에 대한 proxy를 Forward Proxy 라고 하고 여러 서버에 대한 proxy를 Reverse Proxy라고 합니다. 위 그림은 Reverse Proxy에 대한 그림으로서 사용자의 요청을 Reverse Proxy가 받아들이고 이를 서버에서 대리합니다. Reverse Pr..
이번 포스팅에서는 동기와 비동기, 블로킹과 논블로킹에 대해서 알아보도록 하겠습니다. 네 단어 모두 익숙하지만 명확하게 설명할 수 없고 이해가 부족하다는 생각이 들어서 정리해보았습니다. Synchoronous VS Asynchoronous, Blocking VS Non-blocking 각 개념을 설명하는데 아래의 그림이 가장 일반적입니다. 4가지로 나눠서 하나씩 알아보도록 하겠습니다. Synchoronous-Blocking 가장 일반적인 상황입니다. Application은 Kernel에 System call을 하고 응답이 올 때 까지 기다리게 됩니다. (Synchoronous) 그리고 Kernel은 I/O 작업을 다 한 후에 Application에 응답을 보냅니다. (Blocking) 그렇기 때문에 App..
최근에 진행중인 프로젝트에서 테스트 서버와 프로덕트 서버를 분리하고 있습니다. 그 과정에서 테스트 서버의 DB와 프로덕트 서버의 DB도 각각 존재해야했죠. 기존에 사용하던 DB는 AWS RDS MySQL이었고 이를 프로덕트 서버의 DB로 사용하고자 하였습니다. 테스트 서버의 DB는 마찬가지로 AWS RDS MySQL로 새로 만들어서 데이터를 migration하고자 하였습니다. 이 과정들과 그 과정 속에서 발생한 문제점들을 정리해보았습니다. DB Dump 여러 방법이 있겠지만 dump를 하는 방법으로 방향을 잡았습니다. dump란 현재 데이터를 insert query로 바꿔서 저장하는 방법입니다. insert query로 치환되기 때문에 DBMS나 기타 버전 문제애도 크게 영향을 받지 않는다는 장점이 있습..
데이터베이스를 알아보기 전에 파일처리 시스템을 비교해보도록 합시다. 데이터베이스가 등장하기 전에는 그 역할을 파일처리 시스템이 담당하였고 그 문제점으로 인해 데이터베이스가 등장하게 되었습니다. 둘의 차이를 알아보며 데이터베이스는 어떤 아이인지 알아가겠습니다. 엄밀하게는 데이터베이스와 파일처리 시스템을 비교하는 것이 아닌 DBMS와 파일처리 시스템을 비교해야 하지만 편의를 위해 다음과 같이 표기하였습니다. DBMS VS 파일처리 시스템 우선 일곱 가지 항목에 대해서 표로 간단하게 살펴봅시다. 파일시스템 데이터베이스 구조 특정한 구조가 존재 X table 형태로 저장 접근 방식 순차적 접근만 가능 비순차적 접근도 가능 중복 O 비교적 덜 발생 불일치 O 비교적 덜 존재 트랜잭션 X 존재 다중 사용자의 접속 ..
파이썬에서 멀티스레드를 사용하려고 한다면 GIL이란 단어를 마주치게 됩니다. GIL이 무엇인지 파이썬은 왜 GIL을 가지고 있는지 이번 포스팅을 통해 이해해보도록 합시다. Python으로 멀티스레딩 GIL이 무엇인지 설명 하기 전에 python으로 멀티 스레딩과 일반적인 경우의 시간을 비교해보겠습니다. 시간을 측정하기 전, 현재 테스트 중인 환경을 알아봅시다. 프로세서 : 2.3 GHz 듀얼 코어 Intel Core i5 >> sysctl hw.physicalcpu hw.logicalcpu hw.physicalcpu: 2 hw.logicalcpu: 4 MacOS의 하이퍼스레딩이란? 하이퍼 스레딩이란? 랜덤으로 생성한 배열에서 최대값을 찾는 간단한 연산을 두 가지 방법으로 구현해보았습니다. 하나의 스레드가..
CPU에는 코어라는 개념이 존재합니다. 코어는 각종 연산을 하는 CPU의 핵심요소를 말하며 다들 싱글코어, 멀티코어 등의 단어는 익숙하실겁니다. 현재 사용중인 MacOS는 코어를 몇 개 사용할까 확인해보기 위해서 이를 확인해보았습니다. >> sysctl hw.physicalcpu hw.logicalcpu hw.physicalcpu: 2 hw.logicalcpu: 4 특이하게도 물리적코어와 논리적코어의 수가 달랐고 이에 대해 알아보다가 하이퍼 스레딩이라는 개념을 접하였습니다. 이번 포스팅에서는 하이퍼 스레딩이 무엇인지 알아보도록 하겠습니다. 하이퍼 스레딩이란? 하이퍼 스레딩이란 인텔이 구현한 동시 멀티스레딩 기술로 영어로 Hyper-Threading, HT라고도 합니다. 물리적 실행 장치 한 개에 가상 실..
아는 지인들이 운영하고 있는 팟캐스트에 참여했습니다! http://www.podbbang.com/ch/1772616 byebug - 우리들의 개발 이야기 힙스터 개발자 영슨, 모범생 개발자 마루, TMI 개발자 원노와 함께 스타트업, 개발자들에 대한 우리들의 개발 이야기를 합니다. www.podbbang.com 팟캐스트 채널에 대해서 간단히 소개를 하자면 힙스터 개발자 영슨, 모범생 개발자 마루, TMI 개발자 원노 세 명의 개성 넘치는 개발자들과 함께 개발과 관련된 여러 소식을 들을 수 있는 유익한 채널입니다. 최신 이슈들이나 공부법, 스타트업 이야기 등 재미난 이야기도 많이 있으니 한 번 들어보시는 걸 추천드립니다. 그러면 다들 관심 없으시겠지만! 제가 출연한 #025 [세나개] 추월보다 초월을 꿈꾸..