끝을 보는 용기

Spring 사전캠프 Day 017 - 자바(Java) 공부: 변수 (4/6)

writingforever162 2024. 10. 23. 20:51

'30년 뒤에는 고맙다고 말해주는 사람이 있을 수도 있어.'

 

"만약 지금 자신이 전혀 도움이 안 된다고 생각하더라도 이렇게 생각하면 좋을지도 몰라요."

 

만화 에세이 『런치의 시간』 88쪽을 펼쳤을 때, 칼바람 소리마저 몽글몽글 녹일 위안을 받았다. 아침에 진료 순서를 기다리며 잠시나마 독서에 빠지길 잘했다. 기존에 성과를 낸 분야에서 나와 새로운 길을 걷는 지금이 옳은가, 비전공자는 머리 아픈 지식뿐만 아니라 스스로 의심하는 또 다른 자신과도 씨름해야 한다. 이러한 의심은 특히 데일리 스크럼(Daily Scrum)과 회고 시간에 들려오는 코딩 관련 얘기 중 80% 이상 이해하지 못하는 순간 더욱더 활개를 친다. 일대일 면담 당시 담임 매니저님께서 마음을 잘 다독이고 위축되지 말라고 괜히 강조하신 게 아니었다.

 

'언젠가 나도 알아듣는 날이 오겠지.'

 

마지막 회사에서 보낸 지난날을 떠올리니, 어느 순간 나는 새로운 팀원에게 이것저것 알려주는 사람이 되어 있었다. 그 시기를 맞이할 줄은 꿈에도 몰랐으며, 막 업무에 들어간 직후에는 정신없이 분위기며 일에 적응하느라 바빴다. 표현 그대로 눈코 뜰 새 없이 분주했다.

 

지금이 바로 딱 그런 시기, 도움이 안 되면 어떡해야 하나 고민할 시간에 하나라도 더 머릿속에 집어넣어야 할 시기이다.

 

성장함을 알아챘을 땐 이미 든든한 팀원이 되었을 테니까. 

 

굳이 그 먼 훗날을 지금 당장 애써 찾으려 하지 않으련다.

 

[습관 관련]

점점 알람을 듣기 전에 일어나는 데 익숙해진다. TIL은 원래 어떻게든 오후 6시에 제출까지 마치려고 했으나 쉽지가 않다. 새로운 팀에서 팀장님과 팀원들과 얘기하는 시간은 꼭 입에서 톡톡 튀는 팝핑 캔디 같고 진도를 한창 나갈 때면 이런저런 감정이, 정확히는 먼 훗날의 내가 보고 피식피식 웃을 법한 생각이 물밀듯이 밀려든다. 무엇보다 밤은 감성이 지배하는 시간이다. 우선 TIL 제출 시간은 일찍 일어나기 습관과 비슷하게 '오후 9시 전 제출'로 조정하고 조금씩 시간을 앞당겨야겠다.

 

[인용 및 참고 출처]

1. 강의: 클래스101 온라인클래스, "[100제 풀이] 예제로 마스터하는 Java(자바) 종합 클래스", 강의 소개, (2024.10.23)

 

[학습 관련]

1. 데이터 단위: 1byte==8bit ▶프로그래밍에서 '같다'는 의미를 나타내려면 이중 등호(==) 사용

 

2. 바이트 및 비트 크기 출력하기: 바이트 크기는 BYTES, 비트 크기는 SIZE 입력

(1) 정수형

public class VariablePrac4 {
    public static void main(String [] args) {
       // 복습 [1]: 기본형 타입(Primitive Data Type) ▶ 정수형
       // 복습 [2]: 정수형은 크기순으로 byte < short < int < long
       // 복습 [3]: byte는 1 바이트이며 2씩 곱하면 된다. 
       //           short는 2 바이트, int는 4 바이트, long은 8 바이트
       
       // 주의 사항 [A]: 크기를 구하려는 정수형의 첫 글자는 대문자로 적는다.
       // 주의 사항 [B]: int는 반드시 'Integer'라고 입력한다.
       System.out.println(Integer.BYTES); 
       // int의 바이트 크기 계산
       // 4 출력
       System.out.println(Integer.SIZE); 
       // int의 비트 크기 계산
       // 4바이트 곱하기 8이므로 32 출력
       // 복습 [4]: 'int.BYTES'와 같이 작성하면 오류가 발생한다! 주의하자!
     
       System.out.println(Byte.SIZE); 
       // byte의 비트 크기 계산
       // byte의 바이트는 1이므로 8을 곱해서 8 출력
       System.out.println(Short.BYTES); 
       // short의 바이트 크기 계산
       // 2 출력
       System.out.println(Long.SIZE); 
       // long의 비트 크기 계산
       // long은 8 바이트이므로 8을 곱해서 64 출력
       System.out.println(Short.SIZE + Long.BYTES);
       // short의 비트 크기 더하기 long의 바이트 크기
       // short는 16비트(==2 바이트 곱하기 8)이며 long은 8 바이트
       // 24 출력
    }
}

 

(2) 문자형

