분류 전체보기

NoSQL 에서 스키마? NoSQL 은 스키마라는 개념이 없다. 그래서 NoSQL 인 MongoDB 에서 스키마를 설계한다는 말이 이해가 안 될 수 있다. 우선 RDBMS 와 같은 스키마 개념은 없다고 보는게 맞다. 엄밀이 비유하면 Table 은 Collection , Row 는 Document 로 표현은 가능하지만 그렇다고 스키마를 설계하지는 않는다. 그렇다면 여기에서 말하는 스키마란 무엇일까? MongoDB 스키마 디자인 MongoDB 스키마 디자인은 RDBMS 의 디자인과 많이 다르게 작동한다. 먼저 규칙, 정규화에 대한 개념이 없고 Document 에 Key-Value 구조로 저장된다. 아래 데이터의 경우 RDBMS 라면 정규화를 거쳐 배열데이터를 별도의 테이블/로우로 분리 할 수도 있지만 Mon..
몽고DB 데이터는 유실된다? 얼마전 한 유튜브 강의에서 몽고DB 는 데이터가 유실될 수 있다는(왜?는 말씀하지 않으심) 이야기를 듣고 조금 의아하여 구글링을 조금 해보았다. 그랬더니 많은 블로그에서 데이터 유실이 있다는 부분을 작성하였는데 언제, 얼마나, 왜 발생하는지에 대한 내용은 작성되어 있지 않았다. DB관리자로써 나는 이걸알고 싶은데.. 그래서 한국문서를 넘어 해외문서를 뒤적거리고나서 어느정도 원하는 답을 알게 되었다. 그러나 찾아본 자료가 이분들이 말하는 유실과 같은의미를 담고있는지는 잘 모르겠다. MongoDB 꼬꼬마로써 발견하지 못한 자료가 더 있을지는 모르겠다. 다른점으로도 Memory Map 을 사용하고 주기적으로 flush 하는 동작이기 때문에 이 사이에 발생하는 장애로 인한 유실도 배..
파일별 용도는 다시정리해서 MongoDB 데이터폴더 구조 MongoDB 로그폴더 구조 MongoDB 속성폴더 구조
mongosh 몽고DB 에 접속하는 툴 mongosh 시 SSL 에러 OpenSSL configuration error: digital envelope routines: ... 에러가 발생 openssl3 의 mongosh 로 재설치 sudo yum install mongodb-mongosh-shared-openssl3 mongosh 로 접속 접속 성공
MongoDB 지원 OS MongoDB 는 총 4개의 운영체제를 지원 - Windwos / Linux / Unix Solaries / Mac MongoDB 를 사용하는 대부분의 유저는 90% 가 리눅스 사용 - 빅데이터 처리를 위해서는 많은 수의 머신이 필수적으로 필요 - 운영체제에 대한 비용이 상대적으로 적은 리눅스를 사용 MongoDB 는 메모리 관리를 운영체제에 맡김 - 상대적으로 메모리 관리에 뛰어난 unix 베이스의 운영체제를 선택 MongoDB 지원 언어 지원하는 언어 - Java / Java Script - Perl / PHP / Python - Ruby / Scala / Erlang / Haskell MongoDB 설치방법 AWS Linux 2023 에 설치합니다. https://www.m..
MongoDB 소개 Key Value 와 다르게 여러 용도로 사용이 가능 스키마가 고정되지 않음 - 스키마 변경으로 이슈가 없음 - 데이터를 구조화해서 json 형태로 저장 ( key - value 화 ) 조인이 불가능하기 때문에 조인이 필요없도록 설계 필요 MongoDB 특징 메모리맵 형태의 파일엔진 DB 이기 때문에 메모리에 의존적임 - 메모리 크기가 성능을 좌우 - 메모리를 넘어서는 경우 성능이 급격히 저하됨 쌓기만 하고 삭제가 업는 로직에 적합 - 로그 데이터 - 이벤트 참여 내역 - 세션 왜? 트랜잭션이 필요한 금융, 결제, 빌링, 회원정보등에는 부적합 RDBMS 가 적합 도큐먼트 데이터 모델을 사용 - 속성의 이름과 값으로 이루어진 쌍의 집합 - 속성은 문자열이나 숫자, 날짜 가능 - 배열 또..
파이썬의 변수 타입 파이썬에 변수를 대입할 때는 문자나 숫자를 고려할 필요가 없습니다. 다만 대입될 때 타입이 정해지기 때문에 이 후 변수를 사용할 때는 타입을 고려해야 합니다. 아래 예시를 보면 10의 문자열 숫자와, 5의 정수형 숫자를 더하려고 하면 오류가 발생합니다. strnum="10" intnum=5 print(strnum+intnum) 문자를 숫자로 변경하는 방법 int 함수나 float 함수를 사용합니다. strnum="10" intnum=5 print(int(strnum)+intnum) 소수점이 있는 경우 int 함수를 사용하면 소수점 아랫자리는 없어집니다. 소수점을 포함하고 싶은 경우 float 함수를 사용합니다. 숫자를 문자로 변경하는 방법 str 함수를 사용합니다. 이 외 format..
키보드로 값 입력받기 코드상에서 변수에 값을 대입하는 경우도 있지만, 외부에서 값을 입력받아 대입하는 경우도 필요합니다. input 함수는 키보드에서 입력받은 값을 변수에 대입합니다. name = input('이름을 입력해보세요') num = input('지역코드를 입력해보세요') print(name, '/', num)
변수란 컴퓨터는 여러 값을 기억하기 위해 내부에 메모리라는 장치를 가지고 있습니다. 파이썬 변수는 컴퓨터의 메모리에 값을 저장하고 데이터나 처리 결과를 기억합니다. 변수의 이름을 정하는 방법 변수를 사용하려면 변수의 이름을 정해야 하는데, 아래와 같은 규칙이 있습니다. 영문사, 숫자, 언더스코어(_) 를 사용합니다. 숫자로 시작할 수 없습니다. 대소문자가 구분됩니다. 코드상 의미를 가지는 예약어는 사용할 수 없습니다. 변수에 값을 대입하는 방법 변수 = 값 의 구조를 사용합니다. 한번 들어간 값은 로직에 의해 변경될 수 있습니다. 변수 사용 예시 변수에 값을 대입하고 출력하는 코드입니다. int_var = 123 str_var = '가나다' print(int_var, '/', str_var) str_va..
주석이란 코드를 작성하다 보면, 코드에 대한 설명을 하거나 코드를 임시로 비활성화 해야 하는 경우가 있습니다. 이런 경우 주석 기능을 이용합니다. 주석처리 하는 방법 한줄만 하는 경우 # 문자열을 이용하여 주석으로 처리할 수 있습니다. # 이 붙은 뒤의 문자열은 주석으로 인지하여 처리하지 않습니다. # 작성일자 : 2023.04.08 # 기능 : 함수 테스트 def func(name): print(name) # name 의 문자열을 출력합니다. 여러줄을 하는 경우 ' 혹은 " 문자 세 개를 사용하여 처리할 수 있습니다. # 작성일자 : 2023.04.08 # 기능 : 함수 테스트 def func(name): ''' 여기는 주석입니다. print('single', name); ''' """ 여기는 주석입니..
꽁담
'분류 전체보기' 카테고리의 글 목록