내일배움캠프 4일차

김재현·2024년 2월 29일

오늘은 어제 이어서 캘린더를 마무리하고 어제 들은 깃허브 강의를 복습하였습니다.


어제 만든 레이아웃을 완성하였습니다!

그 다음 기능을 넣어주었는데 확실하게 백퍼센트 이해가 되지않아서 이해가 된 부분만 넣어보겠습니다 ㅠㅠ

class CalendarActivity : AppCompatActivity() {
    var userID: String = "userID"
    lateinit var fname: String
    lateinit var str: String
    lateinit var calendarView: CalendarView

    private lateinit var binding: ActivityCalendarBinding
    override fun onCreate(savedInstanceState: Bundle?){
        super.onCreate(savedInstanceState)
        binding = ActivityCalendarBinding.inflate(layoutInflater)
        setContentView(binding.root)

제일 먼저 저희 팀은 뷰 바인딩을 사용하였기 때문에 선언해주었고

그 다음은 변수를 가져와 상황에 맞게 항목을 가져와 주었습니다.

날짜를 선택하였을 때

binding.calenderView.setOnDateChangeListener { view, year, month, datOfMonth ->
	binding.diaryTextView.visibility = View.VISIBLE
	binding.saveBtn.visibility = View.VISIBLE
	binding.contextEditText.visibility = View.VISIBLE
	binding.diaryContent.visibility = View.INVISIBLE
	binding.updateBtn.visibility = View.INVISIBLE
	binding.deleteBtn.visibility = View.INVISIBLE
	binding.diaryTextView.text = String.format("%d / %d / %d", year, month + 1, 	datOfMonth)
	binding.contextEditText.setText("")
	checkDay(year, month, datOfMonth, userID)
}

저장 버튼을 눌렀을 때

binding.saveBtn.setOnClickListener {
	saveDiary(fname)
 	binding.contextEditText.visibility = View.INVISIBLE
 	binding.saveBtn.visibility = View.INVISIBLE
 	binding.updateBtn.visibility = View.VISIBLE
 	binding.deleteBtn.visibility = View.VISIBLE
 	str = binding.contextEditText.text.toString()
	binding.diaryContent.text = str
    binding.diaryContent.visibility = View.VISIBLE
}

수정 버튼을 눌렀을 때

binding.updateBtn.setOnClickListener {
	binding.contextEditText.visibility = View.VISIBLE
	binding.diaryContent.visibility = View.INVISIBLE
	binding.contextEditText.setText(str)
	binding.saveBtn.visibility = View.INVISIBLE
	binding.updateBtn.visibility = View.INVISIBLE
	binding.deleteBtn.visibility = View.INVISIBLE
	binding.diaryContent.text = binding.contextEditText.text
}

삭제 버튼을 눌렀을 때

binding.deleteBtn.setOnClickListener {
	binding.diaryContent.visibility = View.INVISIBLE
	binding.updateBtn.visibility = View.INVISIBLE
	binding.deleteBtn.visibility = View.INVISIBLE
	binding.contextEditText.setText("")
	binding.contextEditText.visibility = View.VISIBLE
	binding.saveBtn.visibility = View.VISIBLE
	removeDiary(fname)
}

그리고 fileInputStream과 fileOutStream이 존재하는데 정확하게 공부를 해봐도 어떠한 역할을 하는지 감이 잘 안잡혀서 계속 공부해봐야 할 것 같습니다!

부가적인 기능들도 공부하여 추후에 올리겠습니다 ㅠㅠ

출처: [https://stickode.tistory.com/139]
.
.
.
.
.
어제 깃허브에 대한 강의 들은 것도 오늘 복습해보겠습니다.

필수 리눅스 명령어!

  1. pwd (print working directory)
  • 현재 내가 작업하는 폴더를 보여달라는 뜻
  1. ls (list)
  • 내 폴더 안에 있는 폴더 & 파일 내역을 보여줌
  1. ls -a (list all)
  • 숨겨진 파일(보통 . 으로 시작함)도 모두 볼 수 있음
  1. cd 폴더명 (change directory)
  • ls 명령어에서 확인된 폴더로 이동 가능
  • desktop 안에 있는 다른 폴더로 이동 가능
  • 마치 데스크탑의 폴더를 더블 클릭해서 들어간 것과 같은 효과
  1. mkdir 폴더명 (make directory)
  • 현재 경로에서 폴더를 생성하는 명령어
  1. touch 파일명
  • 현재 경로에서 파일을 생성하는 명령어
    *참고: 정확히는 파일의 생성과 파일의 날짜, 시간을 변경하는 명령어

Git이란?

  • 코드 변경점 기록, 버전 관리 도구 (형상 관리 도구)
    (소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것)

  • 진행사항을 백업해두기 위해서

Git 필수 명령어

  1. git init -코드 관리를 시작하는 명령어
  • initialoze (초기화하다,초기 세팅하다)의 준말
  • 프로젝트 시작 전 딱 한 번 만 입력하면 됨
  • 정확한 프로젝트 폴더(경로)에서 입력해야함
  1. git add & commit
  • git add 파일명 , git add . (변경사항 한 번에 지정)
  • git commit -m "메세지 작성"
  • 저장이 여부를 확인하는 방법 - git status
  1. git log
  • 저장 내역을 확인하는 명령어

Github 으로 코드 백업하기

  1. 온라인 저장소 (repsitory)를 만들기
  2. git remote add origin <github 주소>
  3. git branch -M main or master
  4. git push -u origin main

Github 협업하기 + 충돌 해결하기

  1. 협력자(collaborator) 등록하기
    -팀원들의 username 혹은 email로 추가 -> 수락
  2. 코드 복사해오기 - git clone
  3. git pull 정리
  4. 충돌(Conflirct) 해결하기
  • 충돌이 발생하는 이유는?
    -같은 파일의 같은 위치에 코드가 변경되었기 때문
  1. 충돌 해결 후 다시 git push하기
  • 코드 수정 -> 코드저장 명령어 실행 -> git push origin 브랜치명

0개의 댓글