지난 크리스마스 선물로 게임 컨트롤러를 선물 받았습니다.
 
이전까지는 XBOX 무선 컨트롤러를 사용해서 블루투스 연결을 해서 사용했습니다.
저는 주로 아이패드나 PC에 연결해서 패드로 게임을 했었습니다.
SKT를 통해 올 엑세스로 XBOX를 사고 싶었지만 물량도 없고, 최근에는 게임을 많이 하지 않아서 콘솔에 대한 흥미도 많이 떨어졌구요, 스위치는 팔아먹은지 오래거든요....
 
그러는 와중에 Backbone one을 선물 받았습니다.
 
Backbone one(이하 백본원)을 설명하기 전에 스마트폰용 게임 컨트롤러는 여러가지가 있습니다.
그 중에서 유명한것으로는 백본원, Razer Kishi2, Gamesir X2 같은 제품들이 유명합니다.
 
Razer Kishi2 같은 경우에는 너무 비싸고 kishi2 보다는 kishi가 더 맘에 들었는데 그건 구하기가 어렵더라구요 ㅠ
 
여러모로 backbone one이 디자인적으로나 가격적으로 맘에 들었습니다.
 

도착한  backbone one입니다. 

 

백본원 언박싱-1
백본원 박스 전면
백본원 박스 후면

박스 전면에는 백본원 외형이 있고 후면에는 각 버튼 설명과 어디로 충전을 하고 어디로 유선 이어폰을 연결 할 수 있는지 설명해주고 있습니다.

 

 

 

박스를 개봉

박스를 개봉하면 언제 어디서든 즐길 수 있다는 문구가 보입니다.

 

제품 확인

상자를 열면 드디어 백본원을 만날 수 있습니다.

 

측면

트리거 버튼까지 제가 익숙한 xbox패드와 유사합니다.

 

길이 조절

잡아 당기면 큰 스마트폰도 충분히 끼울 수 있도록 디자인 되어 있다.

 

장착 설명서

장착을 할때는 꼭 위쪽부분을 먼저 장착하고 아래충전 단자를 연결해주어야 한다. 그래야 끼우기 편하다...

 

뭔지 모를 부품...

뭔지 모를 부품이 하나 있다. 나중에 알았지만 요즘 스마트폰들이 카툭튀가 심해서 저 부품으로 좀 띄워서 카메라에 흠집이 나느것을 방지해주는 부품으로 확인된다.

 

부품을 장착한 모습

아이폰에서 설정 -> 일반 -> 게임컨트롤러 에 들어가면 설정도 있다

프로파일러를 통해 각 버튼에 다른 버튼으로 매핑해서 사용할 수 있다.

 

설정 화면

 

만듬새는 전반적으로 좋다.

인식도 잘 된다

 

단점이 하나 있는데 나는 생폰으로 쓰다보니 몰랐는데, 케이스를 사용하는 경우 케이스를 빼야 백본원에 연결할 수 있다는 단점이 있다.

그나마 이 부분은 사소한 단점이라 생각된다.

 

연결 후 몇가지 게임을 해 보았다.

  • 원신 : 폰으로 할 때랑 전혀 다른 플레이를 할 수 있었다. 처음 해봤는데 게임 컨트롤러에 이렇게 대응이 잘 된 게임인지 몰랐다. 재미를 붙여볼까 생각했지만 역시나 귀찮아서...원신을 하는 사람이라면 엑박 컨트롤러를 블루투스로 연결하는 것도 좋은 방법이지만, 그 보다 백본원을 사용하는 것도 괜찮은 선택이라고 생각된다.
  • 던파M :  게임이 좀 더 컨트롤러에 대한 대응이 필요한 것으로 보여진다.
  • 언디셈버 : 매핑이 뭔가 적응하기 어려웠다. 게임이 문제인지 내가 문제인지 별 흥미를 느끼지 못함..
  • xbox cloud gaming : 진짜 신세계였다. 무료쿠폰으로 한달 즐겼지만 게임할 시간이 많다면 game pass를 지르고 게임을 즐길만한 수준의 성능을 보여줬다.
  • 그 외에도 많은 게임들이 의외로 컨트롤러를 통해 잘 됐었다. 하지만......

 

앞으로도 더 많은 게임들이 컨트롤러 지원을 해서 컨트롤러로 할 수 있는 게임이 더 많아졌으면 좋겠다.

'잡다한 리뷰' 카테고리의 다른 글

매트리스 구입기 [삼분의일 매트리스 후기]  (0) 2018.07.22
 
사설 ip 대역에서 docker repository를 이용해야 하는 경우가 있다.
 
현재 docker repositry의 경우 ssl 과 도메인 사용을 강제하고 있어서 사설 ip 대역에서 사용하기 힘들다.
 
이 경우에는 아래 명령어를 통해 무시하는 사이트를 등록하고 우회해야 한다.
 
echo -e '{\n\t"insecure-registries": ["{repository_host}:{repository_port}"] \n}' | sudo tee /etc/docker/daemon.json
>> /etc/docker/daemon.json 파일에 insecure-registries 옵션으로 특정 사이트를 등록하는 명령어
 
이 명령어를 실행 후 docker 서비스를 재시작하면 된다.
 
 
 

EdgeDB

