
플레이데이터 백엔드 9기 박준서님의 4주차 회고
플레이데이터 풀스택 백엔드 9기 4주차 주간회고 및 학습기록
Facts
SQL 공부를 마치고 리눅스와 Java 공부를 시작했다. (물론 SQL 과제는 꾸준히 있기 때문에 개인공부를 이어나가야 한다) SQL를 배웠을 때는 엄청 재밌었는데 마지막 SUBQUERY 파트에서 약간 멘붕이 왔다...ㅎㅎ 이번 주차 시작할 때쯤 받은 SQL-SUBQUERY 과제는 1주일이 지난 지금 아직도 안 한 상태이다. 해야 하는데 자꾸 회피하고, 블로그 작성부터 하고 있다. 리눅스의 전반적인 사용법은 이해됐고 나름 재미있었다. virtualBox를 설치하는 과정에서 C드라이브 용량문제로 (C드라이브 전체 용량이 81.4GB....) 난항을 겪었다. 설치가 잘 되는 줄 알았으나,,,갑자기 C드라이브에 0byte가 남았다고 뜨더니 문제가 생긴 것이다. C드라이브를 정리하고, 카카오톡을 포함한 여러 보안 프로그램들을 삭제했다. 겨우겨우 정리를 한 후 불안한 마음에 결국 D드라이브에 설치를 했는데,,,이번엔 설치를 끝낸 후 자꾸 오류가 발생했다. 난 그렇게 8시간 중 3시간 정도를 혼자 화난 상태로 보냈다. (진작에 선생님께 가져갈걸. 선생님께서 손대시니까 미다스의 손처럼 설치가 문제없이 이루어졌다. 물론 난 여전히 뭘 어떻게 하신 건지 완전 이해하지는 못했지만😂) 혼자 따라가지 못한 리눅스 진도를 따라가느라 쉬는시간과 점심시간에 공부해야 했고 다행히 이해를 못한 부분은 없었다.
Java 공부는 (쉬운 파트라 그런가) 재미있었다. 예전에 학교에서 배운 파이썬과 비슷하며서도 좀 더 복잡한 느낌이었다. 파이썬에서 print("Hello World") 하면 될 걸 java에서는 System.out.println("Hello World"); 라고 작성해야 한다. 그리고 클래스도 선언해야 하고,,, 모든 변수 타입을 지정해줘야 하고... 물론 인텔리제이가 많은 걸 알아서 작성해주지만, 조금 더 복잡하게 느껴진다. 분명 장단점이 있을텐데 아직 너무 초보라 제대로 못 느끼는 듯하다. 파이썬과 Java의 차이와 각각의 장단점을 온몸으로 느낄 수 있도록 많은 경험을 쌓을 필요가 있을 것이다.
Feelings
이번 주는 좀 많이 피곤했다. 공부한답시고(?) 자꾸 3시쯤에 자버렸더니 평균 수면시간을 제대로 챙기지 못한 것이다. 너무 졸려서 커피를 위장에 잔뜩 넣었더니 배탈도 났다...안 좋은 공부 방법이라는 걸 알면서도 플레이데이터의 커리큘럼과 많은 학습량을 최대한 흡수하고 싶다는 욕심에 이런 선택을 했는데, 지속가능한 방법은 아니다. 아직 열흘 정도밖에 안 지났지만, 부트캠프에서 배우는 것들이 너무 재밌고 학습체계가 잡혀있다보니 나도 모르게 욕심이 과해지는 것 같다. 졸음 때문에 일부 수업 내용을 수업 시간에 바로 이해하지 못했다는 사실 때문에 좀 분개했다. 자존심도 상하고(?), 무엇보다 잠을 이기지 못하는 것에 짜증이 났다. (나 체력 좋은 편이었는데,,,왜...) 인정할 건 인정하고, 수면 시간 관리를 하면서 최대한 말똥한 정신을 유지할 것이다.
Findings
1주일 동안 배운 게 너무 많아서 다 정리할 수는 없다. 다행히 선생님께서 워낙 잘 가르쳐주셔서
리눅스, 자바의 전반적인 로직과 흐름은 이해했으나, 일부 디테일한 내용을 잊었다. 이렇게 머리 속에 자리 잡지 못한 내용을 정리하였다.
배운 것 1. 리눅스의 파일 관리 명령어
- 리눅스는 모든 것을 파일로 다룬다. 사용자의 데이터, 시스템을 구성하는 장치까지도 파일로 다룬다.
- / : 리눅스 파일 체제의 최상의 디렉토리
- /etc : 시스템 전반에서 사용되는 설정 파일들이 저장되는 디렉토리
- /dev : 시스템의 장치 파일이 위 디렉토리
- /home : 사용자의 개인데이터 미 설정 파일이 저장되는 디렉토리
- ls : 디렉토리 내의 파일 및 디렉토리 목록 출력
- pwd : 현재 디렉토리 확인
- mkdir <디렉토리 이름> : 디렉토리 만들기
- cd <디렉토리> : 디렉토리로 이동
- touch <생성할 파일 이름> : 파일 생성
- rm <삭제할 파일> : 파일삭제
- rm -r <삭제할 디렉토리> : 디렉토리 삭제
배운 것 2. 자바의 변수, 상수, 클래스, 패키지 명명규칙
1) 변수 명명규칙
- 동일한 범위 내에서 동일한 변수명은 지을 수 없다.
- 자바에서 사용 중인 키워드 사용 불가 (int, float, while 등등)
- 영어 대소문자를 구분한다.
- 숫자로 시작이 불가능하다.
- 특수기호는 '_', '&'만 사용 가능하다.
- 변수명이 합성어로 이루어진 경우 첫 단어는 소문자, 두 번째 시작단어는 대문자로 시작 (camel - case)
- 단어와 단어 사이의 연결을 '_'로 하지 않는다.
- 변수 안에 저장된 값이 어떤 의미인지 명확하게 표현한다.
- 명사형으로 작성한다.
- boolean 형은 가급적 긍정 의문문 형태로 짓는다 (ex: isAlive)
2) 상수 명명규칙
- 상수의 모든 문자는 영문자 대문자 혹은 숫자만 사용한다.
- 단어와 단어 연결은 '_'를 사용한다.
3) 클래스 명명규칙
- 대문자로 시작한다.
- 클래스가 하는 역할을 잘 나타내게 짓는다.
- class, public, static 같은 자바 예약어는 사용 불가능하다.
4) 패키지 명명규칙
- 패키지 이름은 소문자로 작성한다.
- 회사/조직 도메인을 반대로 사용한다. (ex: package com.google.search;)
- 특수문자, 대문자는 사용하지 않고 숫자도 가급적 사용하지 않는 것이 좋다.
- '_'나 '-'가 아닌 '.'를 사용한다.
배운 것 3. 오버플로우
오버플로우: 변수가 담을 수 있는 값의 범위를 벗어나는 데이터를 담았을 때 다시 최소값으로 순환하는 현상
- 데이터 타입이 저장할 수 있는 값의 최대 범위를 벗어나면 carry가 발생하여 (비트가 넘쳐서) 부호 비트가 반전됨

