반응형

 

data = {'A': [1, 2], 'B': [3, 4]}  # 딕셔너리 형태의 데이터 정의
df = pd.DataFrame(data=data)       # DataFrame 생성

 

이 코드는 딕셔너리 data를 pandas.DataFrame으로 변환하여 df라는 데이터프레임을 생성하는 간단한 작업입니다.

  • data:
    • 딕셔너리의 키 'A'와 'B'는 각각 DataFrame의 열 이름으로 사용됩니다.
    • 각 키에 해당하는 리스트 [1, 2], [3, 4]는 각 열의 값으로 사용됩니다.
  • pd.DataFrame(data=data):
    • pandas는 딕셔너리 형식의 데이터를 직접 DataFrame으로 변환할 수 있습니다.

생성된 df

코드 실행 결과는 다음과 같습니다

print(df)


#출력

   A  B
0  1  3
1  2  4

설명:

  1. 열 이름:
    • A와 B는 딕셔너리의 키로, DataFrame의 열 이름으로 설정됩니다.
  2. 행 인덱스:
    • pandas는 자동으로 정수형 인덱스 [0, 1, ...]를 생성합니다.
  3. :
    • 각 키에 연결된 리스트 [1, 2]와 [3, 4]는 열 값으로 매핑됩니다.

요약

  • 이 코드는 딕셔너리를 pandas.DataFrame으로 변환하는 기본적인 작업입니다.
  • 열 이름은 딕셔너리의 키에서 가져오고, 각 키에 연결된 리스트는 열 데이터로 사용됩니다.
  • 자동으로 행 인덱스가 생성됩니다. 필요하다면 index 매개변수를 사용하여 커스텀 인덱스를 지정할 수도 있습니다.
728x90
반응형
반응형

10월 어느 날 양양에 놀러 갔다가 카스테라를 살일이 생겨 급히 검색 후 찾아간 설온

설악동 장재터 옆동네 던데 가면서도 여기로 가는게 맞아? 라는 의문을 가지고 가다보면 나옵니다.

설온 입구

주차장은 생각보다 넓었습니다. 주차장에서 바라보면 뭔가 허름한데 입구로 오면 분위기가 180도 다릅니다.

들어가는 길은 작은 정원길을 지나가는 느낌입니다.

 

 

설온 내부

내부 인테리어가 엄청 맘에 들는 곳이였는데요 주택을 사서 꾸민다면 이런식으로 해보고 싶을 정도로 맘에 들었습니다.

안쪽에도 공간이 있었는데 카스테라만 빨리 사서 가야 했기에 눈에 보이는 곳만 보고 왔네요.

메뉴

메뉴는 너무 많지 않아서 한눈에 들어더라고요.

온천수로 쪄냈다는 푸딩을 먹어 보고 싶었는데 다음에 다시 와서 먹어보기로 했습니다. 

샘플

선물용으로 컷팅되지 않은 큰 카스테라가 있다고 했는데 아쉽게도 품절이더라고요. 사진에 보이는 카스테라 3조각은 5,500원인데 괜히 비싼 느낌이라 결국 카스테라도 다음에 다시 와서 먹어보기로 했습니다.

푸딩과 우유

확실히 마감시간 가까운 시간에 가서 그런지 푸딩도 많이 남아있지는 않았습니다.

 

야외 족욕장

야외에는 족욕장도 있었는데요 시간 여유가 없다보니 제대로 보지도 못하고 나왔습니다.

 

카페에서 아무것도 먹어보지 못하고 이런 곳도 있구나만 인지하고 나와버렸는데요 입은 즐겁지 않았지만 짧은 시간이였음에도 인테리어만으로 눈이 즐거운 카페였습니다.

728x90
반응형
반응형

광군제를 앞두고 유튜브에서 가장 많이 본 제품이지 않을까 싶네요.

자이언트 휴대용 수동 펌프가 있어서 안살까 했지만 자꾸 보다 보니 또 사게 되었네요.

 

TOPUMP 구성품

