본문 바로가기

분류 전체보기71

맥북을 배터리 사이클 630번째까지 사용했다. 회사에서 업무용 컴퓨터로 맥북을 지급받아 5년간 사용하게 되었습니다. 곧 새로운 맥북으로 바꾸게 될 것 같은데 맥북을 사용하면서 느낀 점을 적어보겠습니다. 맥북 정보와 배터리 상태 제가 사용하고 있는 맥북은 MackBook Pro (15-inch, 2016)입니다. 구매 당시에는 상당히 좋은 사양이었고 가격대도 아주 비싼 제품이었지만 현재는 감가가 될 대로 되어버린 중고 제품으로 전락해 버렸죠. 무거운 프로그램을 실행하거나 로컬에서 서버를 돌릴 때 아주 느리게 로딩되는 경우가 잦아지고 있어서 새로운 맥북의 필요성을 느끼게 되었습니다. 이 뿐만 아니라 제 맥북은 나비식 입력 방식이 적용되어 있어서 입력키를 꾸욱 누르면서 타자를 치게 된다면 같은 키가 중복되어 눌러진 것 마냥 연속돼서 나오는 이슈가 계속 생..
마음대로 할 수 있는것 사회 속에서 구성원으로 지내다 보면 자신이 원해서 하는 일을 하기가 어려워지게 된다. 어떤 일을 하더라도 많은 사람의 이해관계가 얽혀있는 일을 맡은 이상 온전히 내 마음대로 하는 건 힘든 게 현실이고 마음대로 할 거면 직접 회사를 차리라는 말이 갑자기 생각나는데 회사를 차려도 과연 마음대로 할 수 있을까?라고 자신에게 되물어 보면 내가 할 대답은 당연히 No다. 오히려 일개 사원 생각해야 하는 부분보다 더 많은 관점에서 생각해야 하고 책임감이 막중하기 때문에 자신의 생각만을 온전히 반영하기는 어려울 것이라 생각된다. 그래서 사회에서의 나는 할 일을 하는 구성원으로서 남겨두고 사회에서 벗어나 있는 동안의 내가 무엇을 하고 싶을지 한번 고민해 보았다. 친한 친구들과 밤새도록 게임을 하거나 대화하기 자연이 있..
Docker Docker Compose file 열어보기 Docker Compose Docker는 하나의 앱당 1개의 DockerImage를 만들어 사용하기를 권장하기 때문에 여러 컨테이너를 실행해야 되는 경우가 발생할 수 있습니다. 이런 경우 컨테이너마다 실행하는게 번거롭기 때문에 Docker에서 Docker Compose라는 다중 컨테이너를 한번에 실행가능하게 해주는 도구를 제공합니다. Docker Compose는 Docker를 최초 설치할 경우 함께 설치가 되기 때문에 Docker를 설치하신 분들은 따로 설치할 필요가 없습니다. Docker Compse Example version: '3' services: mysql: build: context: ./mysql dockerfile: ./Dockerfile image: mysql-image containe..
Docker DockerFile Docker를 사용하게 된다면 DockerFile을 필수적으로 작성하게 된다. DockerFile 내에는 Docker Image를 어떻게 구성할지에 대해 작성할 수 있고 Dockerfile에서 구성한 설정들로 자동으로 DockerImage가 작성됩니다. DockerFile DockerFile은 텍스트 형식의 파일로 기본적으로 이름은 DockerFile로 설정하지만 특별한 경우에 따라 다른 이름으로 설정해서 사용이 가능합니다. 다만 이렇게 사용할 경우에 다르게 설정한 이름을 명시해줘야 합니다. DockerFile에 작성 가능한 설정들 FROM : Docker Base Image (기반이 되는 이미지, : 형식으로 설정) MAINTAINER : 메인테이너 정보 (작성자 정보) RUN : Shell Scrip..
Django 커스텀 커맨드 만들기 장고로 커스텀 커맨드 만들기 장고 manage.py에 커맨드를 추가하려면 장고의 사용자 지정 커맨드를 만들면됩니다. 커스텀 커멘드를 작성하는 것으로 manage.py부터 사용할 수 있는 커멘드를 늘릴 수가 있습니다. 이 글에서는 이 사용자 지정 커맨드를 만드는 방법을 설명합니다. 구체적으로는 ↓를 살펴 보겠습니다. 사용자 지정 커맨드 개요 프로젝트 만들기 앱 만들기 커맨드 만들기 커맨드 실행 커맨드에 대해 자세히 알아보기 사용자 지정 커맨드 개요 Django의 커스텀 커맨드는 정확히 "custom django-admin commands"를 말합니다. Django에서는 앱마다 커맨드를 만들 수 있습니다. 이 커맨드는 manage.py에서 실행할 수 있습니다. 예를 들어 showposts커맨드를 만들면 ↓와..
Django의 Meta 클래스 사용법 [ordering, db_table, verbose_name, etc] 장고의 메타 클래스 Python 웹 프레임워크인 장고(Django)는 모델이라는 추상화된 클래스를 사용하여 데이터베이스에 테이블을 정의합니다. 이 모델은 models.Model을 계승시킨 클래스로서 작성합니다만, 이 클래스내에는 Meta(메타) 라고 하는 내부 클래스를 배치할 수가 있습니다. 모델의 클래스내에 Meta 클래스를 정의하는 것으로 Django 의 그 모델의 취급 방법을 변경하는 것이 가능합니다. 또, 모델에 한정하지 않고 Meta 클래스는 form등에도 설정할 수 있습니다. 이 글에서는이 Meta 클래스의 일부 기능에 대해 설명합니다. 구체적으로는 ↓를 살펴 보겠습니다. Meta 클래스 개요 Meta 클래스를 작성하는 방법 ordering을 작성하는 방법 db_table을 작성하는 방법 ve..
Django의 channel로 만드는 간단한 채팅 앱 장고의 채널로 만드는 간단한 채팅 앱 Django에서는 Channels 라는 기능을 사용하면 WebSocket을 사용한 채팅 앱 등을 만들 수 있습니다. Channels는 Django에서 비동기 통신 뷰를 실현하는 기능입니다. 채널은 HTTP뿐만 아니라 다양한 프로토콜을 지원합니다. 예를 들어 WebSocket, MQTT, chatbots 등입니다. Channels는 채널이라고 불리는 데이터 구조가 핵이 되고 이것의 실체는 FIFO 큐입니다. 논리적으로는 Go의 channels와 비슷합니다. 이 글에서는 즉시 간단한 채팅 앱을 만들면서 장고의 채널을 살펴 보겠습니다. Channels 설치 먼저 pip를 사용해서django channels를 설치합니다. $ pip install django $ pip in..
Django ORM distinct() Django에는 QuerySet이라는 객체가 있고 filter및 order_by등의 대표적인 메소드 외에, distinct 라는 메소드가 있습니다. 이 메소드를 사용하면 QuerySet 결과에서 중복 레코드(행, 오브젝트)를 제거할 수 있습니다. distinct()검증을 위해 모델을 만듭니다. Person 이라는 모델을 만듭니다. 이것은 사람을 표현하는 모델이며 이름과 나이와 같은 필드가 있습니다. from django.db import models class Person(models.Model): name = models.CharField(max_length = 128) age = models.IntegerField() name나 age필드에는 unique을 붙이지 않습니다. 따라서 name와 age값..
Django values, valuse_list Django ORM의 방법 중 하나로 필요한 필드의 값만 가져오기 위해 values()와 values_list()를 사용합니다. 각각 어떻게 사용하고 결과가 어떻게 나오는지 알아보겠습니다. values() 쿼리셋의 값을 딕셔너리 형태로 반환합니다. Post.objects.values().filter(id__lt=8) # Post.objects.filter(id__lt=8).values() # 만약 아래와 같이 values() 메소드에 인자로서 필드명을 넣으면 필드: 값의 형태로 가져올 수 있습니다. Post.objects.filter(id__lt=8).values('title') # values_list() 쿼리셋의 값을 튜플 형태로 반환합니다. Post.objects.filter(id__lt=8).va..