- 따라서 변수를 담을 자료형의 범위를 잘 파악해야 한다.
타입 | Byte 사이즈 | 범위 |
byte | 1 byte | -128 ~ 127 |
char | 2 byte | 0 ~ 65535 |
short | 2 byte | -32768 ~ 32767 |
int | 4 byte | -2147483648 ~ 2147483647 |
long | 8 byte | -9223372036854775808 ~ 9223372036854775807 |
float | 4 byte | - 3.4028235E38 ~ 3.4028235E38 |
double | 8 byte | - 1.7976931348623157E308 ~ 1.7976931348623157E308 |
배운 것 4. 형변환(casting)
형변환이란, 변수 또는 리터럴을 다른 타입으로 변환하는 것
1) 자동 형변환
- 작은 자료형에서 큰 자료형으로는 자동 형변환이 된다.
- 위 그림은 내가 이해한 방식이다. 정밀도 등의 문제가 있겠지만, 단순히 타입별로 담을 수 있는 값의 범위를 벤다이어그램으로 표현하면 이렇게 된다. 포함관계에 있는 자료형의 경우, 작은 범위의 자료형은 자신을 포함하고 있는 자료형으로 자동형변환이 되는 것이다. 포함관계가 아닌 경우의 자료형에 대해서는 강제 형변환이 필요하다. 예를 들어 float 같은 큰 범위의 자료형을 int 같은 작은 범위의 자료형으로 변환하려면 강제형변환이 필요한 것이다. 또한 char 자료형을 byte 자료형으로 변환하려면, 겹치는 관계이기 때문에 강제 형변환이 필요하다.
2) 강제 형변환
- casting 연산자를 이용한 강제적 형변환
- 데이터 손실을 감수해야 한다.