구성품으로는 펌프 본체와 보관용비낼백 슈레더 타입 호스, 프레스타 컨버터와 기타부속품이 들어있습니다.

자전거 펌프니까 호스랑 컨버터만 중요하겠네요. 충전은 C타입 지원하고 케이블도 들어있습니다.

버튼

 

본체의 노즐 아래에 버튼이 하나 있는데 3초간 누르면 전원이 켜지거나 꺼집니다. 전원이 켜진상태에서 누르면 동작을 하게됩니다.

노즐 측면을 보면 TOPUMP 라벨 아래 +/- 버튼이 있는데 각각을 누르면 공기압 설정을하고 동시에 누르면 BAR/PSI 변환에 사용됩니다.

펌프는 목표하는 공기압에 다다르면 자동으로 동작을 멈추는 스마트 자동 정지 기능을 제공합니다. 

호스와 컨버터

아래쪽이 호스인데 기본적으로 슈레더 타입으로 되어 있습니다. 위의 작은 부속품이 프레스타 컨버터입니다.

밸브

왼쪽이 슈레더 타입이고 오른쪽이 프레스타 타입 밸브입니다. 자전거 타시는 분들은 잘 아시겠죠.

본체와 밸브 연결

본체의 노즐에 호스를 연결하고 슈레더인 경우는 그대로 끝이지만 프레스타인경우 슈레더 밸브에 컨버터를 연결해줘야 합니다.

밸브안쪽을 보면 나사선으로 되어 있구요 바람을 넣을 자전거에 연결하고 돌려서 고정해주는 형태입니다.

 

실제 테스트 영상입니다.

16psi에서 55psi까지 넣어봤습니다.

 

공기주입되는 시간은 다른 전동펌프를 써본적이 없어서 비교는 어렵지만 머리속으로 상상했던거보다 빠르지는 않았습니다.

설명서에보면 700 x 25C타이어 기준 0~80psi 주입하는데 50~60초 정도 소요된다고 나와있네요.

소음은 당연히 큽니다. 방심하면 놀랄정도 였습니다.

자동 정지 기능은 퍼팩트 합니다. 다른 구매 후보 에어 펌프도 있었지만 이 제품을 선택한 주 이유였는데 만족스럽습니다.

무게는 스펙상 130g 이라고 하는데 다른 분의 후기를 보니 약간의 오차는 존재하는거 같습니다.

 저는 39psi 정도 바람을 넣었는데 발열이 조금 있었습니다.  타이어의 밸브는 순간적으로 뜨겁다고 느낄 정도였고 본체는 따뜻함 보단 조금 더 뜨거운 느낌이였습니다.

 

요즘 배터리 사고가 많은데 그런 문제만 없다면 꽤 만족감을 주는 제품이 되지 않을까 생각됩니다.

728x90
반응형
반응형

알리에서 또 시계를 구매했습니다.

BERNY라는 브랜드의 파일럿 워치 143M으로 시작하는 모델입니다.

143M, 143MD, 143MS, 143MSD안에 A, B로 또 구분되는 모델들로 구성되어 있습니다.

143M이 기본모델로 플랫한 글라스이고 D가 붙으면 돔 글라스, S는 스틸 브레이슬릿을 나타냅니다.

뒤에 A는 인덱스가 야광 B는 다이얼이 야광으로 되어 있습니다.

저는 143MS-A2 모델로 플랫한 글래스에 스틸 브레이슬릿에 인덱스가 야광인 모델로 구매했는데요. A뒤에 2는 NO LOGO를 뜻하더라고요. 구매하고 나서 알았네요.

상품구성

상품은 시계와 메뉴얼의 심플한 구성인데요. 한글 메뉴얼은 지원하지 않습니다.

보증서는 따로 있지 않고 메뉴얼 안에 같이 포함되어 있는데 될지는 모르겠네요. 

시계본체

시계는 꼼꼼하게 래핑되어 있고 로고 없는 모델이라 다이얼뿐만 아니라 케이스백에도 글자를 찾아볼수가 없는 깨끗한 모습인데요

