📖 개발 공부
-
[Git] commit을 변경하는 git commands📖 개발 공부/git 2023. 5. 14. 22:32
git commit —amend git commit 커맨드에 —amend 옵션을 붙이면 직전에 남긴 커밋 메시지를 수정할 수 있다. 예를 들어 다음과 같이 오타를 포함한 커밋을 한다고 치자. git commit -m "feat: date_pickeㄱ 구현" 이를 —amend 옵션을 통해 수정할 수 있다. 다음과 같은 텍스트 에디터가 나오면, 커밋 메시지를 수정하면 된다. --amend 를 실행하면 commit id가 완전히 변하게 된다. git cherry-pick 다음 명령어는 다른 브랜치에 있는 커밋을 선택적으로 현재 브랜치에 적용시킬 때 사용하는 커맨드이다. 현재 branch에 붙는 commit은 새로운 commit id가 부여된다. -n flag를 추가하면 add만 수행하고 commit은 하지 않..
-
[Flutter] Line Chart 구현하기📖 개발 공부/flutter 2023. 5. 7. 14:15
다음과 같이 선차트를 flutter에서 그려보려고 한다. fluttergems 사이트에서 차트를 검색하여, syncfusion_flutter_charts 패키지를 찾았다. 이 패키지를 이용하여 LineChart 위젯 클래스를 만들었다. LineChartData라는 데이터 클래스를 이용해서 LineChart를 그리도록 했다. LineChart에 LineChartData 리스트인 dataList, marker 색상, baseValue (위의 분홍색 기준선) 를 파라미터로 넣어 LineChart 클래스를 생성하도록 했다. LineChartData의 name을 String 타입으로 설정하여 x축의 어떤 데이터든(날짜, 년도, 월) 그릴 수 있도록 했다. (위의 차트 참고) 그리고 데이터마다 marker 색상을 ..
-
[Elasticsearch] Elasticsearch 구성요소📖 개발 공부/elasticsearch 2023. 5. 5. 12:12
Cluster 엘라스틱 서치는 기본적으로 클러스터라는 단위로 데이터를 제공한다. 이는 하나 이상의 물리적인 노드로 이뤄져 있으며 각 노드는 모두 데이터 색인 및 검색 기능을 제공하는 일종의 물리적인 서버이기도 하다. Node 물리적으로 실행된 Runtime 상태의 Elasticsearch. 노드는 논리적인 클러스터를 이루는 구성원의 일부이며 실제 데이터를 물리적으로 가지고 있는 단일 서버이다. 실행 시 노드는 클러스터에 의해 UUID가 할당되고 클러스터 내에서는 할당된 UUID로 서로를 식별한다. node의 종류 마스터 노드: 클러스터의 제어를 담당한다. node.master 데이터 노드: 데이터를 보유하고 CRUD, 검색, 집계 등 데이터 관련 작업을 담당한다. node.data 인제스트 노드: 색인 ..
-
[자료구조] 색인(Index), 역색인(Inverted Index)📖 개발 공부/자료구조 2023. 5. 1. 17:37
Elasticsearch의 대표 특징으로 불리는 역색인에 대해 알아보려고 한다. 역색인(Inverted Index)에 앞서, 색인(Index)에 대해 알아보자. 색인(Index)이란? 위의 사진에서 Forward Index이다. 문서에서 키워드를 찾아 보기 쉽도록 정렬 및 나열한 목록이다. 특정한 데이터가 어느 위치에 있는지 미리 저장해두어, 검색 시에 빠른 속도로 찾을 수 있도록 한다. 키워드를 토대로 데이터를 찾을 경우 마지막 데이터까지 확인을 해야할 수 있어 시간이 오래 걸릴 수 있다. 역색인(Inverted Index)이란? 위의 사진에서 Inverted Index이다. 키워드를 통해 문서를 찾아내는 방식이다. 데이터를 색인하는 과정에서 찾고자 하는 키워드를 기준으로 위치를 저장해두어 속도를 개선..
-
[자료구조] 자료구조란?📖 개발 공부/자료구조 2023. 4. 16. 14:27
자료구조의 정의 자료구조는 데이터를 효율적으로 저장하고 조작하기 위한 방법을 다루는 컴퓨터 과학의 분야이다. 컴퓨터 프로그램에서 데이터는 배열, 연결 리스트, 스택, 큐 등의 자료구조로 구성된다. 이러한 자료구조들은 특정 알고리즘의 작동에 필수적이며, 프로그램의 효율성과 성능에 큰 영향을 미친다. 자료구조의 특징 효율성: 상황에 맞는 자료구조를 사용하면 데이터 처리의 효율성이 높아진다. 데이터 접근, 삽입, 삭제, 검색 등의 연산이 빠르고 효율적으로 이루어져야 한다. 추상화: 추상화란 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추리는 것을 말한다. 자료구조는 데이터를 추상화하여 다양한 형태로 표현할 수 있다. 자료구조를 이용할 때 자료구조를 구현하는 자세한 작동원리보다는 사용 방..
-
[Flutter] TabBar, TabBar 정렬📖 개발 공부/flutter 2023. 4. 11. 23:30
DefaultTabController, TabBar, TabBarView를 사용하여 탭을 넣어보자. TabBar DefaultTabController 선택된 탭과 컨텐츠를 동기화하고, 기본 컨텐츠를 유지하려면 TabController가 필요하다. const DefaultTabController({ super.key, required this.length, this.initialIndex = 0, required this.child, this.animationDuration, }) length: 탭의 개수 (필수 파라미터) TabBar Tab Widget 목록 탭을 문자, 아이콘 또는 하위 Widget을 명시할 수 있다. Align( alignment: Alignment.centerLeft, child: ..
-
배포 전략 (Rolling Update, Blue/Green, Canary)📖 개발 공부 2023. 4. 9. 23:37
Rolling Update 구 버전에서 신 버전으로 트래픽을 점진적으로 전환하는 배포이다. 배포되어있는 팟들을 동시에 업데이트하는 것이 아니라 1개, 2개 등 퍼센테이지를 정해 교체해 나가는 방식이다. 즉, 새 버전 인스턴스를 하나씩 늘려가고 기존 버전의 인스턴스를 하나씩 줄여나가는 방식이다. 서비스의 중단이 발생하진 않지만, 서비스가 받는 부하가 커지며 구버전과 신버전이 공존하는 시기가 존재할 수 있는 단점이 있다. 관리가 편하지만 배포 중 한쪽 인스턴스의 수가 감소되므로 서버 처리 용량을 미리 고려해야 한다. 롤링 업데이트를 하기 위해서는 RS(Replica Set)이 2개가 필요하고, replica의 수를 단계적으로 조절해줘야 한다. 배포가 잘못되었을 경우, 롤백을 하기 위해 순서를 거꾸로 실행해야..
-
[Kotlin] sortedBy와 sortedWith의 차이점📖 개발 공부/kotlin 2023. 4. 9. 23:23
sortedBy sortBy는 원본 리스트를 바꾸고, sortedBy는 원본 리스트를 바꾸지 않고 소팅된 리스트를 리턴한다. selector을 지정하면 소팅 기준을 정할 수 있다. strings.sortedBy { it } 페어를 사용할때도 하나의 기준을 두고 정렬하고 싶을 때 사용하면 된다. pair에 접근할 때는 it.first, it.second로 접근하면 된다. 내림차순으로 정렬할 땐 sortedByDescending()을 사용하면 된다. sortedWith 역시 원본 리스트를 바꾸지 않고 소팅된 리스트를 리턴한다. sortedBy()와 다른 점 은 comparator을 지정해서 다중 기준을 둘 수 있다는 점이다.