Future
1. 인텔리제이가 제공하는 자동완성에 의존하지 않으려고 노력해야겠다. 자꾸 편하게 공부하려고 하면 나중에 반드시 불편해지기 때문이다.
2. 모든 걸 흡수하려고 하기보다는 수업 시간에 최대한 많은 것을 이해하고 간다는 생각으로 공부해야겠다. 실질적으로 단기간에 너무 많은 걸 체화하는 건 불가능하고, 이걸 시간 때려붓기로 커버하려고 하면 피로 때문에 오히려 역효과가 난다.
3. 노트북 용량 관리를 해야겠다. 주기적으로 캐시 파일도 삭제하고, 쓸데없는 파일과 프로그램도 삭제해야겠다. 다시는 설치 문제로 나 혼자 진도를 따라가지 못하는 일은 발생하지 않으면 좋겠다.
4. 문제가 생기면 너무 혼자 해결하려고 하지 말고 그냥 선생님께 여쭤보자.
5. 백엔드 개발을 공부한 후 데이터 공부도 진행하면서 데이터사이언티스트의 길로 나아갈 내 미래를 생각하니 설렌다. 정말 오랜만에 미래를 꿈꾸며 설렘을 느끼 는 것 같다. 무엇을 하고 싶은지 몰라서 답답하고 학업도 잘 안되었는데, 이제는 공부에 집중할 수 있을 것 같다. 계획을 세우고 그에 맞춰 살아가던 나의 모습을 플레이데이터에서 찾고 싶다.
준서님의 더 많은 이야기가 궁금하다면?
👉 플레이데이터 백엔드 9기 박준서님의 블로그에서 확인해보세요!🚀[ 블로그 바로가기 ]
Facts
SQL 공부를 마치고 리눅스와 Java 공부를 시작했다. (물론 SQL 과제는 꾸준히 있기 때문에 개인공부를 이어나가야 한다) SQL를 배웠을 때는 엄청 재밌었는데 마지막 SUBQUERY 파트에서 약간 멘붕이 왔다...ㅎㅎ 이번 주차 시작할 때쯤 받은 SQL-SUBQUERY 과제는 1주일이 지난 지금 아직도 안 한 상태이다. 해야 하는데 자꾸 회피하고, 블로그 작성부터 하고 있다. 리눅스의 전반적인 사용법은 이해됐고 나름 재미있었다. virtualBox를 설치하는 과정에서 C드라이브 용량문제로 (C드라이브 전체 용량이 81.4GB....) 난항을 겪었다. 설치가 잘 되는 줄 알았으나,,,갑자기 C드라이브에 0byte가 남았다고 뜨더니 문제가 생긴 것이다. C드라이브를 정리하고, 카카오톡을 포함한 여러 보안 프로그램들을 삭제했다. 겨우겨우 정리를 한 후 불안한 마음에 결국 D드라이브에 설치를 했는데,,,이번엔 설치를 끝낸 후 자꾸 오류가 발생했다. 난 그렇게 8시간 중 3시간 정도를 혼자 화난 상태로 보냈다. (진작에 선생님께 가져갈걸. 선생님께서 손대시니까 미다스의 손처럼 설치가 문제없이 이루어졌다. 물론 난 여전히 뭘 어떻게 하신 건지 완전 이해하지는 못했지만😂) 혼자 따라가지 못한 리눅스 진도를 따라가느라 쉬는시간과 점심시간에 공부해야 했고 다행히 이해를 못한 부분은 없었다.
Java 공부는 (쉬운 파트라 그런가) 재미있었다. 예전에 학교에서 배운 파이썬과 비슷하며서도 좀 더 복잡한 느낌이었다. 파이썬에서 print("Hello World") 하면 될 걸 java에서는 System.out.println("Hello World"); 라고 작성해야 한다. 그리고 클래스도 선언해야 하고,,, 모든 변수 타입을 지정해줘야 하고... 물론 인텔리제이가 많은 걸 알아서 작성해주지만, 조금 더 복잡하게 느껴진다. 분명 장단점이 있을텐데 아직 너무 초보라 제대로 못 느끼는 듯하다. 파이썬과 Java의 차이와 각각의 장단점을 온몸으로 느낄 수 있도록 많은 경험을 쌓을 필요가 있을 것이다.
Feelings
이번 주는 좀 많이 피곤했다. 공부한답시고(?) 자꾸 3시쯤에 자버렸더니 평균 수면시간을 제대로 챙기지 못한 것이다. 너무 졸려서 커피를 위장에 잔뜩 넣었더니 배탈도 났다...안 좋은 공부 방법이라는 걸 알면서도 플레이데이터의 커리큘럼과 많은 학습량을 최대한 흡수하고 싶다는 욕심에 이런 선택을 했는데, 지속가능한 방법은 아니다. 아직 열흘 정도밖에 안 지났지만, 부트캠프에서 배우는 것들이 너무 재밌고 학습체계가 잡혀있다보니 나도 모르게 욕심이 과해지는 것 같다. 졸음 때문에 일부 수업 내용을 수업 시간에 바로 이해하지 못했다는 사실 때문에 좀 분개했다. 자존심도 상하고(?), 무엇보다 잠을 이기지 못하는 것에 짜증이 났다. (나 체력 좋은 편이었는데,,,왜...) 인정할 건 인정하고, 수면 시간 관리를 하면서 최대한 말똥한 정신을 유지할 것이다.
Findings
1주일 동안 배운 게 너무 많아서 다 정리할 수는 없다. 다행히 선생님께서 워낙 잘 가르쳐주셔서
리눅스, 자바의 전반적인 로직과 흐름은 이해했으나, 일부 디테일한 내용을 잊었다. 이렇게 머리 속에 자리 잡지 못한 내용을 정리하였다.
배운 것 1. 리눅스의 파일 관리 명령어
배운 것 2. 자바의 변수, 상수, 클래스, 패키지 명명규칙
1) 변수 명명규칙
2) 상수 명명규칙
3) 클래스 명명규칙
4) 패키지 명명규칙
배운 것 3. 오버플로우
오버플로우: 변수가 담을 수 있는 값의 범위를 벗어나는 데이터를 담았을 때 다시 최소값으로 순환하는 현상
- 데이터 타입이 저장할 수 있는 값의 최대 범위를 벗어나면 carry가 발생하여 (비트가 넘쳐서) 부호 비트가 반전됨
- 따라서 변수를 담을 자료형의 범위를 잘 파악해야 한다.
배운 것 4. 형변환(casting)
형변환이란, 변수 또는 리터럴을 다른 타입으로 변환하는 것
1) 자동 형변환
- 작은 자료형에서 큰 자료형으로는 자동 형변환이 된다.
- 위 그림은 내가 이해한 방식이다. 정밀도 등의 문제가 있겠지만, 단순히 타입별로 담을 수 있는 값의 범위를 벤다이어그램으로 표현하면 이렇게 된다. 포함관계에 있는 자료형의 경우, 작은 범위의 자료형은 자신을 포함하고 있는 자료형으로 자동형변환이 되는 것이다. 포함관계가 아닌 경우의 자료형에 대해서는 강제 형변환이 필요하다. 예를 들어 float 같은 큰 범위의 자료형을 int 같은 작은 범위의 자료형으로 변환하려면 강제형변환이 필요한 것이다. 또한 char 자료형을 byte 자료형으로 변환하려면, 겹치는 관계이기 때문에 강제 형변환이 필요하다.