일반적으로  케이스백에 무브먼트나 글라스, 방수정보 같은 대략적인 시계의 특징들이 새겨져있는데 아무것도 없다보니 알리에서 설명을 보지 않으면 시계의 특징을 알 수 있는게 없더라고요. 

브레이슬릿

티타늄 시계이니 스틸 브레이슬릿도 당연히 티타늄으로 되어 있고요. 마감이나 만듦새는 나쁘지 않습니다. 7년전엔가 처음 알리에서 샀던 파니스 시계에 비하면 엄청 잘 만든느낌이랄까요.  다만 브레이슬릿은 가공이 미흡한 면이 많이 보입니다.

브레이슬릿

연결핀이 나사식이 아닌건 좀 아쉬웠습니다. 줄길이 조절하는게 어려운건 아니지만 그래도 아쉬운건 어쩔 수 없네요.

버클은 더블락킹 푸쉬버튼 클래스프 방식입니다. 처음 버클을 풀때는 고장인가 싶을 정도로 뻑뻑한대요 한번 풀어보면 다음부턴 뻑뻑한 느낌은 없지만 부드러운 느낌은 아닙니다. 이것도 아쉬운 부분 중에 하나 입니다. 

착샷

SINN의 856을 오마쥬한걸까요? 856의 경우 12시 인덱스가 숫자인데 이 시계는 플리거 A타입의 인덱스를 적용했네요. 둘을 섞어서 만든 느낌인데 자체 디자인인지 아닌지 모르겠습니다.

3시, 6시, 9시에만 숫자이고 나머지 시간은 바 인덱스를 썼는데 플리거 A타입은 다 숫자인덱스를 표기하는거 같던데 이 부분은 공부를 좀 해봐야 알거 같습니다.

글래스는 사파이어 글래스를 사용했는데  손톱으로 톡톡 쳤을때 소리는 뭔가 잘깨지는거 아닌가 싶은 소리가 납니다. 가벼운 소리랄까요.

무브먼트는 미요타8215가 적용되어 있습니다. 파워리저브는 40시간이라고 하는데 더 짧은 느낌이 듭니다.

파워리저브와 오버홀 때문에 앞으로 오토매틱 시계는 사지 않겠다 했는데 또 사버렸습니다.

 

버니 시계 구매

 

BERNY 파일럿 티타늄 자동 시계 남성용, 사파이어 AR 코팅, 10Bar 슈퍼 야광 손목 시계, 스포츠 항공

Smarter Shopping, Better Living! Aliexpress.com

ko.aliexpress.com

 

미요타 무브먼트는 처음인데 수동감기할때 원래 클릭음 같은게 나는게 정상인지 궁금하네요.

티타늄 시계는 처음인데 무게가 정말 가볍습니다. 특유의 색도 맘에 들고요.

사이즈는 40.5mm 러그 투 러그는 47mm 입니다. 100m 방수도 된다고 합니다.

 

기존에 파일럿 시계는 해밀턴의 X-Wind만 가지고 있었는데 전혀 다른 느낌이라 맘에 드네요. 

 

728x90
반응형
반응형

 

기존에 토미카 제품을 몇개 가지고 있긴했지만 유명한 전문 다이캐스트 브랜드의 자동차 모델을 사고 싶어 알아보니 생각보다 가격이 높았습니다.

그래서 일단 알리익스프레스에서 맘에 드는 모델을 구입해봤습니다.

잠시 다이캐스트에 대한 정의를 보자면 

다이캐스트(Die-cast) 모델은 금속 주조 공정을 통해 제작되는 정교한 모형이라고 합니다. 이 과정에서는 주로 아연 합금인 자막(ZAMAK)을 사용하여, 고압으로 금형에 주입하고 빠르게 굳히는데 이 방법은 높은 정밀도와 강도를 갖춘 모델을 대량 생산하는 데 효과적이여서 주로 자동차, 항공기, 군사 장비 등의 축소 모형을 만드는 데 사용된다고 합니다.

