분류 전체보기 (103) 썸네일형 리스트형 [TIL 2024. 05. 07] 멀티스레딩과 멀티프로세싱 멀티프로세싱: 크롬탭을 여러개 띄워두고 사용각 크롬탭은 별도의 프로세스에서 실행됨→ 어느 하나의 탭에서 문제가 발생해도 다른 탭에 영향이 없음멀티스레딩: 하나의 크롬탭 내에서 여러가지 작업 처리쇼핑(검색)다운로드동영상 재생페이지 스크롤,클릭멀티스레딩과 멀티프로세싱은 동시에 여러 작업을 처리하는 방식이지만, 그 구현 방식과 특징에는 차이가 있다.멀티스레딩(Multithreading):멀티스레딩은 하나의 프로세스 내에서 여러 개의 스레드를 생성하여 동시에 여러 작업을 처리하는 방식이다.스레드 간 데이터를 공유할 수 있으므로, 자원 공유가 용이하고 메모리 공간 및 시스템 자원을 적게 사용한다. (자원사용에 효율성)작업이 독립적이지 않은 경우에는 여러 스레드 간의 동기화 문제가 발생할 수 있다.한 스레드에서 발.. [TIL 2024. 05. 03] 심화 팀프로젝트 심화 프로젝트인 뉴스 웹 페이지의 기본기능 중에 댓글 조회,생성,수정,삭제를 맡게 되었다.댓글 생성기본적으로 댓글과 관련해서는 Comments라는 model을 작성했고, 직렬화를 위해서 serializer도 작성했다. 하지만 아주 아주 많은 기능을 제공해주는 django의 serializer에만 의존해서 코드를 작성하는 것은 장기적으로 봤을 때 다른 언어를 배워서 사용하고, 그 언어들의 serializer를 쓰게 될 때에 도움이 되지 않을 것 같아서 "직렬화"만 serializer를 쓰고, 기본적인 로직은 모두 view로 차근차근 작성해보기로 했다. 처음 작성한 model, serializer, view는 다음과 같다. 이 문제 해결의 실마리는 user와 article정보가 request로 제공.. [TIL 2024. 05. 02] 웹 서버 | 웹 애플리케이션 서버 모의면접을 준비하면서도 헷갈렸던 웹 서버와 웹 애플리케이션 서버에 대해서 정리해본다. 웹 서버(Web Server)정적 컨텐츠를 제공 -> WAS를 거치지 않고, 바로 요청한 컨텐츠를 제공할 수 있다동적인 컨텐츠의 제공을 위한 요청을 전달하기도 함마치 우리가 주기억장치에서 데이터를 가져오는 것의 비효율성을 극복하기 위해 캐시메모리를 쓰는 것과 유사한 원리이다. 즉, 사용자와의 상호작용이 필요하지 않고, 모든 사용자에게 동일한 데이터를 반환하면 될 때는 굳이 DB까지 hit하지 않고, 앞단에 위치하는 웹 서버 차원에서 바로 요청에 대한 결과를 반환해주는 것이다. 웹 애플리케이션 서버(WAS: Web Application Server)클라이언트의 요청에 따라 동적인 컨텐츠를 제공하는 서버(프로그램)정적 컨.. [TIL 2024. 05. 01] DRF 개인과제 오류수정(2) [TIL 2024. 04. 30] DRF 개인과제 오류수정이번 drf개인과제에서는 simplejwt를 auth에 사용하고 있다. 그런데 로그아웃 코드를 작성했는데, 계속 오류가 발생했다.당시에 작성한 코드는 다음과 같았다. "logout/" url경로로 들어오면 프로젝oneday180.tistory.com 이 글은 위의 글과 이어진다. 위 글에서는 TokenBlacklistView로 로그아웃을 구현하고, 오류를 해결했다고 작성했었는데 위 TIL을 작성한 이후에 로그아웃 뷰에 대해 코드수정을 진행했다. 추가적으로 코드를 수정한 이유는 다음과 같다.로그아웃이란 로그인을 전제로 하는 것인데, access token을 req header를 통해 전달하지 않아도 로그아웃이 실행되는 점은 오류가 아닌가?로그아웃이.. [TIL 2024. 04. 30] DRF 개인과제 오류수정 이번 drf개인과제에서는 simplejwt를 auth에 사용하고 있다. 그런데 로그아웃 코드를 작성했는데, 계속 오류가 발생했다.당시에 작성한 코드는 다음과 같았다. "logout/" url경로로 들어오면 프로젝트 폴더의 urls.py를 거쳐("api/accounts") 로그아웃 뷰가 처리된다.즉, "/api/accounts/logout/"경로이다. 가장 이해가 안됐던 것은 LogoutAPIView 클래스도 post()로만 작성한 상태였는데(분기 처리도 없이), 왜 POST요청이 Allow되지 않는다는 오류메시지가 뜨는가였다. 이 문제를 해결하기 위해 내가 시도해본 해결방법은 다음과 같다. 1. postman의 url을 확인 RESTful API를 개발하고 있기 때문에 FE단을 만들지 않으므로, 개발단.. [TIL 2024. 04. 29] 모의면접 회고록 오늘은 지난 금요일에 있었던 개인 모의면접 회고를 작성해볼까 한다. 우선 민준 튜터님은 블로그와 깃허브 주소를 제출해달라고 하셨다..ㅎㅎ [받은 질문들]1. Decorator에 대해 설명해주세요2. Class에 대해 알고 있는 것들을 설명해주세요3. 블로그에 RESTful API에 대해 작성하셨는데, 이에 대해 설명해주세요4. 깃허브에 올린 프로젝트의 CRUD를 어떻게 구현했는지 Method를 기준으로 설명해주세요5. 절차지향 프로그래밍과 객체지향 프로그래밍을 비교해서 설명해주세요6. MTV구조에 대해 설명해주세요7. 장고에서 app을 나누는 기준에 대해 본인 생각을 말씀해주세요 일단 대답 자체를 아예 못하거나 한 경우는 없었다.하지만 말이 다소간 두서 없이 정리되지 않은 느낌이 있어서 이와 관련한 보완.. [TIL 2024. 04. 26] 파이썬이 느린 이유 | 데코레이터 | 파이썬 메모리 관리 파이썬이 느린 기술적 이유 파이썬이 다른 언어에 비해 느리다는 것은 사실이라고 생각한다.비록 아주 짧은 시간의 차이이므로 우리가 체감하기는 어렵지만, 파이썬이라는 언어의 특성을 생각해보면 조금 느린 언어일 수밖에 없기 떄문이다인터프리터 언어 + 동적 타입 언어+PYTHON_GIL(메커니즘)Python의 GIL(Global Interpreter Lock): 한 번에 하나의 스레드만 (Python 바이트)코드를 실행하도록 보장하는 메커니즘 → “파이썬 프로그램은 특정 시점에 오직 하나의 스레드만 실행된다” → 멀티 스레드가 싱글 스레드처럼 기능함(성능병목 현상)하나의 스레드만 파이썬 인터프리터를 제어할 수 있도록 하는 뮤텍스멀티스레딩 환경에서의 동시성 문제(경쟁,데드락, 데이터 일관성)를 해결하는 간단한 방.. [TIL 2024. 04. 25] Python GIL | 메모리 관리 Python의 GIL(Global Interpreter Lock) 파이썬 인터프리터가 한 번에 하나의 스레드만 파이썬 바이트코드를 실행하도록 제어하는 메커니즘멀티스레드 환경에서 동시에 여러 개의 CPU 코어를 활용하는 것을 제한하는데 사용GIL은 다음과 같은 문제를 발생시킬 수 있다성능 제한:GIL로 인해 파이썬 스레드는 하나의 CPU 코어에서만 실행되므로// 멀티코어 시스템에서 CPU 사용률을 최적화할 수 없다(=멀티코어 활용의 제한=멀티코어에서 병렬처리가 제한됨). → (특히)CPU 집약적인 작업을 수행하는 다중 스레드 응용 프로그램의 성능이 크게 저하될 수 있다.스레드 간 경쟁: GIL로 인해 파이썬 스레드는 CPU 자원에 대한 경쟁을 경험하게 된다. 이로 인해 스레드 간의 경쟁이 발생할 수 있고,.. 이전 1 2 3 4 5 6 7 ··· 13 다음