ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024/02/28 BOOTCAMP TIL
    Android 2024. 2. 28. 23:50

    오늘이 세번째 TIL 작성이다! 아직 공부방법도 많이 미숙하지만, TIL을 더 체계적으로 꾸준히 작성할 수 있도록 노력해야겠다 :)

     

    오전에는 알고리즘 2번~4번 풀면서 다른 사람들이 푼 방법을 확인하여 코드를 따라쳐보았다.


    알고리즘 2번)
        fun solution(num1: Int, num2: Int): Int {
            var answer: Int = 0
            if((num1>=0 && num1<=100)&&(num2>=0 && num2<=100)) {
                answer = num1*num2
                return answer
            } else {
                return answer
            }
        }
    }


    알고리즘 3번)

    class Solution {
        fun solution(num1: Int, num2: Int): Int {
            var answer: Int = 0
            answer = num1/num2 // 몫을 반환
            return answer
        }
    }

     

    다른 사람들이 작성한 4개의 코드를 참고하였는데, 가장 나한테 맞는 코드는 아래이다.

    class Solution {
        fun solution(num1: Int, num2: Int): Int {
            var answer : Int = 0
            if (num1 in 0..100 && num2 in 0..100) {
                answer = num1 / num2
            }
            return answer 
        }
    }

    in 을 사용하며 간략하게 표현을 할 수 있는 점이 매력있게 느껴졌다.

    몫은 ' / ' 을 사용한다.


    알고리즘 4번)

    class Solution {
        fun solution(age: Int): Int {
            
            var answer: Int = 0
            val standardYear = 2022 // 기준년도 상수
            
            if(age in 0..120) {
                answer = standardYear - age + 1 }
            
            return answer
            
        }
    }

     

    다른 사람의 출생년도를 생각할 때, 내 출생년도는 2024-24+1 = 2001 년 이다. age는 만나이를 적용하지 않은 것임을 알 수 있다. 기억해서 실생활에 필요할때 써도 좋을 것 같다. 반대로, 몇년생인지 물었을 때 나이를 알려면 age = standardYear - bornYear + 1 임을 알 수 있다. 현재 2024년이니까, 다른 사람의 나이를 알 때 '저 2008년생이에요~' 라고 하면 2025 - 2008 = 17살임을 바로 알 수 있다! ( 즉, 나이 = 2025 - 출생년도 )


    오후(14:00~16:00) 에는 배움캠프에서 진행하는 Git과 GitHub에 대한 줌 설명회를 들으면서 필기를 최대한 하였다. 학교에서도 몇번 들어보긴 했는데 제대로 배워본 적이 없었고, 거의 처음 듣는 생소한 내용이라 바로 이해하기는 힘들었다. 튜터님이 복습을 강조하셨다!

    윈도우 Git 설치 - git | UsingU

     

    윈도우 Git 설치 - git | UsingU

    프론트엔드에서 코드의 버전 관리를 위해서 필수적으로 Git을 사용합니다. 디자이너들에게 익숙하지 않은 명령줄 인터페이스 (CLI Command Line Interface)만 VScode를 이용하면 GUI모드와 유사하게 사용

    usingu.co.kr

     

    윈도우에서 Git과 github을 사용해 보기 :: Modern Architecture Stories (tistory.com)

     

    윈도우에서 Git과 github을 사용해 보기

    GIt은 리누스 토발즈에 의해 개발된 분산형 파일 버전 관리 시스템을 말함 GitHub는 Git을 웹호스팅을 통해 관리할 수 있게 해주는 무료 웹사이트 gitbash를 통해 윈도우 환경에 git을 사용할 수 있는

    sharplee7.tistory.com

     

    아래는 들으면서 필기한 내용이다.


    - 앱트랙은 git bash(윈도우)로 진행한다.
    1. pwd(print working directory) : 내가 작업하는 폴더 보여주는 명령어 
    2. ls(list) 
    desktop(바탕화면) 
    3. ls -a(list all) : 숨겨진 파일(보통 . 으로 시작함)도 모두 볼 수 있음 
    4. cd 폴더명 (change directory) 
    ex) cd Desktop : 파일 위치를 바꾼다 
    자유자재로 디랙토리 왔다갔다 하기 
    4.1 cd .. => 한 단계 위(세부적으로 들어가는게 아니라 더 큰 폴더로 들어감)의 폴더로 이동하는 명령어
    ~ : home directory
    4.2 cd 폴더명/폴더명 -> 폴더명으로 들어갈 수 있음 
    5. mkdir 폴더명 (make directory) -> 폴더를 만드는 명령어
    ex) mkdir test  
    6. touch 파일명 (파일 생성) ex) cd text(폴더 들어감) > touch a.txt(파일 만들기) * 범주 : 폴더 > 파일 
    -> 6개 명령어만이라도 복습 하기!! (복습이 중요하다)
    Git 
    파일, 폴더를 복사할 필요없이 수정을 할 수 있는 방법이 없을까 ? -> Git
    하나의 폴더 내에서 코드의 변경점을 기록할 수 있다.
    에러 발생 시 과거의 코드 기록으로 쉽게 되돌아갈 수 있다.
    Git이란? 코드 변경점 기록 / 버전 관리 도구(형상 관리 도구) - 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것 
    Github
    백업, 공유, 협업이 가능한 온라인 코드 저장소
    링크를 통해서 공유할 수 있음 -> 협업도 가능
    Dropbox, Google Drive, OneDrive -> 온라인 백업 
    -> Git과 Github 는 다른 개념임 
    Git 필수 명령어
    강의 듣고 직접 실습을 해보면서 에러나거나 궁금한 점이 있으면 예병수 튜터에게 DM 또는 각 반 튜터님께 질문하기 (질문하기 전에 검색 먼저 하면 좋음) 
    1. git init - 초기화, .git 폴더 생김, 코드 변경 git에서 추적 시작
    코드 관리를 시작하는 명령어 
    initialize(초기화하다, 초기 세팅하다)의 준말
    프로젝트 시작 전 딱 한 번만 입력하면 됨
    정확한 프로젝트 폴더(경로)에서 입력해야 함 
    1. 코드를 작성할 폴더를 만들기 ex)giti-test 폴더
    2. 폴더 우클릭 > Git Bash Here 누르기 (터미널 여는법)
    3. 경로 확인 꼭 하기 
    repository (저장소) 
    Initialized empty Git repository in ~~ --> 성공 
    git init 명령어를 입력했을때?
    .git 이라는 폴더가 생깁니다. 이때부터 코드 변경을 git에서 추적한다. 
    정확한 폴더 내에서 git init 명령어 실행해야 한다. 
    2. 코드를 저장하는 명령어 - git add & commit
    1. git add 파일명 -> 저장하기 전 저장할 파일 지정 / 저장할 파일을 지정한다.
    2. git commit -m "메세지 작성" -> 메세지 부분은 내가 무슨 코드를 짰는지 '자세하게 적는 것'이 좋다. -> 실제로 저장하는 명령어
    --> 코드 저장 완료 
    2번 명령어 코드 실행 후 저장이 안되는 경우 -> 계정 설정을 하지 않아서
    git config --global user.name 유저네임
    git config --global user.email 유저이메일 
    저장 여부 확인하는 명령여 - git status
    modified: index.html --> 코드의 변경은 있지만 저장을 하지 않은 파일
    nothing to commit 
    만약 지정할 파일이 많아진다면?
    내 프로젝트의 변경사항을 한 번에 지정하는 법 -> git add . (점(.)은 현재 나의 경로의 모든 변경된 사항을 의미) 
    Working directory | Staging area | Respository 
    3. 저장 내역을 확인하는 명령어 - git log
    - commit ?????? -> 커밋 id -> git diff 코드변경 확인 
    git reset 과거로 돌아가기 | 커밋 메세지로 코드 변경점 추측 가능
    (END) -> 키보드 q 빠져나오기 
    4. Github로 코드 백업하기
    1. 온라인 저장소(github repository)를 만들기 
    Repositories -> new
    2. 깃허브 3개 코드 복사하고 터미널에 붙여넣기 > enter (백업) 
    3. 추가로 수정된 코드 github에 반영하기 - git push
    ex)git push origin main 
    순서) add > commmit > push
    git add.
    git commit -m " "
    git push origin main 
    1. git remote add origin "주소" :  git push 백업주소 main(순서3번) 가 원래 맞지만 백업주소 대신 origin 을 쓰는 것
    2. git branch -M main : 원래 처음의 branch는 master 이다. 어느 순간 master에서 main으로 바뀌어 있다. -> 기본 브랜치를 master에서 main으로 바꾼다. 
    3. git push -u origin main => git push만 입력해도 된다! (origin main까지 안쳐도 된다) *편함을 위함 
    4. Github 협업하기 + 충돌 해결하기
    1. 협력자 등록하기 : 1) Settings > Collaborators > Add people 2) 팀원들의 username 혹은 email 추가 -> 받은 사람은 초대 수락해야함
    2. 코드 복사해오기 - git clone 
    1. Github 
    3. " git clone <github 주소> . " 명령어 입력 * . 을 입력하는 이유 -> 파일이 아니라 폴더까지 복사됨 (경로의 위치 차이) 
    Code 의 HTTPS 주소 
    새로운 폴더 만들기(git-test2) > git bash 열기 > " git clone 주소 . " > enter > 팀장님이 짰던 코드들을 받을 수 있음
    이후 " git add . " >  "git commit -m "팀원이 코드 작성 " >  "git push origin main" 반복 ... 
    Git push (Github에 코드를 넣는 것) 
    다른 사람이 이미 git push를 하고 내가 git push를 하려고 하면 에러가 발생함
    "git push 전에 git pull 먼저하세요!" 
    * git push를 할 때 에러가 난다? -> 이미 다른 사람이 먼저 git push를 했구나 ! -> git pull 해서 코드를 가져오면 된다.
    *단 처음 git pull시 경고문이 뜬다.
    git config pull.rebase false 입력하고 똑같이 git pull origin main을 하면 된다. 
    *터미널에서 입력이 제대로 안되는 vim 에디터가 뜬다면?
    1. 키보드 esc 누르기
    2. 키보드 :
    3. 키보드 wq
    4. 키보드 enter
    순서대로 하면 됨 
    git clone은 내가 코드가 아예 없을 때 하는 것임 -> 코드를 통째로 가져오는 것
    git pull 이미 짜여져 있는 코드에서 변경사항을 가져오는 것 
    4. 충돌(Conflict) 해결하기
    - git pull 명령어를 가져왔는데 코드가 이상해지는 경우
    commit(저장하다)
    파일에서 충돌이 발생했으니 해결하고 commit 다시 하세요
    충돌 발생 이유? 같은 파일의 같은 위치에 코드가 변경되는 경우
    -> 충돌해서 이상한 코드를 직접 삭제하면 된다. (코드 수정) > 코드 저장 명령어 실행 > git push origin main

     

    TIL에 이런 내용을 쓰는 것도 바보같지만 ... 일단은 하루동안 내가 스스로 공부한 기록을 남기고자 한다! (다른 읽는 이들에게 죄송하다)



    알고리즘 풀고 난 오전 남는 시간 + 줌 설명회 듣고 난 후 4시 반 : 2주차 로또 만들기 UI + 기능 구현을 다시 복습해보았다.

    복습하고 나니까 확실히 어제보다 이해하기가 쉬워졌다. 전체적인 로직은 이해하였고 어제 처음 만들었을 때는 특정 버튼이 눌리면 앱이 중단되었는데 오늘 다시 만들었을 때는 성공적으로 실행되었다. 나중에 코드를 다시 정리해보거나 다시 복습할때는 아예 코드를 안보고 직접 작성해보는 것도 좋을 것 같다!


    오후 4시 반부터 6시까지

    mbti 앱에서 3-3 주차 강의를 들으면서 fragment_question.xml을 만들어보았다. (.kt 에서 다른 것도 했지만 처음 듣기에는 이해하기 어려운 내용이라 복습이 필요할 것 같다.)

    해당 페이지에서 기억나는 부분은 아래와 같다.

     

    - constraintLayout 자체에 android:padding 을 넣어서 모든 위젯의 여백을 줄 수 있다.

    - android:layout_height="0dp" → 나중에 자동으로 크기가 설정이 된다.

    - LinearLayout 내부에 위젯을 넣을 수 있다.

    - android:text="@string/내용" 이렇게 strings.xml에서 쓴 내용을 불러올 수 있다.

    - xml파일에서 주석처리는 <!-- 내용 --> 이렇게 하면 된다.

    - radioGroup 에서는 android:orientation="vertical" 설정이 필요하고, paddingStart 속성도 있어 그룹 내 속한 모든 radioButton의 시작 여백을 줄 수 있다.


    오후 7시부터 8시 반까지3-4주차 강의를 들으면서 QuestionFragment.kt 의 기능 코드를 구현하여 마지막 결과 화면 전 까지 UI와 기능을 구현하였다. kt에 대한 자세한 코드 정리는 아직까지 버겁다 ...


    오후 8시 45분부터 9시까지 같은 팀원분들끼리 얘기하면서 도움이 되는 내용을 적어보았다!

    (정보처리기사 자격증)

    - 필기는 기출문제만 풀면 된다 (책도 안사도 됨)
    - 실기 -> 자바, C, python, CS 관련 문제 (책, 유튜브)
    - 정보처리기사는 학원까지 다닐 정도는 아니여서 독학 가능함!

    팀원분들 덕분에 외롭지 않게 좀 더 힘내서 할 수 있는 것 같다. 다같이 수료 끝까지 달려나갔으면 좋겠다!

    'Android' 카테고리의 다른 글

    fold / foldIndexed 함수, 자료형 정리, 증감연산자  (0) 2024.03.05
    2024-03-04 BOOTCAMP TIL  (3) 2024.03.04
    2024/02/29 BOOTCAMP TIL  (1) 2024.02.29
    2024-02-27 BOOTCAMP TIL  (1) 2024.02.27
    2024-02-26 BOOTCAMP TIL  (2) 2024.02.26
Designed by Tistory.