주변에서 쉽게 볼 수 있고 알만한 브랜드로 Hot Wheels와 토미카가 있겠네요.

 

제가 알리에서 구매한 제품은 2개의 픽업트럭 모델이였는데요 FORD F150 랩터와 RAM TRX를 베이스로한 모델입니다.

광군제 전에 구매한 제품인데 광군제에 올라온 가격과 차이는 많이 안나더라고요. 사실 알리익스프레스 광군제 할인이 평소할인하는 금액과 차이가 안나는 느낌이긴 해요. 

포장상태

각 제품의 판매자가 다른데 랩터는 박스에 들어있고 TRX는 그냥 비닐 포장이더라고요. 금속제품이라고 해도 플라스틱 파츠들도 있는 제품이라 걱정했는데 다행히  제품에는 문제가 없었습니다. 비닐을 뜯자마자 제품이 보여서 놀랐네요.

 

RAM TRX

본체

 

전면과 측면

드림카인  RAM픽업트럭 실제 살 수 없어 모형으로 대체하는데 맘에 드네요 역시 제가 생각하는 픽업트럭은 검은색이 진리인듯 하네요.

바퀴도 문제없이 잘 붙어 있고 파츠들도 문제 없고 도색도 나름 잘 되어 있습니다. 

파츠 기믹

짐칸의 파츠들을 보면 단순히 모양만 갖추고 고정된 형태가 아니네요. 가방은 여닫을 수 있고 사다리는 폈다 접업다가 되고 삽과 도끼도 뺄 수 있게 되어 있습니다. 적재함의 문도 열 수 있습니다. 

트렁크 내부

적재함 파츠를 빼보면 스패어 타이어가 들어있는데 둘다 고무로 되어 있습니다.

그런데 떼어내다가 고정하는 부분이 부러져 버렸어요. 신경써서 뺐는데 앞쪽이 잘 빠지지 않아 순간적으로 힘들줬더니 허무하게 부러졌는데 저 부분은 약하게 되어 있더라고요. 

실내

문은 4개 모두 열 수 있게 되어 있고 실내 모습 구현도 꽤 잘되어 있는거 같네요. 

하부

하부는 기본적인 자동차의 모습을 심플하게 구현했습니다.

중간쯤 하면 하얗고 얇은 플라스틱 조각이 있는데 건전지가 들어가는 제품이고 건전지가 포함되어 있다면 저렇게 많이 해놓죠.

건전지가 소모되는걸 막아주는 거니까 그냥 빼고 사용하시면 됩니다. 그런데 아무리 둘러봐도 버튼같은 없는데 어디에 건전지를 사용하는걸까요?

후드

차의 앞부분 하단에는 버튼처럼 돌출된게 있는데 이걸 누르면 뭔가 동작하는건가 했더니 후드를 열기 위한 버튼이더라고요.

열어보면 엔진이 보이고 기타 부품들이 심플하게 표현되어 있습니다. 중간중간 도색이 있었다면 더 좋았을거 같은데 조금은 아쉽네요.

발판

대형suv나 픽업트럭에서 볼 수 있는 발판을 구현했습니다. 수동으로 밀어서 빼거나 넣으면 됩니다.

외형만 보고 구매한 제품인데 생각보다 많이 가동률, 파츠의 구성이  만원정도 하는 제품이 맞나 싶을 정도로 놀라웠습니다.

그리고 건전지의 역할은 소리와 라이트를 켜기 위함이라고 상품설명이 되어 있는데 어떻게 켜야 하는지는 나와있지 않았습니다.

여기 저기 찾아보다 알게 된 동작을 위한 키는 바로 앞문이였습니다.

양쪽문의 소리가 다르다는 점이 특징 중 하나겠네요. 소리는 영상으로 확인하실 수 있습니다.

 

F150 RAPTOR

 

포장상태

그래도 조금 더 가격이 높아서 인지 스티로폼 박스에 담겨져 왔네요.

본체외형

랩터는 흰색을 선택했는데 역시 픽업은 검은색인가봐요.

