3주차 시작인 오늘은 첫 조별과제를 받고, git에 대해 배우는 세션을 시청하는 시간을 가졌다. 그리고 지난주, 계산기 앱을 스스로만들어보고, 피드백을 받고 개선해보았다.
git세션에서는 협업는 방법을 배웠다.
대표? 팀장? 이 새로운 파일을 만든후, 처음에 준비할 내용으로는
git init -> git add . -> git commit -m "첫 파일 생성" -> github에서 새로운 repository생성후 새로만든 파일을 github에 업로드해준다.
그러면 같이 협업할 팀원들은 해당 github에 들어가 링크를 복사해와서 git clone (해당링크) (파일이름) 이렇게 해당 파일을 복사해서 가져와주고, 팀장은 settings로 들어가서 팀원들의 github 아이디를 추가해서 협업할 공간에 추가해준다.
default브랜치는 main브랜치이고, 이 브랜치는 완전 최종 배포용 코드용으로 사용하고, 개발된 내용들을 합치는 dev(develope)브랜치를 만들어준다. 이름은 상관없다.
그후 각각 팀원들은 새로운 브랜치를 만들어주는데 보통 개발할 내용을 브랜치이름으로 설정해준다.
여기서 git checkout -b (브랜치명, 예를들면 login?)을 이용하면 랜치를 만들고, 이동하고 두번의 과정을 생략해주고 만들면서 이동해준다.(git branck login , git switch login)
다음 각자 개발할 내용을 개발하고, git push origin 브랜치이름(여기선 login) 을 이용해서 내가 사용하는 브랜치에 push해주고, git pull origin dev를 이용해서 다른 사용자(팀원)들이 만든 코드와 충돌은 없는지확인, 충돌이 있다면 오류 수정한 후에 git push origin dev를 이용해서 개발용 브랜치에 내 코드를 추가시켜주면 협업이 가능하다.
다음은 계산기 앱이다.

나는 이런식으로 ui를 구성했고,숫자패드 부분에서 클릭이 될때, text가"0"이라면 텍스트를 해당숫자로 바꿔줬고, "0"이 아니라면 해당숫자에 입력받은 숫자를 붙여주는형식으로 해봤다.
oneText.setOnClickListener {
val currentNum = finalText.text.toString()
if(finalText.text == "0"){
finalText.setText("1")
}else{
var newNum = currentNum+"1"
finalText.setText(newNum)
}
}
twoText.setOnClickListener {
val currentNum = finalText.text.toString()
if(finalText.text == "0"){
finalText.setText("2")
}else{
var newNum = currentNum+"2"
finalText.setText(newNum)
}
}
피드백을 받은 내용은
이런 내용이였다. 앱을 만들어볼 당시에는 단지 앱을 만들어봐야겠다 라는 생각으로 코드가 반복되더라도 별생각없이 코드를 작성했는데, 저렇게 0부터 9까지 모든 숫자들이 클릭될때마다 같은 형식의 유사 동작 코드를 쓴다면 공통 함수로 바꾼다면 더 보기도좋고, 이해하기도 좋은 코드가 될것 같았다. 그래서 나는
fun clickListener(clickedNumber:String){
val currentNum = finalText.text.toString()
if(finalText.text == "0"){
finalText.setText(clickedNumber)
}else{
val newNum = currentNum + clickedNumber
finalText.setText(newNum)
}
}
clickListener함수를 만들어서 유사 동작 코드를 모아줬고,
oneText.setOnClickListener { clickListener("1") }
twoText.setOnClickListener { clickListener("2") }
이런식으로 간단하게 바꿔주었다.
지금까지 알고리즘 문제를 풀고, 문법 공부를 하면서 너무너무 잘 이해하고 공부한 내용인데, 막상 앱을 만드는거에만 집중을 하니 써먹지는 못했던것 같다. 문법 공부도 중요하지만 어떻게 활용할지도 정말 중요하다고 생각하게 됐고, 배운내용들을 잘 써먹을 수 있게 익숙해지도록 꾸준히 해야겠다!
깃허브 협업과정 깔끔정리..!
그리고 진짜 계산기네요..!! 👍👍
오늘도 고생많으셨습니다.