public class VariablePrac4 {
    public static void main(String[] args) {
        // 복습 [1]: 기본형 타입(Primitive Data Type) ▶ 문자형
        // 복습 [2]: 문자형은 char 한 개뿐!
        // 주의 사항: char는 반드시 'Character'로 입력한다.
        System.out.println(Character.BYTES); // 2 출력
        System.out.println(Character.SIZE); // 16 출력
        // 복습 [3]: 'Char.SIZE'와 같이 입력하면 오류가 발생한다! 조심하자!
        }
      }

 

3. 최댓값 및 최솟값 출력하기최댓값은 MAX_VALUE, 최솟값은 MIN_VALUE 입력

public class VariablePrac4 {
    public static void main(String [] args) {
     // 주의 사항 [1]: BYTES와 SIZE처럼 int는 Integer로 입력해야 한다.
     System.out.println(Integer.MIN_VALUE);
     // 정수형 변수 int의 최솟값 구하기
     // -2147483648 출력
     System.out.println(Integer.MAX_VALUE);
     // 정수형 변수 int의 최댓값 구하기
     // 2147483647 출력
     
     // 주의 사항 [2]: 문자형 char는 Character 앞에 (int)를 입력해야 한다.
     //               이유: 문자에는 범위가 없기 때문에
     //               (int)는 char를 정수형으로 바꾼다는 의미이다.
     System.out.println((int)Character.MIN_VALUE);
     // 문자형 char 변수를 정수형으로 바꾼 뒤 최솟값 계산
     // 0 출력
     // 주의 사항 [3]: 정수형은 말 그대로 '정수'라서 최솟값이 음수(-)이다.
     // 주의 사항 [4]: 문자형은 정수형과 다르게 0으로 출력된다.
     System.out.println((int)Character.MAX_VALUE);
     // 문자형 char 변수를 정수형으로 바꾼 뒤 최댓값 계산
     // 65535 출력
     
     System.out.println(Byte.MIN_VALUE); 
     // 정수형 변수 byte의 최솟값
     // -128 출력
     System.out.println(Short.MAX_VALUE); 
     // 정수형 변수 short의 최댓값
     // 32767 출력
    }
}

 

4. 보기 좋게 코드 작성하기: 큰따옴표(" ")와 덧셈 부호(+)를 활용하자!

public class VariablePrac4 {
    public static void main(String [] args) {
        System.out.println("문자형 변수 char의 크기: "+Character.BYTES+"바이트"+" → "+Character.SIZE+"비트");
        // 문자형 변수 char의 크기: 2바이트 → 16비트 출력
        System.out.println("문자형 변수 char의 최솟값~최댓값: "+(int)Character.MIN_VALUE+"~"+(int)Character.MAX_VALUE);
        // 문자형 변수 char의 최솟값~최댓값: 0~65535 출력
    }
}

 

5. 자바(Java)에서 띄어쓰기: "₩t" 입력 ▶ ₩ 기호가 자바에서는 역빗금(\)으로 나오는데 둘은 같으므로 당황하지 말기!

public class VariablePrac4 {
    public static void main(String [] args) {
        System.out.println(Integer.MIN_VALUE+"→"+Integer.MAX_VALUE);
        // 정수형 변수 int의 최솟값과 최댓값 구하기
        // -2147483648→2147483647 출력
        System.out.println(Integer.MIN_VALUE+"\t"+"→"+"\t"+Integer.MAX_VALUE);
        // 위와 동일하나 화살표 앞뒤로 띄어쓰기 추가
        // -2147483648  →  2147483647 출력
    }
}

 

6. 실습 결과

자꾸 코드를 입력할 때 세미콜론(;)을 입력해서 오류 발생 안내를 여러 번 마주했다. 문자형 변수 char의 최솟값과 최댓값을 구할 때 앞에 (int)를 붙이지 않으면 어떤 오류가 생기는지 직접 화면에 코드를 적어 보니 바로 알 수 있었다.

 

[기타 사항]

내일 팀장님을 대신하여 데일리 스크럼과 회고를 각각 적어도 30분씩 진행해야 한다. 부담스럽지 않다고 하면 거짓말이겠지. 지금 마음속은 얼마나 잘할 수 있을지 나조차 궁금한 상태 반, 주저리주저리 두서없이 떠들고 나면 어디로 숨나 걱정 반이다.

 

"오우, 전 서기가 좋아요."

 

저번 조에서 이렇게 말한 지 일주일도 채 안 됐는데…….

 

그래도 팀장님께서 정말 소중한 기회를 주셨다. 반대로 말하면, 해야 할 순간이 오지 않는 한 스스로 나설 일은 없었단 소리니까. 팀장 체질이 아니라고 굳게 믿어온 만큼, 바위처럼 단단한 믿음이 고작 하루 만에 산산조각 나지는 않겠지만 금 몇 개가 자잘하게 번질지는 아무도 모를 일이다. 심지어 나조차도.

 

강의 여섯 개를 듣고 나면, 드디어 진도가 자바(Java)의 조건문과 반복문으로 넘어간다. 주어진 일에 그저 최선을 다해야겠다. 물론 절대로 무리하지 않는 선에서.