끝을 보는 용기

Spring 본캠프 Day 038 - [Java 문법 종합반] 2주차 완강

writingforever162 2024. 11. 13. 23:51

공부 방식을 바꾸었다.

 

매니저님과 튜터님과 팀원분의 조언을 듣고 과감하게 방향을 틀었다. 필기하지 않고 강의만 쭉 들으면서 흐름을 파악한 뒤, 개인 프로젝트를 진행하며 알쏭달쏭한 부분만 다시 강의를 들으며 정리하기고 했다. 속도만 놓고 보면 기존에 추구한 학습 방향과 완전히 반대라서 학습 내내 물음표가 둥실 떴다 가라앉길 반복했다. 코드 스니펫(Code Snippet)도 하나씩 직접 써보고 실행하며 두 눈으로 출력 결과를 확인해야 직성이 풀렸기에 불안감을 말끔히 떼어놓지는 못했으나, 동시에 이런 생각도 들었다.

 

'이야, 그러니까 강의를 들으면서 하나씩 다 실습하고 뭘 적을지 고민한 다음 정리할 생각이었단 말이지? 원래 계획이?'

 

'으음, 마감이 2주 뒤여도 못 맞추겠는걸?'

 

학습 방향을 바꾼 뒤 9시가 되기 전 10개 남은 2주차 강의를 모두 들었다. 손이 근질거린 만큼 두 눈으로 코드를 바짝 쫓으며 가지치기를 했다. 주말에 개인 프로젝트를 하며 한두 번 실습하면 TIL에 적어야 할 정도로 어려운 부분이 더 걸러질 듯하다. 강의를 쭉 듣는 동안 그동안 속으로 통곡하며 작성해온 TIL이 그렇게 든든할 수가 없었다.

처음엔 실감을 못 했는데, 헷갈리는 부분이 생겨서 검색하면 웬만한 내용은 다 TIL에 있었다. 그러니까 본캠프 기간에 강의를 들으며 적어둘 부분이 생기거든 그냥 예전에 써둔 TIL 링크를 남겨두면 되었다. 유일한 포트폴리오라는 생각으로 TIL을 꼬박꼬박 써온 노력이 드디어 빛을 발했다!

 

매일매일 무엇을 배우고 뭘 느꼈는지 기록으로 남겨야 하는 이유는 이뿐만이 아니었다.

오늘 누군가가 '자바 조건문'을 보고 블로그에 방문했다!

 

세상에!

 

내 딴엔 주석 작성 또한 엄청나게 공들였는데, 조금이나마 궁금증 해소에 도움이 되었기를 조심스레 바라본다.

 

내일도 화이팅이다!

 

[습관 관련]

자기 전까지만 해도 괜찮은 목이 아침만 되면 완전히 잠긴다. 코딩하는 동안엔 목을 쓰지 않아도 되어서 얼마나 다행인지 모른다. 자바(Java) 공부가 쉽진 않지만, 새로운 길을 걷기로 한 결정은 지금 생각해도 잘한 듯싶다. 쉬는 시간마다 책 읽기와 운동, 문제 풀기는 어제와 똑같이 했다.

주말에 다시 풀어볼 문제가 늘어서 걱정 또한 새싹처럼 조금씩 자라긴 하지만, 나 자신과 한 약속을 어기지 않아서 좋다. 당당하게 어깨를 펼 수 있어서 좋다.

 

[인용 및 참고 출처]

1. 구글 검색: 티스토리, "Scanner sc", Scanner 클래스, (2024.11.13)  

2. 구글 검색: 티스토리, "Scanner sc", Scanner 클래스, (2024.11.13) 

 

[학습 관련]

1. 중첩 if문과 Objects.equals() 메서드를 사용하여 가위바위보 놀이하기!