6륜모델인데 웹서핑을 해봐도 실제 존재하는 모델은 찾을 수가 없었습니다. 

역시 외형은 제법 비슷하게 나왔네요. 

본체외형

옆모습은 의외로 어색하네요. 쇼바를 튜닝해서 차체를 높였는데 그와 비례한 휠의 사이즈를 사용하지 않아서 일까요? 

쇼바는 형태만 있는 실제 스프링은 아니지만 나름 도색을 해놓은 점은 칭찬할만하네요. 다만 퀄리티가 그렇게 좋지는 않습니다.

뒷모습은 적당히 비슷한 모습으로 잘 나왔습니다.  

본체외형

TRX와 마찬가지로 4개의 문과 적재함의 문까지 모두 열 수 있습니다.

TRX에서는 언급하지 않았지만 두 모델다 문은 단차 일정하고 열고 닫을 때 단단히 잘 잡아주는 느낌입니다. 

그런데 랩터는 핸들이 안보입니다. 핸들이 있어야 할 자리에 구멍이 있는걸로 봐선 조립과정에서 빠졌거나 누락된게 아닐까 생각되네요. 

 

기타 파츠

랩터는 루프탑 텐트, 적재함 덮개, 가방, 서핑보드, 이름모를 부품으로 파츠 구성이 되어 있는데 하얀색 가방은 열고 닫는게 가능합니다.

적재함 덮개는 루프탑 텐트를 설치하기 위함인데 텐트를 뺀다면 덮개 자체가 예쁘지 않아 텐트 설치가 필수 인거 같습니다. 아니면 둘다 빼거나

루프탑 텐트

루프탑 텐트는 플라스틱으로 이루어져 있는데 확실히 싼티가 납니다.

그래도 모양은 나름 잘 구현됐다고 생각됩니다.

루프탑 텐트

텐트는 삼면의 문만 열수가 있게 되어 있네요.

텐트 내부에는 침대와 테이블, 의자가 구현되어 있습니다. 저렴한 느낌을 팍팍 주지만 그래도 모양은 잘 구현해 두었네요.

후드

랩터 역시 후드를 열 수 있습니다.

TRX는 바닥에 버튼을 눌러서 여는 형태인데 랩터는 양쪽 라이트 테두리 상단이 살짝 들어가있어 후드를 손가락으로 당겨 여는 형태로 구현되어 있습니다.

후드 내부는 랩터가 더 잘 구현했습니다.

쇼바

옆에서 보면 쇼바는 모양만 만들어두고 도색을 한 형태인데 아래부분을 보면 실제로 스프링을 넣어 두었습니다. 모양만 내는게 아니라 손으로 눌러보면 위아래로 잘 움직이는걸 볼 수 있습니다.

랩터 역시 하단에 보면 건전지를 넣을 수 있게 되어 있는데 건전지는 포함되어 있지 않았습니다. 아쉽네요.

 

두 제품 다 생각보다 괜찮은 퀄리티를 보여줬는데 정식 박스 포장이 있었다면 어땠을까 하는 아쉬움이 있습니다.

728x90
반응형
반응형

몇달전에 유튜브에서 카시오 LCW-M100DE 리니지 시계 리뷰를 보고 구매하려고 했으나 당시엔 직구뿐이였고

시간이 지나 국내에도 정발했지만 생각보다 높은 가격때문에 포기했었는데요

리니지는 아니지만 비슷한 형태의 다이얼과 유사한 기능을 가졌지만 소재는 저렴한 그래서 가격도 저렴한 WVA-M630B-3AJF를 구매하였습니다.

 

포장박스

포장박스는 왜인지 지샥박스에 담겨져왔습니다. 처음 받았을때 잘못 주문한줄알았는데 열어보니 제품은 맞게 들어가 있었습니다.

이렇게 오면 사실 굉장히 찝찝하잖아요. 

하지만 귀찮기도 하고 이름 없는 박스도 아니고 지샥박스니 그냥 쓰기로 합니다.

