1,2일차 기록
📂 1일차: 자바의 탄생과 구동 원리
- 명명 규칙 (Naming Convention)
상수(Constant): 값이 변하지 않는 상수는 모두 대문자를 사용하며, 단어 사이를 언더바(_)로 잇는 스네이크 표기법을 사용한다.
표기법의 이유: 단어들이 모두 대문자라 붙여 쓰면 읽기 힘들기 때문에 언더바로 가독성을 높이는 것이다.
- 자바의 실행 구조
.class 파일: 소스 코드(.java)를 컴파일러가 JVM이 이해할 수 있는 바이트코드로 번역한 결과물이다.
JVM (Java Virtual Machine): 운영체제(Windows, Mac 등)마다 전용 JVM이 존재한다.
호환성: "Write Once, Run Anywhere" — 윈도우에서 짠 바이트코드(.class)라도 해당 OS용 JVM만 있다면 어디서든 작동 가능하다.
📂 2일차: 자바 문법과 메모리 시스템
- 언어적 특징
대소문자 구분: 자바는 대소문자를 엄격히 구분하며, 변수나 메서드에는 카멜 표기법(camelCase)을 즐겨 사용한다.
예약어 (Keyword): public, int처럼 자바 시스템이 이미 기능을 부여한 단어다.
식별자 제한: 예약어는 변수명(식별자)으로 쓸 수 없다. 컴파일러가 문법적 의미와 혼동하여 **문법 오류(Syntax Error)**를 내뱉기 때문이다.
- 접근 제한자 (Access Modifier)
정보 보호와 공유 범위를 결정하는 보안 규칙이다.
public: 누구나 접근 가능한 완전 개방 상태.
protected: 같은 패키지 내에서는 자유로우며, 패키지가 달라도 상속받은 자식 클래스까지는 허용한다.
default: 아무것도 안 적었을 때의 기본값. 같은 패키지 내부에서만 접근 가능하다.
private: 오직 해당 클래스 내부에서만 사용 가능하다. (보안성 최고)
-
클래스 (Class)
객체를 찍어내기 위한 설계도 혹은 틀이다. (붕어빵 틀 = 클래스 / 붕어빵 = 객체) -
표준 입출력
표준 입력: 키보드로부터 값을 읽는 것 (System.in)
표준 출력: 콘솔창에 결과를 띄우는 것 (System.out)
줄바꿈: System.out.println("\n"); 처럼 큰따옴표 안에 역슬래시()와 n을 조합한 이스케이프 문자를 사용한다.
- 데이터 타입과 메모리 (핵심)
강형 언어 (Java): 타입을 반드시 명시해야 하며, 컴파일 시점에 미리 오류를 발견해 안정성이 높다.
약형 언어 (JavaScript 등): 타입 지정 없이 자유롭지만, **실행 시점(Runtime)**에 뒤늦게 오류가 터질 위험이 있다.
- 기본 타입 vs 참조 타입
기본 타입 (Primitive): 자바에서 유일하게 객체가 아닌 8가지 종류.
정수: byte < short < int(기본) < long (그릇 크기 차이)
실수: float < double(기본)
문자: char (한 글자 전용)
논리: boolean (true, false)
메모리: 값 자체가 스택(Stack) 주머니에 저장된다.
참조 타입 (Reference): String이나 사용자가 만든 클래스(객체) 등.
메모리: 실제 데이터는 넓은 힙(Heap) 창고에 저장되고, 스택에는 그 위치를 알려주는 **주소(이정표)**만 저장된다.

수업들으며 하나하나 다 따라해보긴 조금 벅찼고 줄바꿈이랑 한 문장에 두개 출력하는거 해봤다. 수업 끝나고 페이지 보며 한 번씩 복습해보고 자야할듯.
회고(1차)2조에 배정받음
조 내에서 본인이 제일 연장자임(나이 괜히 공개한듯)
평균나이 27.5세를 팀명으로 하자고 본인이 강력하게 주장했음 절대 한살이라도 어려보이려고 그런 것은 아니다.(사실맞음)
역할은 뭐 별 거 없는 것 같다. 그냥 각자 본인이 공부한 것 내용 나누고 블로그에 업로드하고 서로 피드백주고 하는게 공통의 역할인 것 같기도...?
어제 오늘 대학 1~2학년 때 배웠던 내용들을 다시 듣게 되어 나름 익숙해서 반갑기도 했고 또 오랜만이라 새롭기도 했다.
댓글
댓글을 작성하려면 이 필요합니다.