package SecondWeekStudy;
// [0] 패키지(package)는 우선 폴더라고 생각하자!
import java.util.Objects;
import java.util.Scanner;
// [1] 사용하려는 클래스에 맞는 import문 추가하기
//     Scanner 클래스: "화면에 데이터 입력받아서 쓰겠습니다!"
// [복습 1] import는 반드시 클래스보다 먼저 입력한다!
public class SecondWeekStudy {
    public static void main (String[] args) {
        Scanner sc = new Scanner (System.in);
        // [2] Scanner 클래스 객체 생성
        //     [구조] 클래스명 객체명 = new 클래스명();
        //     클래스는 객체를 생성해야 사용할 수 있다!
        //     System.in: "화면에서 데이터 입력받을게요!"
        //     sc는 scanner의 줄임말이다.
        //     객체 이름은 마음대로 지어도 된다.
        //     보통 Scanner 객체의 이름은 in, input, sc, scan을 쓴다.

        System.out.print("A 입력 : ");
        String aHand = sc.nextLine();
        // [3-a] aHand에 데이터를 받을 문장 작성
        //       println()을 쓰면 커서가 콜론(:) 밑에 나온다.
        //       sc.nextLine(): "입력받을 데이터 타입이 문자열입니다!"

        System.out.print("B 입력 : ");
        String bHand = sc.nextLine();
        // [3-b] bHand에 데이터를 받을 문장 작성

        if (Objects.equals(aHand, "가위")) {
        // [4] Objects.equals() 메서드 활용하기
        //     [구조] Objects.equals(좌, 우)
        //     좌우 값이 같으면 true, 다르면 false이다.
        //     == "aHand에 문자열 '가위'가 입력된다면,"
        //     [복습 2] 문자열은 큰따옴표("")로 감싼다!

            if (Objects.equals(bHand, "가위")) {
            //  =="bHand에 문자열 '가위'가 입력된다면"
                System.out.println("A와 B는 비겼습니다.");
            } else if (Objects.equals(bHand, "바위")) {
            // =="bHand에 문자열 '바위'가 입력된다면"
                System.out.println("B가 이겼습니다.");
            } else if (Objects.equals(bHand, "보")) {
            // =="bHand에 문자열 '보'가 입력된다면"
                System.out.println("A가 이겼습니다.");
            } else {
            // =="bHand에 세 가지 외에 다른 문자열이 입력된다면"
                System.out.println("B가 이상한 값을 입력했습니다.");
            }
        }
    }
}

 

2. if문과 switch 차이? 

 

3. for문은 언제 쓰이는가?: 한 예로 금융권에서 사용한다. 매달 이자를 지급할 때 for문으로 전체 계좌 항목을 쭉 나열한 다음 정산한다. 이때 for문을 제대로 끝내지 않는다면, 무한 반복에 빠져서 난리 난다! 

▶ 어떤 언어를 배우든 어디에 쓰이는지 알면 흥미가 늘어나고, 더 자주 쓰고 싶은 마음이 생긴다. 강사님이 금융권에서 근무한 경험을 바탕으로 설명해 주실 때 정말 흥미진진하게 귀를 쫑긋했다. 

 

4. 실습 결과

내가 코드를 입력해서 가위바위보 놀이를 만들어내다니! 사전캠프 첫날의 나로서는 좀처럼 상상하기 어려운, 사실상 예상조차 할 수 없는 모습이었다. 맨 밑바닥부터 지식을 쌓아가야 하는 만큼 캠프에 참여하기 전에 진짜 걱정 많이 했는데, 솔직히 신기하다. 컴퓨터 CPU만큼은 아니어도 '도저히 못 하겠다!' 비명은 지르지 않는 머리가 신기하다.

 

그래, 놀랍다.

 

이 말로밖에 설명을 못 하겠다, 지금은.

 

[기타 사항]

오늘 낮까지는 돌다리를 하나하나 신중하게 밟는 식으로 공부했다면, 저녁에는 마치 노끈으로 얼기설기 엮은 나무다리가 물속으로 기우뚱하기 전에 냅다 달리는 식으로 공부했다. 그 나무다리를 건너며 옷이 젖지 않거든 성공했다는 희열을, 얕은 물 속에 빠지거든 시원하다며 무더위를 헤집고 뛰어다닌 어린 시절 기억이 새록새록 떠올랐다.

 

내일은 한 번도 빠지지 않고 끝에 도달해 봐야겠다.