2) 강제 형변환
- casting 연산자를 이용한 강제적 형변환
- 데이터 손실을 감수해야 한다.
Future
1. 인텔리제이가 제공하는 자동완성에 의존하지 않으려고 노력해야겠다. 자꾸 편하게 공부하려고 하면 나중에 반드시 불편해지기 때문이다.
2. 모든 걸 흡수하려고 하기보다는 수업 시간에 최대한 많은 것을 이해하고 간다는 생각으로 공부해야겠다. 실질적으로 단기간에 너무 많은 걸 체화하는 건 불가능하고, 이걸 시간 때려붓기로 커버하려고 하면 피로 때문에 오히려 역효과가 난다.
3. 노트북 용량 관리를 해야겠다. 주기적으로 캐시 파일도 삭제하고, 쓸데없는 파일과 프로그램도 삭제해야겠다. 다시는 설치 문제로 나 혼자 진도를 따라가지 못하는 일은 발생하지 않으면 좋겠다.
4. 문제가 생기면 너무 혼자 해결하려고 하지 말고 그냥 선생님께 여쭤보자.
5. 백엔드 개발을 공부한 후 데이터 공부도 진행하면서 데이터사이언티스트의 길로 나아갈 내 미래를 생각하니 설렌다. 정말 오랜만에 미래를 꿈꾸며 설렘을 느끼 는 것 같다. 무엇을 하고 싶은지 몰라서 답답하고 학업도 잘 안되었는데, 이제는 공부에 집중할 수 있을 것 같다. 계획을 세우고 그에 맞춰 살아가던 나의 모습을 플레이데이터에서 찾고 싶다.
준서님의 더 많은 이야기가 궁금하다면?
👉 플레이데이터 백엔드 9기 박준서님의 블로그에서 확인해보세요!🚀[ 블로그 바로가기 ]