https://www.edgedb.com/docs/intro/quickstart 페이지를 참고 하여 튜토리얼을 따라해 본 내용을 서술하였습니다.
 

설명

EdgeDB는 차세대 graph-relational database 로 관계 데이터베이스, 그래프 데이터베이스, ORM의 장점을 적용한 신형 데이터베이스입니다.
SQL database의 장점인 Type safety, 성능, 안정성, 트랜잭션을 가지고 있습니다. 그러나 관계형 database는 테이블형식으로 모델링하는 대신 EdgeDB는 속성과 다른 개체에 대한 링크가 포함된 형태로 데이터를 나타냅니다. 이러한 개체 지향 모델을 활용하여 SQL의 가장 큰 유용성 문제 중 일부를 해결하는 초강력 쿼리 언어를 제공한다.

 

 

Quick start

1. 설치

먼저 EdgeDB CLI를 설치해야 합니다. 각 운영체제별로 설치방법은 아래와 같습니다.
  • macOS/Linux
curl https://sh.edgedb.com --proto '=https' -sSf1 | sh
  • Windows (PS)
PS> iwr https://ps1.edgedb.com -useb | iex
 
위 커맨드를 통해 다운로드하고 edgedb CLI를 설치할 수 있습니다. 설치 완료후 Terminal을 재시작하면 사용할 수 있습니다. 또는 설치 직후 나오는 명령어를 통해 사용할 수 도 있습니다.

2. project 초기화

터미널에서 새로운 디렉터리를 만들어서 거기로 들어갑니다.
mkdir quickstart
cd quickstart
 
그리고 edgedb project를 초기화 해줍니다.
edgedb proejct init
 
그러면 edgedb 인스턴스를 setting을 위한 툴이 실행되고 아래와 같은 방식으로 진행되게 됩니다.
> edgedb project init
No `edgedb.toml` found in `/edgedb/quickstart` or above
Do you want to initialize a new project? [Y/n]
> Y
Specify the name of EdgeDB instance to use with this project [default: quickstart]:
> quickstart
Checking EdgeDB versions...
Specify the version of EdgeDB to use with this project [default: 2.3]:
> 2.3
┌──────────────┬───────────────────────┐
│ Project directory  │ /edgedb/quickstart              │
│ Project config     │ /edgedb/quickstart/edgedb.toml  │
│ Schema dir (empty) │ /edgedb/quickstart/dbschema     │
│ Installation method│ portable package                │
│ Version            │ 2.3+ab48913                     │
│ Instance name      │ quickstart                      │
└──────────────┴───────────────────────┘
Downloading package...
00:00:02 [====================] 35.27MiB/35.27MiB 15.38MiB/s | ETA: 0s
Successfully installed 2.3+ab48913
Initializing EdgeDB instance...
[systemctl] Created symlink ~/.config/systemd/user/default.target.wants/edgedb-server@quickstart.socket → ~/.config/systemd/user/edgedb-server@quickstart.socket.
[systemctl] Created symlink ~/.config/systemd/user/default.target.wants/edgedb-server@quickstart.service → ~/.config/systemd/user/edgedb-server@quickstart.service.
Applying migrations...
Everything is up to date. Revision initial
Project initialized.
To connect to quickstart, run `edgedb`
 
