시간대별 학습 기록
13:40 Spring Framework 공부 시작(못끝냄)
14:11 데일리 스크럼 완료 후 자바 강의 수강 시작 (스킵하면서 수강 중)
14:45 자바 1강 완
15:21 자바 3강 완(2강은 아는 내용이라 넘김)
15:55 자바 4강 완
16:16 자바 4강 복습 완료 및 5강 수강 시작
17:54 자바 6강 완료(모르는 내용만 보고 넘김)
21:17 자바 8강 완료(모르는 내용만 실습)
회고
[학습 효과 평가]
하루에 집중해야 5강 정도 들을 수 있는 것 같다.
같은 조원인 규범님은 오늘 주어진 과제에 집중한다고 했다. 당장 계산기를 만들고 제출까지 완료했다.
나는 자바에 대한 공부가 더 필요하다고 생각해 강의를 수강하고 내용을 블로그에 정리하는 데에 집중했다.
하지만 목표가 없이 공부하다 보니 꼼꼼하게 공부하는 느낌은 들었지만 기억에 얼마나 남을지 확신이 없다.
[미흡한 부분 확인 및 원인 파악]
뭔가 몰입이 부족하다. 중간중간 집중이 분산되는 것도 있고..특히 deepToString 설명을 읽는데 오늘따라 영어도 어렵게 느껴져서 중간에 길을 잃은 느낌이었다.
분명한 목표가 있어야 한다. 무언가를 만들어야겠다는 목표도 좋지만, 단기적으로는 그냥 무언가를 배우겠다는 목표도 좋다. 하지만 '강의를 몇 개 듣겠다'보다도 강의에 나오는 핵심 개념을 먼저 보고, 이 개념들을 가지고 오늘 안에 블로그 글을 몇 개 써야겠다와 같이 구체적인 TIL 목표를 세우는 것이 좋아 보인다.
[향후 목표 및 다짐]
SQL도 이번주에는 무조건 4강까지 들어야 하는데..내일은 무조건 9to9으로 공부해야겠다.
수시로 기록하는 것은 좋은 습관 같다. 하지만 더욱 중요한 것은 집중이다.
기본기를 탄탄하게 다지는 것도 좋지만 output에 대한 분명한 목적의식을 가지고 공부해야만 유의미한 공부가 될 것 같다.
TIL - 11/19
intelliJ 관련
- intelliJ에서 설정 단축키 : Ctrl + Alt + S
기타 intelliJ 단축키 : https://nbc-precamp-spring1.oopy.io/28f2dc3e-f514-8183-b86d-c5f0dc295719
Intellj 설치 가이드
Intellj 설치 가이드
nbc-precamp-spring1.oopy.io
- system.out에서 System을 대문자로 쓰지 않으면 패키지로 인식한다.
- soutv를 누르고 Ctrl + space를 누르면 System.out.println("변수명 = " + 변수값);이 자동으로 출력된다.
자바 관련
- 자바는 생각보다 대소문자에 민감하다
- 정수끼리 나누면 소수점이 버려진다. 따라서 입력받은 정수를 double로 typecasting해주는 것이 좋다.
- 기본 연산자의 우선순위는 산술>비교>논리>대입이다
- 논리 연산자에도 우선순위가 있다. ! > && > || 순서다.
- 자바에서 문자열 비교 시에는 isequal이 아니라 equals 메서드를 사용한다.
- for문에서 각 인수를 구분하는 건 세미콜론(;)이다.
- continue는 반복문의 처음으로 다시 돌아가는 것이고(음악의 도돌이표)
- break는 반복문을 빠져나오는 것이다(Fine와 비슷)
배열 관련
- 배열에서 .length는 메서드가 아닌 속성이다. 따라서 ()를 붙이지 않는다.
- 배열의 마지막 요소의 인덱스는 (배열의 길이 - 1)
- 배열의 크기와 길이는 다르다.
- 자바에서는 배열 탐색 시 인덱싱을 활용하지 않는 보다 빠른 방법이 있다. (for 자료형 변수 : 배열명)
-> 배열 요소를 하나하나 자료형에 저장하면서 반복문을 실행한다. - 2차원 배열의 요소에 접근할 때는 인덱싱을 사용해야 하지만, 이를 문자열로 변환하여 단순 출력을 원할 때에는 Arrays 클래스의 메서드 중 하나인 deepToString을 활용한다.
- deepToString은 기본적으로 배열의 요소를 String으로 변환하되, 배열의 요소가 또다른 배열일 때 사용할 수 있다.
배열의 요소를 리스트와 같이 대괄호[]로 묶고, 스페이스가 붙은 콤마(, )로 구분한다. 각 요소는 그 자체로 배열이 아닌 경우 String.valueOf(Object) 메서드가 호출되어 변환된다. 그 자체로 배열인 경우, 배열이 primitive type이라면 Arrays.toString(e)를 호출함으로써 문자열로 변환되고, reference type이라면 다시 deepToString함수를 재귀 호출한다. 무한 재귀 호출을 막기 위해, 배열이 자신의 주소를 직접 또는 간접적으로 요소로 가지고 있는 경우, 해당 자기 호출은 [...] 문자열로 반환된다. deepToString은 배열이 null인 경우 null을 반환한다. - 추가 공부 : String.valueOf(Object), 배열의 타입(primitive, reference), null 배열
자바 개발 도구
자바 개발 도구 3가지 - 자바 컴파일러(JAVAC), 자바 가상 머신(JVM), 바이트 코드
- JAVAC : 자바 코드는 .java 파일로 저장되는데, 이를 자바 컴파일러(javac.exe)가 바이트코드로 변환한다.
- JVM : 이 클래스 파일을 읽고 실행한다. 따라서 JVM이 설치되어 있다면 운영체제에 관계없이 자바로 설계된 프로그램을 실행할 수 있다.
- Java Bytecode : JVM이 이해하는 .class파일에 존재하는 데이터이다.
자바의 특징
- 플랫폼 독립성 : JVM만 설치되어 있다면 어디서든지 자바 프로그램을 실행할 수 있다. 달리 말해 종속성이 낮고, 이식성이 뛰어나다.
- 객체지향성 : 자바에서는 모든 것이 객체이다.
- 거대한 생태계 보유 : 자바는 역사가 오래되어 선배 프로그래머들 커뮤니티와 지식 데이터베이스가 잘 형성되어 있다.
자바 패키지와 클래스
패키지 : 자바 클래스를 보관하는 폴더.
- 명명 규칙 : 소문자로만 작성하며, 점(.)으로 계층 관계 표시. 특수문자/예약어 금지
클래스 : 자바 프로그램
패키지가 다르면 클래스의 이름이 같아도 상관 없다 (마치 폴더가 다르면 파일명이 같아도 상관이 없는 것처럼)
클래스 : 개별 자바 프로그램.
- 명명 규칙 : 대문자로 시작하는 CamelCase로 표기
- 한 클래스에서 다른 클래스를 불러올 수 있음 : new 클래스명();
이때, 자동으로 import 패키지명.클래스명이 상단에 작성됨.
변수와 값
변수 : 데이터가 저장되는 공간으로, 데이터가 저장된 주소를 의미함
*변수 이름엔 특수문자 사용이 기본적으로 불가능하나, 언더바(_)와 달러($)는 가능하다.
값 : 데이터 그 자체이며, 리터럴이라고 함
입력과 출력
입력 - Scanner 사용법
1. Scanner Util import 필요 : import java.util.Scanner (Scanner 객체 생성 시 자동으로 import됨)
2. Scanner 객체 생성 : Scanner scanner(객체명) = new Scanner(System.in);
3. 입력받을 객체 생성 - 단, 입력받을 데이터의 크기가 이를 수용하는 객체보다 커서는 안 된다.
- 문자열인 경우 : String string = scanner.nextString();
- int인 경우 : int intbox = scanner.nextInt();
- long인 경우 : long longbox = scanner.nextLong();
- float/double인 경우 : float floatbox = scanner.nextFloat();
출력 방법 2가지
기본형 : System.out. + 출력 메서드
출력 메서드 2가지
- println() : 끝에 줄바꿈(개행 문자, \n)이 포함되어 있음
- print() : 개행 문자 없이 출력
출처
- https://wonit.tistory.com/589#google_vignette
[조금 더 깊은 Java] Java Bytecode 를 알아보자 (자바를 컴파일하면 어떤 일이 일어날까?)
우리는 많은 시간 Java를 이용해서 다양한 소프트웨어를 개발하면서 들었던 소리가 있다. Java는 JVM 이 있기 때문에 플랫폼에 종속적이지 않고 이식성이 뛰어나다. 그 이유에 대해서 생각해본 경
wonit.tistory.com
'ETC > etc2' 카테고리의 다른 글
| [AI 활용법] 실험: Claude를 교수님처럼 활용해보기 (0) | 2025.11.27 |
|---|---|
| [공부 상황 점검] 11/20 Thu (1) | 2025.11.20 |
| [잡담] 현 공부 방식 점검 (0) | 2025.11.18 |
| 사전캠프 1일차_13NOV25 (0) | 2025.11.13 |