| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
- 개발자
- 백준
- 자바
- 프레임워크
- ES
- 애자일프로그래밍
- 개발
- Java
- 코딩
- 그리디알고리즘
- 코드
- spring boot
- 엘라스틱서치
- API
- JPA
- kotlin
- Baekjoon
- 읽기쉬운코드
- Elasticsearch
- 데이터베이스
- 애자일기법
- 알고리즘
- 그리디
- 클린코드
- database
- 코딩테스트
- Spring
- framework
- 스프링
- cleancode
- Today
- Total
목록전체 글 (193)
튼튼발자 개발 성장기🏋️
인덱싱 소개MongoDB에서 인덱스는 데이터 검색 성능을 향상시키는 핵심 요소다. 인덱스가 없는 경우, MongoDB는 컬렉션의 모든 문서를 순차적으로 검색하는 컬렉션 스캔을 수행해야 한다. 이는 데이터 양이 많아질수록 성능 저하시킨다는 점에 유의해야한다.인덱스를 생성하면 MongoDB는 특정 필드에 대한 값을 정렬된 형태로 저장하고, 해당 필드의 값을 기반으로 문서를 빠르게 찾을 수 있다. 이는 RDB의 인덱스와 유사하며, 효율적인 데이터 검색을 가능하게 한다.인덱스 생성MongoDB에서 인덱스를 생성하는 기본적인 방법은 createIndex() 메서드를 사용하는 것이다.// 단일 필드 인덱스 생성 db.collection.createIndex({ fieldName: 1 }); // 오름차순 인덱스 d..
도큐먼트 생성1. insertOne(): 하나의 도큐먼트 삽입하나의 도큐먼트를 컬렉션에 삽입할 때 사용된다.db.movies.insertOne({"title": "Stand by Me", "year": 1986});위 예제는 movies 컬렉션에 title이 "Stand by Me"이고 year가 1986인 도큐먼트를 삽입한다. 2. insertMany(): 여러 도큐먼트 삽입여러 개의 도큐먼트를 한 번에 삽입할 때 사용된다.db.movies.insertMany([ {"title": "Stand by Me", "year": 1986}, {"title": "The Shawshank Redemption", "year": 1994}, {"title": "Forrest Gump", "year": 1994} ])..
도큐먼트(Documents) MongoDB의 핵심은 정렬된 키와 연결된 값의 집합으로 이루어진 도큐먼트라는 것이다. 도큐먼트는 데이터를 저장하는 기본 단위이며, JSON(JavaScript Object Notation)과 유사한 BSON(Binary JSON) 형식으로 저장된다. RDB의 `행`에 해당하는 개념이다. 도큐먼트는 데이터형과 대소문자를 구분한다. 예를들어 { "count": 5 }와 { "count": "5" } 는 서로 다른 도큐먼트로 구분된다. 당연히 키는 중복될 수 없다.도큐먼트의 특징1. 키-값(Key-Value)도큐먼트는 아래와 같이 { "key": value } 형태의 필드로 구성된다.{ "name": "dotori", "age": 33, "email": "dotori@exa..
MongoDB는 강력하고 유연하며 확장성 높은 범용 데이터베이스이다. 보조 인덱스,범위 쿼리, 정렬, 집계 및 공간 정보 인덱스 등을 확장 기능과 결합했다. MongoDB는 MariaDB와 같은 RDB와는 다르게 도큐먼트 지향 데이터베이스로써 행 개념 대신 문서(document)라는 유연한 모델을 사용하여 손쉬운 사용을 할 수 있다. 왜 손쉽게 사용할 수 있을까? 손쉬운 사용 유연한 데이터 모델링앞서 이야기한 것 처럼 MongoDB는 스키마가 유연한 데이터베이스다. 즉, 테이블의 구조를 사전에 정의할 필요 없이, 각 문서가 다른 필드를 가질 수 있다. 이를 통해 개발자는 더 빠르게 프로토타입을 만들거나, 변동성이 큰 데이터 구조에 맞게 데이터를 저장할 수 있다.예를들어, 사용자마다 다른 데이터 필드를 가..
1. 불불(Boolean) 타입은 true 또는 false의 두 값만을 가질 수 있는 데이터 타입이다. 주로 조건문, 반복문 등에서 사용된다.var isTrue bool = truevar isFalse bool = falseif isTrue { fmt.Println("True condition!")} else { fmt.Println("False condition!")}2. 숫자Go 언어는 여러 가지 숫자 타입을 제공한다. 숫자 타입은 크게 정수와 실수로 구분된다.2-1. 정수정수 타입은 부호가 있는 int, 부호가 없는 uint와 관련된 타입들이 있다. 정수 타입은 기본적으로 int와 uint로 선언할 수 있다. Go에서는 int8, int16, int32, int64와 같은 다양한 크기를 ..
나는 순수 전기차를 사용하고 있기 때문에 전기차 충전소를 자주 이용한다. 집밥이라고 불리는 집 충전소에서도 거의 매일 이용하고 있는데, 공용 충전소인 만큼 최대 충전 시간이 법적으로 정해져 있다. 여기서 이웃주민들끼리 문제가 생기기 시작한다.충전을 사용하지 않더라도 충전소에 주차를 해놓거나 충전이 다 되어도 이동주차를 하지 않는 비매너 행동과 법적으로 정해진 시간 이상 주차를 해놓는 경우가 매일 생긴다. 새벽출근에 저녁퇴근하는 나는 평일에 충전을 할 수 없는 경우가 종종 생겨 스트레스가 이만저만이 아니다.거기다 푸르지오 스마트홈을 통해 전기차 충전소 각 자리의 상태(충전 중 혹은 충전 가능)를 알 수 있는데, 매번 주차장 앞에서 앱을 키고 조회하기가 번거롭기도 하고 푸르지오 서버가 이슈가 많고 하루에 몇..
더보기더보기GO 언어 관련해서 기본적인 문법 내용은 github에 정리해두었다. 변수, 상수 그리고 열겨형변수를 선언할 때 변수 명에는 공백을 포함하지 않은 문자, 숫자, 언더스코어(_)를 사용할 수 있고 숫자는 첫 글자에 사용할 수 없다. golang에서는 대소문자를 구분한다는 점에 유의해야한다. 참고로 golang은 camel case를 사용하는 것을 권장한다.변수를 선언하는 방법은 크게 4가지가 있다.var 키워드로 선언하고 var 다음에 변수 이름과 타입을 표기한다.같은 타입인 변수를 선언할 경우 콤마(,)로 구분하여 선언할 수 있다.서로 다른 타입의 변수를 선언할 경우 소괄호로 묶어서 한 번에 선언할 수 있다.변수 선언과 동시에 값을 정의할 경우 타입을 생략할 수 있고, := 연산자를 사용할 수..
리스트 연산에서 데이터 공유하기불변성(Immutable)은 함수형 프로그래밍의 중요한 개념 중 하나다. 불변 데이터 구조를 사용할 때, 데이터를 수정하는 대신 새로운 데이터 구조를 반환하여 이전 데이터 구조를 변경하지 않는다. 그러나 불변성을 유지하는 것이 항상 성능을 저하시킬 수 있다는 걱정이 있다. 특히 리스트와 같은 데이터 구조에서는 원소를 추가하거나 수정할 때마다 데이터의 복사본을 만들어야 하기 때문에 성능에 영향을 미칠 수 있다.하지만 데이터 공유라는 기법을 활용하면 성능 저하를 최소화하면서 불변성도 유지할 수 있다. 데이터 공유는 이전 데이터 구조의 일부를 그대로 사용하고, 변경된 부분만 새로운 객체로 생성하는 방식이다. 이를 통해 리스트의 연산에서 메모리와 성능을 최적화할 수 있다.불변 리스..