이 작업을 통해 크게 두가지 작업이 이루어졌습니다.
  1. edgedb.toml config파일과 schema파일, dbschema/default.esdl 파일을 만들어 프로젝트를 생성했습니다. default.esdl은 말 그대로 기본 schema를 의미합니다.
  2. QuickStart라는 edgedb 인스턴스를 연결했다. 프로젝트 디렉터리 안에 있는 인스턴스에 대해 모든 CLI명령이 실행된다. edgedb 프로젝트의 작동방식에 대한 자세한 내용은 인스턴스 가이드를 참조하시길 바랍니다. (https://www.edgedb.com/docs/intro/instances#ref-intro-instances)
동시에 여러 인스턴스를 생성할 수 있으며 각 인스턴스에는 여러 데이터가 포함될수 있다. 각 데이터베이스에는 여러 모듈이 포함될 수 있다. (일반적으로 schema는 기본 모듈 내부에서 정의 된다.)
 
이제 아래 명령어를 통해 edgedb에 연결할 수 있다.
edgedb
 
그리고 간단한 쿼리를 실행해 정상 구동여부를 확인할 수 있습니다.
edgedb> select 1 + 1;
{2}
CLI에서 나오기 위해서는  \q 명령어를 입력하면 됩니다. 
먼저 schema를 설정 해 보겠습니다.
 

3. schema 설정 하기

원하는 IDE 또는 editor 에서 해당 디렉터리를 열어 파일 구조를 확인해봅시다.
├── edgedb.toml
├── dbschema
│   ├── default.esdl
│   ├── migrations
 
edgeDB Schema는 edgedb SDL(Schema Description Language)로 정의를 합니다.
SDL은 esdl파일 내부에 있습니다. 일반적으로 전체 schema는 default.esdl이라는 파일로 선언되지만 원하는 경우 여러 esdl 파일로 schema를 분할 할 수 있습니다.
 
예제로 간단한 영화 데이터베이스를 구축해보겠습니다.
영화와 사람의 두 가지 객체 유형을 정의합니다. (SQL의 테이블 생성에 해당합니다.)
편집기에서 dbschema/default.esdl 을 열고 아래 내용을 붙여넣습니다.
module default {
  type Person {
    required property name -> str;
  }

  type Movie {
    property title -> str;
    multi link actors -> Person;
  }
};
 
여기서 주목할 부분
  • ID 값이 포함되지 않습니다. Edgedb는 자동으로 database에 삽입 된 모든 객체에 대해 자동으로 고유한 UUID를 할당 합니다.
  • Movie type에는 배우와 감독의 두 가지 링크도 포함되어 있습니다. edgedb에서는 링크는 객체 유형 간의 관계를 타나내는 데 사용합니다. 이는 foreign key를 사용할 필요가 없습니다. 그리고 추후에 join이 없이 deep query를 작성할 수 있으며 나중에는 얼마나 쉬운지 알 수 있습니다.
  • 객체 유형은 default 모듈 내에 있습니다. schema를 모듈이라고 하는 logical subunits으로 나눌 수 있지만, default라는 단일 모듈에서 전체 schema를 정의하는 것이 일반적 입니다.
이제 schema를 database에 적용하기 위해 migration을 할 준비가 되었습니다.

 

4.migration 실행하기

edgedb migration create 명령어를 통해 migration 파일을 생성합니다. 이 명령어는 *.esdl 파일을 확인해 database로 보냅니다. database는 이 파일의 구문을 분석하고 현재 schema와 비교하여 migration 계획을 생성합니다. 그런 다음에 database는 계획에 따라 CLI로 다시 보내서 migration 파일을 생성합니다.
> edgedb migration create
Created dbschema/migrations/00001.edgeql, id: m1ccbjebnaeoq2hki3ma35lw5pkf6sadomsjyuehxzgecxq2h4uwgq
 
관심이 있다면 migration파일을 열어 어떻게 구성되어 있는지 확인해보세요.
Create Type, Alter Type, Create 속성과 같은 DDL 명령으로 구성된 간단한 EdgeQL 스크립트로 구성되어 있습니다.
 
migration 파일이 생성 되었지만 이는 database에 적용되지는 않았습니다. 이제 적용을 해봅시다.
> edgedb migrate
Applied m1ccbjebnaeoq2hki3ma35lw5pkf6sadomsjyuehxzgecxq2h4uwgq (00001.edgeql)
 
edgedb list types 를 입력해서 결과를 확인 합니다. 이것은 현재 정의 된 모든 객체 유형이 포함 된 테이블을 출력합니다.
> edgedb list types
┌────────────┬─────────────────────┐
│ Name            │ Extending                     │
├────────────┼─────────────────────┤
│ default::Movie  │ std::BaseObject, std::Object  │
│ default::Person │ std::BaseObject, std::Object  │
└────────────┴─────────────────────┘
 
다음 단계로 넘어가기전에 schema를 한번 변경해보겠습니다. Movie의 title을 required 로 변경하겠습니다. 먼저 schema file을 아래 내용으로 업데이트 합니다.
type Movie {
    required property title -> str;
    multi link actors -> Person;
  }
 
그런 다음 한번 더 edgedb migration crate 를 실행합니다. 첫 migrtaion이 아니기 때문에 이전과 약간 다른 내용이 출력되는 것을 확인할 수 있습니다.
> edgedb migration create
did you make property 'title' of object type 'default::Movie' required? [y,n,l,c,b,s,q,?]
>
 
이전과 마찬가지로 edgedb는 schema 파일을 분석하고 현재 내부 schema와 비교를 합니다. 그리고 우리가 변경한것을 감지하고 그것을 확인 받는 과정을 거치게 됩니다. 이 과정은 모든 변경사항을 확인하고 migrations이 애매한 경우 (property의 값이 변경된 경우) 우리에게 가이드를 제공합니다.
현재 경우에는 y를 눌러 변경 확인을 해줍니다.
> edgedb migration create
did you make property 'title' of object type 'default::Movie' required? [y,n,l,c,b,s,q,?]
> y
Please specify an expression to populate existing objects in order to make property 'title' of object type 'default::Movie' required:
fill_expr>
 
fill_expr 이라는 새로운 prompt가 열렸습니다. 그 이유는 title이 optional에서 required로 변경되었기 때문에 edgeDB가 title에 대한 default value를 묻는 것 입니다. 여기서는 “untitled”로 진행하겠습니다.
Please specify an expression to populate existing objects in order to make property 'title' of object type 'default::Movie' required:
fill_expr> "Untitled"
Created dbschema/migrations/00002.edgeql, id: m1faattezah627k544elwato3m4dgjbyyz3nqn2huxeovh2luv4eua
 
 새롭게 생성된 migration 파일을 보면 아래 내용이 있습니다.
  ALTER TYPE default::Movie {
      ALTER PROPERTY title {
          SET REQUIRED USING ('Untitled');
      };
  };
 
이제 새로운 migration을 적용해 봅시다.
> edgedb migrate
Applied m1faattezah627k544elwato3m4dgjbyyz3nqn2huxeovh2luv4eua (00002.edgeql)
 

5. Query 작성하기

이제 Edgedb ui를 통해 간단한 쿼리를 작성해보겠습니다. 2.0+버전 부터는 관리자 대시보드를 포함하고 있습니다. 대시보드를 열기 위해 아래 명령어를 입력합니다.
> edgedb ui
Please visit URL:
http://localhost:10700/ui?authToken=<JWT TOKEN>
 
해당 페이지에 접속 하면 아래와 같은 페이지가 열립니다.
인스턴스에서 실행되는 각 database가 표시됩니다. 각 인스턴스는 여러 데이터베이스를 포함할 수 있습니다.
 
현재는 Edge하나 뿐이며 기본적으로 Edgedb로 되어있습니다. 클릭해봅시다.
 
Open REPL을 클릭합니다. 그러면 쿼리를 작성할 수 있는 창이 열립니다.
기본적인 Hello world! 를 출력해보기 위해 아래 쿼리를 입력합니다.
SELECT "Hello world!";
 
Query와 Query 결과는 우측 query notebook 에 보여집니다.
이제 실제 데이터를 Insert 해보겠습니다. 아래 코드를 입력해줍니다.
INSERT Movie {
  title := "Constantine"
};
첫 데이터가 Insert되었습니다! 업데이트 쿼리를 통해 몇명의 배우를 추가해봅시다.
UPDATE Movie
FILTER .title = "Constantine"
SET {
  actors := {
    (INSERT Person { name := "Keanu Charles Reeves" }),
    (INSERT Person { name := "Katherine Matilda Swinton" })
  }
};
 
마지막으로 SELECT 쿼리를 통해 방금 입력한 데이터를 가져올 수 있습니다.
SELECT Movie {
  title,
  actors: {
    name
  }
};
 
query notebook에서 결과에서 COPY AS JSON 을 누르면 clipboard에 아래와 같이 복사가 됩니다.
[
  {
    "title": "Constantine",
    "actors": [
      {
        "name": "Keanu Charles Reeves"
      },
      {
        "name": "Katherine Matilda Swinton"
      }
    ]
  }
]
 
edgedb UI는 유용하지만 실제 프로그램에서는 쿼리 실행을 위해 edgedb client librarie를 사용하게 될 것입니다.
JavaScript/TypeScript, Go, python, Rust 등의 공식 라이브러리를 제공하고 있으니 원하는 언어로 사용할 수 있습니다. ( https://www.edgedb.com/docs/clients/index )
 
수고하셨습니다! 
튜토리얼 진행을 통해 간단한 사용방법을 익히셨습니다. 자세한 내용은 기회가 된다면 마저 포스팅 할 수 있도록 하겠습니다.
 
 

 

이메일은 @을 기준으로 두가지 영역으로 나뉨

 

앞부분은 로컬 파트
뒷부분은 도메인 파트

 

그러니 이런 구조가 됨 로컬파트@도메인파트

로컬파트는 64자리까지 가능함
도메인 파트는 255자리 까지 가능함

그러면 이메일의 최대 길이는 64+255 = 319 자리 인거 같지만 @ 를 포함해서 총 320자리가 된다.

 

요약

  1. 이메일은 @을 기준으로 로컬파트와 도메인파트로 나뉨
  2. 로컬파트는 64자리, 도메인파트는 255자리
  3. 총 길이는 320자리까지 가능

이를 벗어나는 메일은 거부하는걸 권장 한다고 한다.

출처 : https://www.ietf.org/rfc/rfc2821.txt (4.5.3.1)

Django를 사용하면서 발생한 이상한 오류 해결기...


root@django:/home/test# python3 manage.py createsuperuser
Traceback (most recent call last):
  File "manage.py", line 15, in 
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 316, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.6/dist-packages/django/contrib/auth/management/commands/createsuperuser.py", line 59, in execute
    return super().execute(*args, **options)
  File "/usr/local/lib/python3.6/dist-packages/django/core/management/base.py", line 353, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.6/dist-packages/django/contrib/auth/management/commands/createsuperuser.py", line 112, in handle
    username = self.get_input_data(self.username_field, input_msg, default_username)
  File "/usr/local/lib/python3.6/dist-packages/django/contrib/auth/management/commands/createsuperuser.py", line 193, in get_input_data
    raw_value = input(message)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

해결 방안
export PYTHONIOENCODING="UTF-8";


ubuntu 버전에 따라 동작안할 수 도 있으나 대부분 동작함.

'python' 카테고리의 다른 글

PyMongo  (0) 2015.09.15

 

 


이사를 가면 침대를 놔두고 자고 싶었다. 그전에는 바닥에 5CM짜리 라텍스 토퍼하나를 놓고 썻는데 뭔가 아쉬웠기 때문이다.

 

이사가기전부터 이런저런 매트리스를 알아보았다.

 

  1. 스프링 매트리스
    • 가장 흔하다.
    • 5 7 9 같이 존의 개수에 따라 가격도 올라가고 편하다고 알려져 있다.
  2. 라텍스 매트릭스
    • 라텍스 매트리스에는 두가지가 있었다. 100% 천연 라텍스와 천연+합성 라텍스이다.
    1. 100% 천연라텍스
      • 관리는 주기적으로 뒤집어서 사용하고 뜨거운 열기에 취약하기 때문에 이점만 조심하면 된다고 한다.
      • 천연 라텍스의 경우 곰팡이나 진드기가 없는 환경이라 좋다고 한다.
      • 관리를 할경우 30년도 쓴다고 카더라.
      • 내가 알아본 가격은 7.5T 정도 되는 슈퍼싱글이 38만원정도 였다.
      • 라텍스만 수입하고 겉에 커버를 따로 국내에서 생산해서 파는 업체의 경우 라텍스와 정확하게 맞지 않는 경우 
      • 라텍스의 수명이 줄어들기도 한다고 한다.
    2. 천연+합성 라텍스
      • 합성 라텍스가 들어간 경우 사용하다보면 딱딱해지면서 수명을 한다고 한다.
      • 딱딱해지고 엉덩이부분과 같은 무게가 많이 쏠리는 부분이 꺼질 있다고 한다. 경우에는 당연히 허리에도 
      • 좋지 않을 이다.
  3. 매트리스
    • 유명한 업체의 경우 대부분 비싸다…..(템퍼라던지.....)
    • 내부는 어떤지 모르겟지만 비슷비슷하다.
    • 습기에 취약하기 때문에 습하지 않게 관리를 해야한다.
    • 굉장히 편하다고 한다.

 

 

개인적 취향

  1. 스프링의 경우 오래 사용할 경우 삐걱삐걱거리는 소리가 나는 것을 너무 싫어한다. 그래서 제외
  2. 두께가 되는 것을 원했다. 라텍스의 경우 두께가 두꺼워질수록 가격이 많이 올라가지만 일단은 알아보았다.
    1. 참고  사이트http://cafe.daum.net/Latex
  1. 사용기간도 중요했다. 내가 100만원 짜리를 사도 5년밖에 사용할 없다면 나라면 굳이 사지 않을것 이다. 사용기간은 가장 관리를 했을 경우를 참고 했다.
  2. 품질보증 기간이 길다는 것은 그만큼 제품에 대한 자신감이라고 생각했기 떄문이다.

 

이것저것 알아보고 하다가 이사날짜 안에 결국 못구했다…..

괜찮아.. 원래 이런 사람이니까 ㅎㅎ

 

 

그렇게 알아보다가 우연히 삼분의 광고를 봤다. 사실 SNS광고는 믿지않는 편인데 혹시나 하는 마음에 검색도 해보고 후기도 열심히 찾아봣으나… 후기가 판매 페이지 말고는 많이 없어서 열심히 찾아봤지만 아쉬웠다. (심지어 구매페이지에 이상한 냄새가 난다는 후기도 있었다. 문제점이 존재하는 제품들은 교환을 해주고 해결법까지 찾아서 해결을 한것 같았다.)

 

그래도 브런치라던지 커뮤니티에서 이런저런 글을 보았다제품에 굉장히 자부심을 가지고 있는거 같아서 호기심에 체험관을 가보기로 했다.

 


 

체험관 후기

예약을 하고 가야한다고 해서 booking에서 예약을 하고 갔다. (예약 페이지https://booking.naver.com/booking/10/bizes/117867 )

인기가 많아서 그런지 토요일에는 시간이 10시밖에 없었다. 10시로 예약을 하고 한화드림플러스로 향했다.

경비원 분을 통해서 출입증을 받아야 하지만, 3분의1 체험관을 위해 왔다는 이야기를 들은 경비원분이 그냥 화물 엘레베이터를 통해서 올라가면 등록절차 없이 바로 올라갈 있다고 알려주어서 화물 엘레베이터를 이용해서 올라갔다. (등록하고 출입증을 받아서 갈려면 신분증이 필요하고 오래 걸린다.) 이후에 가시는 분들도 방법을 이용하면 금방올라 있을것이라 생각된다.

 

하나에 내가 원하는 사이즈와 A타입 B타입 두개의 침대를 미리 준비해두었더라. (굉장히 이뻣다.)

10분정도 먼저 누워서 체험을 해보라고 했기 때문에 먼저 누워보았는데… 깜짝 놀랐다.

 

너무 편했다.

 

B타입의 경우 물침대만큼은 아니지만 유사한 느낌을 받았고 A타입의 경우 설명대로 꺼지지 않는 느낌이였다.

나의 경우 B타입이 굉장히 맘에 들었다.

10분뒤 키크고 잘생기신 남자분이 오셔서 제품 단면을 가지고 와서 설명을 해주었다.

그리고 궁금한점에 대해 답변도 해주시고 기존 많은 체험을 해보신 분들이 자주 질문한 것들도 설명을 해주셨다.

대부분 많은 것들을 알아보고 갔다면 알고있는 내용도 많다. 그리고 체험관에서 체험하고 바로 구매를 하는 경우 방수커버를 주는 이벤트를 하고 있다고 했다.

그리고 나는… 그자리에서 바로 구매를 하였다.

침대는 수요일에 배송이 된다고 했다.

 

추가로 삼분의 일에서 판매하는 배게도 같이 있었는데 생각보다 굉장히 편했다. 자면서 뒤척거릴때 불편할 있지만 목을 잡아주는 느낌과 옆으로 누워서 잘때 귀가 접히지 않도록 홈이 파여져 있는 것도 굉장히 만족스러웠다. 하지만 구매하지않은 이유는 아직은 현재에 만족하고 있기 때문이다.

 

그리고 궁금한점이 있다면 < 삼분의일_카카오톡 >을 통해서 질문을 하면 알려준다고 한다. 구매를 하고나니 매트리스 관리법, 좋은 프레임도 추천해주는 글이 존재했다.

 


 

침대 후기

토요일에 결제한 침대가 수요일에 도착했다. 퇴근하고 오니 엘레베이터가 열리자 마자 박스 하나가 기다리고 있었다.

집으로 옮길려고 하는대 생각보다 무거워서 당황했다. 고생하신 택배기사님께 감사를….

 

 개봉기는 동영상으로 찍을 수 없어서 사진으로 대체한다.

 

 

박스를 개봉하니 어렵지 않다는 문구가 반긴다.

 

 

매트리스가 돌돌 말려있다. 영상에서 봣지만 실제로 보니 신기하다.

 

 

뒤집어서 꺼내고.....

 

 

칼을 사용하지 않아도 쉽게 뜯을 수 있다는 문구가 있다. 이 스티커를 뜯으니 아래와 같이 됐다.

 

 

바로 매트리스가 진공포장된게 아니라 겉에 비닐로 말아놓은것을 이것을 이용해서 뜯을 수 잇는 것이다.

 

 

한 2~3바퀴를 돌려서 벗겨냈다.

 

 

벗겨내니 반으로 접혀있는 상태로 펼쳐졌다. 아마 비닐을 뜯으면서 진공포장된 어딘가가 뜯긴것인지 이때부터 바람들어가는 소리가 들리기 시작했다.

 

 

그리고 또 써있는 설명서.... 굉장히 친절했다.

 

 

끝부분에 남은 부분을 칼로 자르기로 했다.

 

 

 

 

 

끝부분을 다 뜯어내니 본격적으로 부풀어 오르기 시작했다. 칼보단 가위를 추천한다. 칼로 하다가 매트리스 사용하기도 전에 흠집을 낼뻔 했다 ㅠ

 

 

완벽하게 펼쳐진 매트리스! 아직 프레임이 없어서 바닥에 두고 사용하기로 했다.

 

 

운이 좋았다. 방수커버와 같이 배송이 온것이다. 

 

 

 

 

 

 

개봉을 해보니 매트리스 부분만 방수처리되어있고 옆부분은 공기가 잘 통하도록 만들어져있었다. 바로 사용할까 했지만 한번 세탁을 하기로 했다.

 

세탁은 마침 중성세제가 있어서 중성세제를 통해서 세탁을 했다.

 

상품페이지에서도 세탁할때는 중성 세제를 이용해서 세탁할 것을 권고하고 있기 때문에 이를 이용했다.

 

그래서 첫날은 일단 방수커버 없이 사용을 했다.

 


 

그리고 간단하게 3일정도 사용한 후기를 남겨보자면

 

1일차

자기위해 눕는 순간 이거 금방 잠들겠군아 라는 생각이 들었다. 그리고 실제로 금방 잠들었다.

자다가 새벽 630분쯤에 깻다. 매트리스가 원래 덥다는건 알고 있었지만 이정도로 덥나? 라는 생각이 정도로 더웠는데, 하필이면 이날부터 열대야가 겹친것도 한몫을 같다.

일단 잠에서 김에 일찍 출근하기로 하고 출근을 했다.

바닥에서 벗어나니 자고 일어났을때 어깨가 아프다거나 한건 없었기 때문에 굉장히 만족스러웠다.

 

2일차

이날도 6시에 깻다. 그런데 침대를 벗어나는데 2시간이나 걸렸다.

매트리스가 몸에 맞게 눌리면서 너무 포근했기 때문에 벗어나기 너무 힘들었다. 이러다가 진짜 지각하겠다 싶을 정도였다.

아직 침대 프레임이 없었기 때문에 굴러서 바닥으로 내려오면서 겨우 벗어났다.

(내가 원래 잠이 많은 편인것도 있다…)

 

3일차

주말이였다. 그냥 잤다. 내가 원하는 만큼 자고, 만족한 잠자리를 얻은 기분이였다.

 

지금까지 2주정도 사용을 했는데 너무 만족한다. 조금 피곤한 상태에서 일어나고자 할때는 내몸을 매트리스가 끌어당기는 같은 느낌도 있지만 또한 편해서 그런것이라 생각된다.

 


 

고려해야할 점은 B타입의 경우 덥다. 진짜 덥다. 더위를 많이 탄다면 B타입이 매우 힘들 있다.

밤에도 굉장히 더운 2018 여름이기 때문에 더욱 덥게 느껴진 있다는 점을 고려하면 만족하는 편이다. 겨울에는 오히려 좋을것 같아서 기대되기도 한다.

 

하지만 쿨패드가 있다면 다를 것이라 생각된다. 구매를 하고 싶었지만 현재는 구매고객을 대상으로 후기 작성시 쿨패드를 증정 한다고 한다.

그렇기 때문에 후기를 통해 쿨패드를 받은 이후 한번 후기를 작성해보고 싶다.

 

공부한것을 정리해서 올릴려고 만들었고 최근에 사용하지 않지만 블로그를 통해 글을 쓰는 것은 구글검색을 통해서도 후기가 검색되어 많은 사람들이 체험해보고, 삼분의일도 잘됐으면 하는 마음도 있다.

그리고 글은 잘 안쓰지만 아직까진 나름 사람들이 검색을 통해 많이 들어오더라...

 

 

 

 

 

 

 

 

 

 

'잡다한 리뷰' 카테고리의 다른 글

Backbone one - 아이폰용 게임 컨트롤러  (0) 2023.01.26
최근 nginx 서버를 돌리는데 중간중간에 Resource temporarily unavailable 오류가 발생하는 것을 확인했다.

오류는 아래와 같았다.

Datetime [error] 4027#0: *178859567 connect() to unix:///home/sock failed (11: Resource temporarily unavailable) while connecting to upstream, client: client_ip, server: localhost, request: "GET path HTTP/1.1", upstream: "uwsgi://unix:///home/sock:", host: "host_ip"


이 오류를 해결하기 위해 몇가지를 시도해보았다.

1. uwsgi와 같이 사용하기 때문에 uwsgi에서 발생하는 오류인줄 알고 uwsgi가 requests를 처리 못하여 생기는 오류인줄 알고 max-requests값을 높여보았지만 효과없었다.

2. "소켓 접속 제한를 초과하여서 발생하는 오류이다."라는 또 다른 가설을 세우고 제한를 조정해보았다.

sysctl -a | grep somaxconn
net.core.somaxconn = 127


default로 설정이 되어있었으며 이 값을 10240으로 변경해주었다.

sudo /sbin/sysctl -w net.core.somaxconn=10240


변경 후에도 큰 변화는 아니지만 오류 발생 빈도가 줄어들었지만, 여전히 오류가 발생한다.

3. Django를 nginx+uwsgi 로 해서 돌리고 있었다. 오류를 좀 더 확인하기 위해서 Django를 devserver형태로 돌렸다. 디버깅도 확인해보니 오류를 뿜어낸다.

Too many open files 라는 오류가 발생했다. 이때 알았다. 리눅스에서는 시스템 자원 값을 제한할 수 있고 이것은 동적으로 잡아주지 않는 다는 것을...

일단 Too Many open files 라는 오류를 잡기 위해 ulimit 으로 값을 변경해보기 시작했다.

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 128192
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 128192
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


초기값을 확인하고 1024인 초기값은 512000 으로 변경을 해주었다.

sudo ulimit -n 512000


으로 바로 변경할 수 있다. 하지만 이렇게 할 경우 재부팅했을 경우에 설정값이 다시 처음으로 되돌아 가기 때문에 바뀌지 않게 하기 위해 설정파일을 변경해준다.

sudo vim /etc/security/limits.conf 


파일을 열어 제일아래에 아래와 같이 입력을 해준다.

*   hard    nofile  512000


모든 유저들의 open files의 설정값을 512000으로 변경하겠다는 내용이다.
*을 변경하여 특정 유저만 해당하게 설정값을 변경할 수 있다.
hard와 soft의 차이점이 soft한 제한과 hard한 제한이라고 하는대 뭔지 잘 모르겠다.


그리고 나서 다시 돌려보니 오류빈도는 확 줄었지만 서버를 오랫동안 켜두니 또 502 error를 뱉는다. (짜증난다.... 왜이러는거냐)

파일 오픈 제한값을 더 늘려보기도 했지만 비슷한 상황이였다. ulimit -a를 통해 옵션값을 보던중 max user processes 라는 영역이 보였고 해당값도 조정을 해주었다.

명령어로는

sudo ulimit -u 512000


으로 할 수 있고

*   hard    nproc   512000
*   sofr    nproc   512000


설정 파일에서는 위와 같이 item값을 nproc로 해주면 재부팅해도 계속해서 해당 값을 사용할 수 있다.

이제는 서버가 잘 돌아간다 ^0^



내가 검색능력이 부족하여 삽질하는 시간이 길었고, 인맥이 부족하여 물어볼 사람이 없었기 때문에 삽질하고 이 문제를 해결하는데 오래 걸렸다고 생각한다.

어쨋든 해결했으니 좋은것 아닌가 :)


5조 7천억원
올해 주택담보대출이 크게 늘었다. 이것과 함께 많이 증가한 것이 마이너스통장 대출이다. 올해 들어 10월 말 까지 증가한 시중은행의 마이너스 통장 대출 증가 폭이 5조 7천억 원이다. 2008년 금융위기 이후 가장 큰 폭으로 증가를 한 것이다. 은행들이 주택담보대출의 조건을 강화하면서 마이너스통장 대출을 받는 사람들도 늘어났다는 분석이 있다.
이주열 한국은행총재가 어제 한 간담회에서 신흥국들에서 조만간 위기가 발생할 가능성이 크다 하면서 큰 불안요인으로 과도한 민간부채를 지적했다. 신흥국이면서 민간부채가 많이 늘어난 나라로는 우리나라도 예외는 아니다. 서양 속담 중 겨울이 오기 전에 양털을 깎아라 라는 속담이 있다. 요즘 대기업들이 너도나도 사업을 재편하고 구조조정에 나서는 것도 같은 맥락으로 볼 수 있겠다.

변동금리로 돈을 빌리게 될 경우 코픽스라는 용어를 듣게 된다. 코픽스는 매달 달라지는 변동금리의 기준이 되는 숫자이다. (코픽스가 오르면 대출금리도 오르고 내리면 대출 금리도 내리는 방식)
코픽스는 은행이 돈을 조달할 때 원가가 얼마나 들었는지를 반영한다고 한다. 그런데 신규기준 코픽스가 10개월 만에 반등했다.
코픽스가 떨어지기만 하다가 지난달 대비 0.03% 올랐다.
신규 코픽스는 지난 한 달 동안 신규로 조달한 자금의 평균 금리이다. 잔액 코픽스는 전체 잔액에 대한 금리이다.
신규 코픽스의 경우는 지난 10월에 예금금리가 올랐기 때문에 오른 것이다.
1년의 정기예금 금리의 경우 1.5% 이하까지 떨어졌다가 최근 은행에서는 1.7% 정도의 금리를 준다. 이렇게 예금 금리가 오르면서 신규 코픽스 금리도 오를 수밖에 없었다.
내년에는 금융당국이 대출 조건을 더 강화한다고 한다.
정부 규제가 가시화된 것은 없다. 가계부채가 걱정스러울 정도로 꾸준히 늘고 있으니 대출 조건이 강화될 수밖에 없다. 그리고 규제가 강화된다면 금리상품이 될 수밖에 없는데 강화되기 전에 하는 것이 상대적으로 더 좋다.
은행에 가게 되면 변동금리 상품을 고르라고 하는 데, 어떤 것을 골라야 하는가
CD금리, 코픽스, 금융채 3가지 금리를 은행에서는 주로 사용한다. 3가지의 큰 차이는 금리가 몇 개월마다 변동되는가이다.
CD금리는 3개월, 코픽스는 6개월, 금융채는 5년마다 금리가 변경된다. 지금은 금리 상승에 대비할 때라고 봐야 한다 주택담보대출을 받는 상황이 온다면 큰 금액이고 장기간 대출을 받아야 하므로 고정금리 대출이 좀 더 유리할 수도 있다.

'손에 잡히는 경제' 카테고리의 다른 글

2015-11-17  (0) 2015.11.17
2015-11-16  (0) 2015.11.16
2015-11-12  (0) 2015.11.12
2015-11-11  (0) 2015.11.11
2015-11-10  (0) 2015.11.10

우분투를 사용하면 apt-get install 을 통해 많은 패키지들을 설치 한다.


그리고 가끔 설정등을 갈아엎고 새로 시작하고 자 할때 패키지를 지우고 재설치를 하는 경우가 종종있는는데


이 때 간혹 설정파일이 다시 안생기는 경우가 있다. (nginx라던가... nginx라던가...


보통 지울때 apt-get remove 도 사용하고 apt-get purge 도 사용하는대, 이런 경우에는 뭘 해도 안된다.


이럴때는 dpkg --get-selections 를 통해서 설치된 패키지들을 확인하고 관련된 패키지도 지워주면된다.



nginx의 경우 14.04에서 종종 이런 이슈가 발생하는 것 같은데


nginx는 nginx-common이 purge로도 지워지지 않아서 생기는 문제로 확인이 된다.


저거 지우고 다시하면 잘됨



검색어

nginx: confighuration file /etc/nginx/nginx.conf test failed

cat: /etc/nginx/nginx.conf: No such file or directory

how to nginx reinstall

주식을 살 때 내돈에다가 증권사의 돈을 빌려서 사는것을 신용거래라고 한다.
신용거래로 산 금액이 일정수준 아래로 떨어지거나 미수로(제 날짜에 대금을 결제하지 못하면) 증권사들은 주식을 처분한다. 이것을 반대 매매라고 하는대 지난주 금요일 하루동안 이루러진 반대 매매의 금액이 183억원 이였다. 3월27에 이어 두번째로 큰 규모이다.
반대매매는 빚으로 투자를 하는 투자자들이 많은 상황에서 증시가 급락할때 늘어난다. 미국의 금리 인상가능성이 커지면서 주가가 급락하자 반대매매와 함께 계좌 잔액이 텅 비는 깡통 계좌들이 속출하고 있다. 
늘 그렇지만 최근 세계경제는 무슨일이 일어날 지 모르는 환경이다. 금리가 낮아도 너무 낮다고 하지만 투자할 때는 더욱 겸손해야 하는 이유는 여기 있다.


1달러 = 1168.0원
두바이 유가 하락 (배럴당 40달러)
S&P500 1.49% 상승 / 나스닥 1.15% 상승 / 다우존스 1.38% 상승

이메일로 해고통지 합법판결
근로기준법에는 해고 사유와 날짜를 서면으로 통지하도록 해서 이메일 해고는 불법이였다. 서면으로 통지할 경우 좀 더 심사숙고 할 수 있고 분쟁을 방지할 수 있다는 취지로 서면통지를 하도록 했다. 
이번의 경우 서면으로 만들어서 전달하고자 할 때 근로자의 요청으로 이메일로 보낸 것 이기 때문에 유효하다고 판결이 났다. (즉 특별한 경우라는 거다.)
원칙적으로 해고 통지는 서면으로 해야 한다. (문자메세지, 메신저, 이메일 등으로는 불가하다)

'손에 잡히는 경제' 카테고리의 다른 글

2015-11-18  (0) 2015.11.18
2015-11-16  (0) 2015.11.16
2015-11-12  (0) 2015.11.12
2015-11-11  (0) 2015.11.11
2015-11-10  (0) 2015.11.10

+ Recent posts