기능설명표

WVA-M630B-3AJF의 기능들을 아이콘으로 표현해놓은 표입니다. 

주목해야 하는기능은 

TOUGH SOLAR BATTERY와 WAVE CEPTOR인거 같아요.

 

TOUGH SOLAR BATTERY

완충시 태양광 충전없는 상태로 4개월간 유지된다고 하고 파워 절약 상태의 경우 22개월을 버틸 수 있다고 하네요.

파워 절약 기능은 어두운 곳에서 일정시간이 경과하면 디지털 표시와 바늘을 멈춰 절전 모드로 전환되는 거라고 합니다.

WAVE CEPTOR

일본, 북미, 유럽, 중국지역 대응 MULTIBAND6 전파 수신기능입니다.

해당 기능으로 인해 파워 절약 기능이 꺼지면 시간을 자동으로 조정하는 모습을 볼 수 있습니다.

시계전면

케이스는 레진과 스테인리스 스틸이라고 하는데 자세히 보면 플라스틱 느낌이 많이 납니다. 저렴해 보이기도 하고요.

글라스는 레진 글라스 입니다. 10만원 내의 중국제 시계들도 요즘은 사파이어 글라스를 많이 쓰던데 사파이어는 아니어도 미네랄 글라스만 되도 어땠을까 싶네요. 

전면확대, 라이트 on

아날로그와 디지털의 조합입니다. 

날짜는 한자로 되어 있는데 영어, 독일어, 스페인어, 중국어도 지원한다고 하네요. 한글로 표시되도 매력적일거 같은데 그럴일은 없겠죠?

우측 상단버튼은 라이트 입니다. 6시 인덱스 아래에 LED가 있네요.

우측 하단 버튼은 시간, 초, 날짜와 요일로 변경하는 기능을 제공하고 왼쪽 하단의 버튼은 월드타임, 스톱워치, 타이머로 변경하는 기능을 제공합니다.

직물 밴드

이 시계에서 가장 맘에 들면서 맘에 안드는 밴드입니다.

저는 직물밴드를 좋아하는데 나토 밴드 같은 형태보다 WVA-M630B-3AJF 에 적용된 형태의 밴드를 선호합니다. 

적당히 볼륨감도 있고 마감도 잘되어 있고 색도 필드워치 느낌나게 잘 만들어진듯 합니다.

그런데 저 밴드 엄청 단단하고 뻣뻣합니다. 구매하시게 된다면 밴드를 돌돌 말거나 접어서 눌러주셔야 쓰기 편합니다.

착용샷

저는 10만원 조금 넘는 돈을 주고 구매했는데 찾아보면 더 저렴하게 파는곳들도 많이 있네요.

디자인만 놓고 보면 툴워치로 좋아보이지만 레진글라스라는 점이 조금 아쉬운 모델이네요.

 

728x90
반응형
반응형

데이터베이스 설계에서 테이블의 컬럼 수는 성능과 관리 효율성에 큰 영향을 미칩니다. 특히 PostgreSQL과 같은 관계형 데이터베이스에서는 컬럼 수를 적절하게 제한하는 것이 중요합니다. 오늘은 PostgreSQL에서 권장되는 컬럼 수와 성능을 고려한 데이터베이스 설계 팁을 알아보겠습니다.

1. PostgreSQL의 컬럼 수 한계

PostgreSQL은 테이블 당 최대 1,600개의 컬럼을 허용합니다. 이론적으로는 많은 수의 컬럼을 포함할 수 있지만, 실무에서 이렇게 많은 컬럼을 가진 테이블을 설계하는 것은 좋지 않습니다. 너무 많은 컬럼은 성능 저하, 데이터 관리의 어려움 등을 초래할 수 있기 때문입니다.

2. 실무에서 권장되는 적정 컬럼 수

PostgreSQL에서 50개 이하의 컬럼이 가장 이상적인 수치입니다. 이는 유지보수성, 인덱스 관리, 쿼리 성능을 종합적으로 고려한 결과입니다. 실무에서는 테이블의 컬럼 수가 많아지면 관리가 어려워지고, 불필요한 데이터 전송이 많아져 쿼리 성능이 저하될 수 있습니다.

