부트캠프 일지

부트캠프 11일차 후기.

여름하인 2023. 12. 11. 20:51

오늘로써 벌써 부트캠프 3주차에 접어들었다. 시간이 정말 빠르게 지나가는 것 같다...

 

오늘 CodeKata는 LV3 5문제를 풀었다. "44. 최소직사각형" 의 풀이법을 우유부단하게 고민하다보니 여기서 시간의 대부분을 잡아먹어버렸다. 맨 처음 떠올린 풀이법으로 정답을 얻은 것이 안타까운 일이지만.. 그래도 풀면서 Kotlin에서 사용하는 문자열 메소드 몇개를 배운 것은 큰 수확이다.

 

가장 기억에 남는 건 문자열 일부를 가져오기 위해선 substring 메소드를 사용한다는 것이다. 그리고 찾다보니 subsequence란 메소드도 존재한다는 사실을 알게되었다.

이 둘은 다른 부분이 있는데, 내가 subsequence 문자열을 toInt()를 주었을 때, 작동을 하지 않았다. 즉, subsequence가 반환하는 값과 substring이 반환하는 값은 타입이 미묘하게 다르다고 결론을 낼 수 있었다. 그래서 구글링을 해본 결과 substring은 string 타입, subsequence는 string과 비슷한 charsequence란 읽기 전용 문자열 타입을 반환한다. 그래서 toInt()에서 오류가 발생한 것이였다.

 

또 Kotlin에서도 Java에서 처럼 isUpperCase, isLowerCase, toUpperCase, toLowerCase 등의 문자열 함수를 사용할 수 있어서 편리해질 것 같다.

 

구글링을 하며 새롭게 알게 된 메소드가 있는데, 컬렉션 withIndex란 편리한 메소드이다. JavaScript에서 비슷한 기능을 지원하는 것으로 기억하는 데, 이 메소드는 컬렉션 내부를 순회할 때, 인덱스와 값을 둘다 반환한다.

간단하게 예를 주면

fun main()
{
var arr = arrayOf(1, 2, 3)

for((idx, value) in arr.withIndex())
{
println("$idx $value")
}
}

이런 식으로 배열을 순환할 수 있다. 이 메소드는 CodeKata를 하며 편리하게 사용할 수 있을 것 같다.

 

오늘 오후에 github 특강이 있어서 특강을 들었는데, 협업을 안 한지 오래되어서, branch에 관해 정말 오랜만에 배우게 되었다. branch는 프로젝트의 특정 순간의 복사본에 가깝다.

 

git branch "브랜치 이름"

 

로 브랜치를 생성할 수 있다.

 

git branch -D "브랜치 이름"

 

로 브랜치를 삭제할 수 있다.

 

git checkout "브랜치 이름", git switch "브랜치 이름"

 

로 브랜치 사이를 이동할 수 있다.

 

git checkout -b "브랜치 이름", git switch -c "브랜치 이름"

 

로 브랜치 생성과 동시에 해당 브랜치로 이동 할 수 있다.

 

git merge "브랜치 이름"

 

로 브랜치를 합칠 수 있다.

 

특강에서는 pull request를 통해 해당 branch와 본래의 코드의 차이점을 볼 수 있고,  코멘트를 남길 수 있다고까지 알려주었다.

 

그리고 조언하기를, 배포용 branch와 개발용 branch를 따로 두는 것을 추천하였다. 그리고 각 팀원이 개발용 branch에서 branch를 생성해서 각자 작업하고, 개발용 branch와 merge를 하기 전에 git pull origin "개발용 branch" 를 해서 자기 컴퓨터에서 해당 코드가 제대로 작동하는 지 확인하고, merge를 하라고 하였다. 확실히 이러한 방식으로 github를 사용해 효과적으로 협업을 할 수 있을 것이란 생각이 든다.

 

내일은 팀원분들과 함께 팀 프로젝트를 진행할 예정이다. 코드 화면을 하나 띄우고 각자 의견을 제시하며 코딩을 하는 방식으로 진행 될 예정이다. 그리고, 오늘은 도서관이 휴관이라서 끝끝내 못 갔지만, 내일은 도서관에 들려서 공부 할 책을 빌릴 예정이다.