
안녕하세요! 이번에 길벗출판사의 <코딩 자율학습 나도코딩의 자바 입문> 교재와 함께 코딩학습단 21기 온라인 스터디에 참여하게 되었습니다.
다양한 언어와 프레임워크를 다루다 보면 결국 탄탄한 기본기가 가장 중요하다는 것을 느끼게 되는데요. 이번 스터디를 통해 자바(Java)의 기초부터 확실하게 다시 다져보려고 합니다.
이번 1주차는 1장 ‘Hello, 자바!’부터 4장 1절 ‘문자열 가지고 놀기’까지 학습했습니다. 5일 동안 진행한 1주차 학습 기록을 정리해 봅니다.
1일차: 개발 환경 설정 및 첫 자바 프로그램 (1장)
스터디 첫날은 역시 실습 환경 구축입니다. 자바 개발을 위한 IDE로 인텔리제이(IntelliJ)를 설치했습니다.
교재에서는 JDK로 Eclipse Temurin 17 버전을 권장했지만, 저는 개발 환경의 다양성을 고려해 Microsoft OpenJDK 21 버전으로 설치를 진행했습니다. 버전에 따른 큰 차이는 없어서 무난하게 프로젝트를 생성할 수 있었습니다.
프로젝트 생성 시 추가된 샘플 코드를 수정 없이 바로 실행해 보았고, 오류 없이 깔끔하게 “Hello World”가 출력되는 것을 확인하며 기분 좋게 출발했습니다.
2일차: 자료형과 변수, 그리고 명명 규칙 (2장)
2일차에는 값을 저장하는 ‘변수’와 데이터의 종류를 결정하는 ‘자료형’을 학습했습니다.
- 문자열 (String): 글자들의 나열 (
"Hello World")
- 정수형 (int): 소수점이 없는 정수 (
12,-34,0)
- 실수형 (double): 소수점을 포함한 실수 (
3.14,-1.5)
- 논리형 (boolean): 참 또는 거짓 (
true,false)
특히 실무에서 중요한 변수 이름 짓는 규칙(Naming Convention)을 다시 한번 상기했습니다. 첫 단어는 소문자로 시작하는 카멜 표기법(camelCase)을 사용하고, 데이터의 성격을 직관적으로 알 수 있는 이름(nationality, flightNo 등)을 짓는 연습을 했습니다.
package chap_02;
public class _chap02_ex1 {
public static void main(String[] args) {
double score = 90.5;
char grade = 'A';
String name = "강백호";
System.out.println(name + " 님의 평균 점수는 " + score + "점입니다.");
System.out.println("학점은 " + grade + "입니다.\n");
String nationality = "대한민국";
String firstName = "현성";
String lastName = "김";
String residentialAddress = "나도호텔";
String purposeOfVisit = "관광";
String flightNo = "KE654";
System.out.println(lastName + firstName + "님은 " + nationality + " 국민이며, ");
System.out.println(flightNo + " 항공편을 이용해서 " + purposeOfVisit + " 목적으로 입국하였고, ");
System.out.println(residentialAddress + "에 묵고 있습니다.");
}
}3일차: 상수와 형 변환 (2장 이어서)
3일차에는 더 넓은 범위의 숫자를 다루는 float, long과 값을 변경할 수 없는 상수(final), 그리고 프로그래밍에서 빈번하게 발생하는 형 변환(Type Casting)에 대해 공부했습니다.
가장 중요한 포인트는 데이터 손실 여부입니다.
- 자동 형 변환: 정수를 실수(
double) 변수에 넣을 때는 데이터 손실이 없어 자동으로 변환됩니다.
- 수동 형 변환: 실수를 정수로 바꿀 때는 소수점 이하가 날아가므로 반드시
(int)처럼 명시적 캐스팅을 해줘야 합니다.
또한, 실무에서 정말 자주 쓰이는 문자열과 숫자 간의 변환 메서드(String.valueOf(), Integer.parseInt(), Double.parseDouble())도 실습을 통해 손에 익혔습니다.
Java
package chap_02;
public class _chap02_ex2 {
public static void main(String[] args) {
final double PI = 3.141592; // 원주율 상수
final String DATE_OF_BIRTH = "2001-12-31"; // 생년월일 상수
int score = 93;
score = 93 + (int) 98.8; // 실수 98.8을 정수 98로 수동 형변환
System.out.println(score); // 191 출력
String s1 = String.valueOf(93); // 숫자를 문자열로
int ii = Integer.parseInt(s1); // 문자열을 숫자로
System.out.println(ii);
}
}4일차: 연산자의 세계 (3장)
4일차는 코드를 계산하고 흐름을 제어하는 기본 바탕인 연산자를 다뤘습니다.
기본적인 사칙연산은 물론, 코드를 간결하게 만들어주는 증감 연산자(++, --)의 전위/후위 차이를 확인했습니다. 또한, num = num + 2를 num += 2로 줄여 쓰는 대입 연산자와 조건문의 뼈대가 되는 비교 연산자(>, >=, ==, !=)를 실습했습니다. 조건의 참/거짓을 판별하는 감각을 익히는 데 집중했습니다.
5일차: 논리/삼항 연산자와 문자열 다루기 (3장~4장 1절)
1주차의 마지막 날에는 3장을 마무리하며 논리 연산자와 삼항 연산자를 배우고, 4장의 문자열 파트로 넘어갔습니다.
논리 연산자: || (OR, 하나라도 true면 true), && (AND, 모두 true여야 true), ! (NOT, 상태 반전)
삼항 연산자: if-else 문을 한 줄로 우아하게 줄여주는 마법 같은 연산자입니다. (조건) ? 참일_때_값 : 거짓일_때_값; 형태를 가집니다.
또한 자바에서 제공하는 강력한 문자열 처리 메서드들을 훑어보았습니다. 대소문자 변환(toUpperCase, toLowerCase), 특정 단어 포함 여부(contains), 위치 찾기(indexOf, lastIndexOf) 등은 앞으로 데이터를 파싱하거나 UI에 출력할 때 유용하게 쓰일 핵심 기능들입니다.
package chap_04;
public class _01_String1 {
public static void main(String[] args) {
String s = "I like Java and Python and C.";
System.out.println(s.length()); // 29
System.out.println(s.toUpperCase()); // 대문자로 변환
System.out.println(s.contains("Java")); // true
System.out.println(s.indexOf("and")); // 첫 번째 and의 위치 (7)
System.out.println(s.lastIndexOf("and")); // 마지막 and의 위치 (22)
System.out.println(s.startsWith("I like")); // true
}
}1주차 마무리 소감
이렇게 <나도코딩의 자바 입문> 스터디 1주차를 무사히 완주했습니다!
개발 환경 세팅부터 자료형, 변수, 연산자, 문자열 처리까지 자바 프로그래밍의 가장 밑바탕이 되는 체력을 기르는 시간이었습니다. 매일 조금씩이라도 코드를 직접 타이핑하고 결과를 확인하는 과정이 쌓이니 확실히 개념이 더 단단해지는 느낌입니다.
다음 주 2주차에는 제어문(조건문, 반복문)과 배열을 다루게 될 텐데, 본격적으로 프로그램의 흐름을 통제하는 로직을 짜게 될 생각에 기대가 됩니다. 끝까지 완주하는 그날까지 파이팅하겠습니다!