50개 이상 200개 이하의 컬럼은 특정 요구 사항에 따라 허용될 수 있지만, 200개 이상의 컬럼을 초과할 경우 성능 저하가 본격적으로 나타나므로 가능한 피하는 것이 좋습니다. 예를 들어, 너무 많은 컬럼이 포함된 테이블에서 SELECT * 쿼리를 실행하면 불필요한 데이터를 전송하게 되어 응답 속도가 느려질 수 있습니다.

3. 성능 최적화 및 설계 팁

테이블의 컬럼 수를 적정 수준으로 유지하면서 성능을 극대화하는 몇 가지 팁을 소개합니다.

  • 정규화: 데이터 중복을 줄이고 필수적인 정보만 남겨두는 정규화를 통해 불필요한 컬럼을 줄일 수 있습니다. 이렇게 하면 테이블이 더 간결해지고 관리가 쉬워집니다.
  • 데이터 타입 최적화: 컬럼의 데이터 타입을 최소한의 크기로 지정하여 데이터 저장 공간을 효율적으로 관리하세요. 예를 들어, 정수형 데이터에는 INT 대신 SMALLINT와 같은 작은 크기의 데이터 타입을 사용할 수 있습니다.
  • 인덱스 관리: 컬럼이 많을수록 인덱스 관리가 복잡해집니다. 필수적인 컬럼에만 인덱스를 추가하고, 자주 사용하지 않는 컬럼에는 인덱스를 추가하지 않는 것이 좋습니다.
  • 컬럼 그룹화: 비슷한 역할을 하는 컬럼들을 하나의 테이블에 모두 포함시키는 대신, 1:1 관계의 별도 테이블로 분리하는 방법을 고려할 수 있습니다. 예를 들어, 고객 정보를 저장하는 테이블에서 연락처 관련 컬럼을 별도의 테이블로 분리하면 쿼리 성능과 관리 효율이 개선될 수 있습니다.
  • JSONB 사용: 만약 컬럼이 1,600개에 가까워야 한다면, JSONB 데이터 타입을 활용해 비정형 데이터를 JSON 형태로 저장하는 것도 하나의 방법입니다. 이렇게 하면 유연한 구조로 다양한 데이터를 담을 수 있습니다.

4. 주의할 사항

테이블을 너무 많이 분리하면 JOIN 연산이 많이 발생하여 쿼리 성능이 저하될 수 있습니다. 데이터베이스 설계 초기 단계에서부터 컬럼 수를 최적화하는 것이 필요하며, 미래 확장성도 고려하여 테이블 설계를 진행해야 합니다.

결론

PostgreSQL에서 적절한 컬럼 수는 약 50~100개 수준입니다. 가능하다면 200개 이상의 컬럼을 포함하는 것을 피하는 것이 성능과 관리 측면에서 좋습니다. 데이터베이스 설계는 현재뿐만 아니라 향후 데이터 확장성과 성능을 고려한 장기적인 관점에서 접근해야 합니다.

728x90
반응형
반응형

아래와 같이 해당 BOOLEAN 타입의 컬럼 값을 반전시켜 저장하려고 하는 쿼리가 있습니다.

update table 
set column = !column 
where seq = 1

 

실행을 하면 오류가 발생하는데요 이유는 PostgreSQL에서 ! 연산자는 지원되지 않기때문입니다.

대신 NOT 키워드를 사용해야 합니다.

해결 방법

컬럼의 값을 반전시키기 위해 아래와 같이 쿼리를 수정합니다.

UPDATE table
SET column = NOT column
WHERE seq = 1;

 

설명

  • NOT column은  컬럼의 값을 True에서 False로, 또는 False에서 True로 반전시킵니다.
  • 컬럼이 BOOLEAN 타입일 때만 NOT 연산을 사용할 수 있습니다.
728x90
반응형

+ Recent posts