분류 전체보기
-
[Git] Git의 다양한 merge 방법 이해하기 (Merge / Squash & Merge / Rebase & Merge)📖 개발 공부/git 2023. 5. 28. 16:13
Merge 커밋 이력을 모두 남길 때 사용한다. 일반적으로 많이 사용된다. 두 개 이상의 브랜치를 병합하여 새로운 커밋을 만든다. 병합 커밋은 두 브랜치의 변경 내용을 모두 포함하며, 두 브랜치의 변경 내용이 충돌할 경우 사용자가 충돌을 해결해야 한다. merge를 사용하면 병합된 커밋 히스토리가 남기 때문에 브랜치 간의 관계가 명확하게 나타난다. 여기엔 두가지 옵션이 있다. fast-forward 옵션 대상 브랜치의 최신 커밋이 현재 브랜치의 커밋을 포함하고 있는 상태로 브랜치 포인터(각 브랜치의 최신 커밋을 가리키는 참조)를 이동시킨다. fast-forward 병합은 병합 대상 브랜치의 커밋 히스토리가 현재 브랜치의 커밋 히스토리에 뒤쳐져 있을 때 사용된다. 이 경우, 단순히 현재 브랜치를 대상 브랜..
-
MVC 패턴카테고리 없음 2023. 5. 28. 12:13
Model Model은 앱이 포함해야할 데이터가 무엇인지를 정의한다. Model은 Data와 애플리케이션이 무엇을 할 것인지를 정의하는 부분으로 내부 비즈니스 로직을 처리하기 위한 역할을 한다. 모델은 컨트롤러가 호출을 하면 DB와 연동하여 사용자의 입출력 데이터를 다루는 일과 같은 데이터와 연관된 비즈니스 로직을 처리하는 역할을 한다. View 사용자에게 보여주는 화면(UI) 사용자와 상호작용을 하며 컨트롤러로부터 받은 모델의 결과값을 사용자에게 화면으로 출력하는 일을 한다. MVC에서는 여러개의 View가 존재할 수 있다. Controller Controller는 Model과 View 사이를 이어주는 인터페이스 역할을 한다. Controller는 앱의 사용자로부터의 입력에 대한 응답으로 Model 또..
-
MVVM 패턴카테고리 없음 2023. 5. 21. 19:32
MVVM(Model-View-ViewModel) 패턴에서는 뷰와 뷰모델 사이의 양방향 데이터 바인딩을 발견할 수 있다. 뷰 모델 안에서 그리고 뷰에게 수정사항들을 자동적으로 이동시킨다. 뷰모델에서 변화를 주기 위해서, 뷰모델은 옵저버 패턴을 사용한다. View에서 사용자의 입력을 ViewModel로 전달 → ViewModel에서 Model로 데이터 요청 및 처리 → View는 ViewModel를 Provider나 Stream 등을 통하여 구독하거나 데이터 상태 관리를 통해 View를 업데이트 Model 데이터 소스는 원격 데이터베이스, 로컬 데이터베이스 또는 RESTful API와 같은 것이 될 수 있다. 데이터 소스에 액세스하는 것은 데이터 레포지토리(Data Repository)를 통해 이뤄진다. 사..
-
[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 색상을 ..
-
[클린코드] 함수📚 개발 도서/클린코드 2023. 5. 7. 11:08
3-2 함수가 읽기 쉽고 이해하기 쉬운 이유는 무엇일까? 의도를 분명히 표현하는 함수를 어떻게 구현할 수 있을까? 함수에 어떤 속성을 부여해야 처음 읽는 사람이 프로그램 내부를 직관적으로 파악할 수 있을까? 이 질문들과 함께 챕터를 읽어보자. 작게 만들어라! // 3-3 public static String renderPageWithSetupAndTeardowns ( PageData pageData, boolean isSuite) throws Exception { if (isTestPage(pageData)) includeSetupAndTeardownPages(pageData, isSuite); return pageData.getHtml(); } → 이 함수는 이야기처럼 술술 읽혀진다. 블록과 들여쓰기 ..
-
[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이다. 키워드를 통해 문서를 찾아내는 방식이다. 데이터를 색인하는 과정에서 찾고자 하는 키워드를 기준으로 위치를 저장해두어 속도를 개선..