2025-09-18

Git 협업 시 반드시 지켜야할 사항 ⚠️

  • 커밋전 먼저 pull하기 !
  • 내 브랜치인지 항상 확인하고 커밋 !


전체과정 정리

1. 작업할 브랜치 생성 후 이동하기

git branch 브랜치이름
git checkout 브랜치이름

checkout -b 를 사용하면 생성과 동시에 이동 할 수 있다

git checkout -b 브랜치이름

2. 브랜치에서 커밋 후 푸쉬하기

(작업 중인 브랜치 에서)
git add .
git commit -m ~

원격 저장소에 해당 브랜치가 없을 경우

git push origin 브랜치이름

원격 저장소에 해당 브랜치가 이미 존재할 경우

git push

3. 로컬 master 브랜치로 이동 후 일단 원격 저장소의 master의 변경사항을 pull 해준다

(작업 중인 브랜치 에서)
git checkout main
(master 브랜치 에서)
git pull origin master

4. 다시 작업한 브랜치로 이동 후 로컬의 master 내용을 내 브랜치에 merge 한다

(작업 중인 브랜치 에서)
git merge master
git push

merge 과정에서 conflict가 난다면 해결 후 push 한다
푸쉬가 완료되면 master와 merge 된 브랜치 내용이 원격 저장소의 내 브랜치에 업데이트 된다

5. github 홈페이지의 repository로 이동 후 pull request 요청을 한다

6. 담당자가 확인 후 pull request를 수락

원격 저장소의 master에 내 브랜치의 내용이 반영된다.


Flutter 위젯

StatefulWidget의 생명주기

  • initState : 생성 시 호출
  • bulid : 빌드 할때 호출, setState() 호출 시 build()가 다시 실행되어 UI를 갱신한다
  • dispose : 사라지기 직전 호출
  • 그 외 생명주기는 나중에 알아보자.

TextField

  • 주요 속성
    • expands : 부모 위젯의 남은 세로 공간을 모두 차지한다 (maxLines: null 필요)
    • onChanged : 값 변경 시 호출
    • onSubmitted : 입력 완료(Enter) 시 호출
    • decoration : 힌트, 테두리, 아이콘 등 스타일 설정
  • TextEditingController
    • TextField에 컨트롤러를 등록해 버튼 등에서 controller.text로 값을 접근 할 수 있다
    • 사용 후에는 반드시 dispose() 호출 → 메모리 해제

키패드 집어넣기 ?⌨️

  • 빈 화면 터치하면 키패드 들어가게 하는건 직접 구현해줘야 한다
  • build 함수에서 scaffold 를 gesturedetector로 감싼 후 onTap() 속성을 이용해서 다음과 같이 구현할 수 있다
  • ctrl + . (💡 warp widget을 사용하자!)
    gesturedetector(ontap() {FocusScope.of(context).unfocus();})
    

ListView

  • ListView.builder : item 을 반복해서 생성할 때 사용한다
  • ListView.separated : item 사이에 구분선이나 간격 위젯을 추가할 수 있다

BottomNavigationBar

  • 주요 속성
    • items: [BottomNavigationBarItem(...)]
    • currentIndex
    • onTap
  • 화면 전환 시 보통 IndexedStack과 함께 사용한다

IndexedStack

  • 여러 위젯을 겹쳐 놓고 index에 해당하는 위젯만 보여준다
  • bodyIndexedStack으로 구성 → 하단 탭 이동으로 화면 전환

페이지 라우팅

  • 새로운 페이지로 이동한다
    Navigator.push(context, MaterialPageRoute)
    

    context의 navigator를 통해 스택에 페이지를 푸쉬한다 생성자와 지역변수를 이용해서 값을 전달 할 수 있다

  • 뒤로 가기
    Navigator.pop()
    



태그:

카테고리:

업데이트: