[한화시스템 BEYOND SW 캠프] 22기 4주차 회고

정병진·2025년 11월 23일

한화시스템 SW BEYOND 캠프로부터 시작된 개발자 성장일기 week 4 - 자바 첫걸음

그렇게 프로젝트가 끝나고, 나는 기다리고 기다리던 자바를 배우기 시작했다.
(프로젝트 관련 회고는 따로 작성했습니당)

프로젝트 회고 링크
(https://velog.io/@gkavmfl/한화시스템-BEYOND-SW-캠프-22기-첫-미니-프로젝트-회고)

지금까지 데이터베이스 복습만 했지 예습을 했던 건 자바가 처음이다 !
그래서 배울 때 명령어들을 좀 써봐서 그런지 코드를 따라치는 게 아니고
이해하면서 할 수 있었던 것 같다.

그것도 잠시 잘 따라간다는 착각을 했다고 생각하게 된 건,
if, for문을 배우기 시작부터였다.

분명 강사님이 하는대로 코드를 작성하는데 나는 자꾸 오류가 났었다.
뭐때문인지 계속 보면서 고민을 헀지만, 뭐가 잘못된지 몰랐다.

옆자리에 팀원에게 도움 요청해서 문제점을 피드백 받았고,
'{}' 요놈 문제가 많았다. 올바른 위치에 코드를 작성해야하는데 중괄호를 뛰어넘고 코드를 작성한다던지, 중괄호를 안닫아 줬다던지.. 이것 때문에 오류가 자주 낫던 것 같다.


이번주에 배운 자바

  • literal
  • Mathod
  • Package
  • Math class / Random
  • Scanner
  • 조건문(if, else-if, nested if, switch)
  • 반복문(for, 중첩 for)

🔥자바 기초 용어 총정리🔥

리터럴

변하지 않는 데이터 그 자체
상수와 혼동할 수 있지만 상수는 데이터가 저장되는 메모리상의 공간을 의미
리터럴은 고정된 값 자체를 의미

변수

변수를 선언한다는 의미는 메모리에 공간을 생성하고 그 공간을 참조(reference)할 수 있도록 이름을 부여하는 것

  • 정수형
타입할당되는 메모리 크기데이터 표현 범위
byte1 바이트128-128 ~ 127127
short2 바이트215-2^{15} ~ (2151)(2^{15} -1)
int4 바이트231-2^{31} ~ (2311)(2^{31} -1)
long8 바이트263-2^{63} ~ (2631)(2^{63} -1)
  • 실수형
타입할당되는 메모리 크기데이터 표현 범위
float4 바이트(3.41038)(3.4 * 10^{-38}) ~ (3.41038)(3.4 * 10^{38})
double8 바이트(1.710308)(1.7 * 10^{-308}) ~ (1.710308)(1.7 * 10^{308})
  • 문자형
타입할당되는 메모리 크기데이터 표현 범위
char2 바이트00 ~ 2162^{16}
  • 논리형
타입할당되는 메모리 크기데이터 표현 범위
boolean1 바이트true 혹은 false
  • 문자열
    문자열은 기본 자료형에 해당하지 않는 참조자료형
    이 부분은 나중에 클래스와 객체를 배우고 난 뒤 이해 가능하기 때문에 현재는 그냥 문자열을 저장하기 위한 자료형이라고 생각하고 사용하면 된다.
    String str;

상수

상수(constant)는 변수와 동일하게 데이터를 저장할 수 있는 공간

오버플로우

오버플로우(overflow)란 변수가 담을 수 있는 값의 범위를 벗어나는 데이터를 담았을 때 발생하는 현상

형변환

자바 형변환(casting) 이란 변수 또는 리터럴을 다른 타입으로 변환하는 것

  • 자동 형변환
    컴파일러가 자동으로 수행해주는 타입 변환
  • 강제 형변환
    형변환(casting) 연산자를 이용한 강제적으로 수행하는 형변환

1. 메서드

  • 정의
    클래스 안에 작성된 동작(기능)
  • 예시
    public void methodA() { }

2. 매서드 호출(call)

  • 정의
    작성해둔 매서드를 실행 시키는 것
  • 예시
    application1.methodA();

3. 매개변수(Parameter)

  • 정의
    메서드가 전달받은 값을 저장하는 변수
    (메서드 선언부의 괄호 안에 적는다)
  • 예시
    public void printAge(int age)

4. 전달인자(Argument)

  • 정의
    메서드를 호출할 때 괄호 안에 실제로 넣는 값
  • 예시
    prinAge(값);

5. 반환(return)

  • 정의
    메서드를 종료하고, 호출한 곳으로 값을 되돌려주는 것
  • 예시
    return 12345;

6. 반환형(Return Type)

  • 정의
    매서드가 되돌려줄 값의 자료형
    (void면 아무값도 반환하지 않음)
  • 예시
    public int getSum() {...}

7. static

  • 정의
    객체를 만들지 않고 클래스명으로 바로 사용하는 키워드
    프로그램 시작 시 메모리에 먼저 올라감
  • 예시
    public static void main(String[] args){

8. 객체(Object)

  • 정의
    클래스를 실제로 만든 실제 실체(Instance)
    new 로 생성한다.
  • 예시
    Calculator calculator = new Calculator();

9. 클래스(Class)

  • 정의
    객체를 만들기 위한 설계도
    메서드, 변수 등을 포함한다.
  • 예시
    public class Application1 {}

10. 패키지(Package)

  • 정의
    클래스를 묶어놓은 폴더 구조
    프로젝트를 정리하기 위해 사용.
  • 예시
    package com.패키지1.패키지1-1.패키지1-1-1.파일명

11. import

  • 정의
    다른 패키지의 클래스를 현재 파일로 가져오는 문장
    import를 하면 패키지명 생략 가능
  • 예시
    import com.패키지1.패키지1-1.패키지1-1-1.파일명.패키지2_다른파일명;

12. API

  • 정의
    Java에서 제공하는 기능 모음(라이브러리)
    Math, Random, Scanner 등
  • 예시
    Math.random();

13. Scanner

  • 정의
    키보드 입력을 받는 기능을 가진 객체
  • 예시
    Scanner sc = new Scanner(System.in);

14. 조건문(Conditional Statement)

  • 정의
    조건에 따라 다른 코드를 실행하는 문법
  • 예시
    if(score >= 90){ }

15. switch

  • 정의
    여러 값 중에서 일치하는 값으로 분기시키는 조건문
  • 예시
    switch(op) {

16. 반복문(Loop)

  • 정의
    코드를 여러 번 반복 실행하는 문법(for, while 등)while은 아직 안배움
  • 예시
    for(int i = 1; i <= 10; i++) { }

17. 중첩 반복문(Nested Loop)

  • 정의
    반복문 안에 반복문이 들어간 구조
  • 예시
    for(row = 1; row <= 3; row++) {
    for(col = 1; col <= col++) {} }

18. 지역변수(Local Variable)

  • 정의
    메서드 안에서 선언되고 그 메서드 안에서만 사용 가능한 변수
  • 예시
    int sum = 0;

19. 자료형(Data Type)

  • 정의
    변수가 저장할 값의 종류(타입)
    int, double, boolean, char, String 등
  • 예시
    int age = 값;

3일동안 배운 내용들인데, 많아도 너무많아 !!!!
자바 배울 날이 30일 넘게 남았다..

일단, 위에 내용들을 배우면서 오류나는 부분들을 혼자서 찾으려고 노력 많이했다.
(정해진 시간동안 오류를 찾지 못하면 옆팀원에게 도움요청했다..ㅎ)

시작할 때 말했듯이,
반복문 적을 때 오타(i를 1로 쓴다던지), 중괄호의 위치(반복문 사용 시 올바른 위치에서 중괄호 닫아주기)에 실수가 많았고, 그래도 한두번 틀리다 보니 어느정도 왜 오류가 낫는지 보이기 시작했다.

짧은 시간 내에 많은 내용들을 머리에 넣을려고 하다보니, 과부하가 걸리기 직전이였다. 그래도 이해가 안가는 부분은 없었지만,
나중에 코드 작성할 때 기억이 안날까봐 걱정도 된다.
그래도 자신과의 타협, 개나 주고 그냥 하기로 마음먹었다.

  • 이번주 느낀점
    바쁘게 준비하던 프로젝트가 끝나서 그런지 어느정도 복습할 때 여유가 생긴 느낌이였다. 자바를 제일 중요하게 생각하는 만큼, 예습을 잘해놨지만 내가 인강을 듣는 속도보다 강사님의 진도가 더 빨랐다.
    그래도 어려운 부분은 없이 강의를 잘 들었고, 헷갈리는 부분만 어떻게 복습할지 고민해보자.
  • 내가 이번주에 잘한 점
    자바를 위해 예습목적으로 인강을 들어 놓은건 정말 좋았다. 강사님이 설명해주시는 걸 집중하는데 아는 게 있어서 복습 개념으로 강의를 들어 귀에 쏙쏙 들어왔고, 생각하는 시간을 정해두고 공부한 덕분에 다음주에 시험 볼 예정인 PCSQL 준비하기 위해 프로그래머스 문제를 풀 시간이 있었다.
  • 내가 이번주에 아쉬웠던 점
    자바를 배울 때 아직 어려운 부분이 많다. 예습, 복습을 한다한들 바로 흡수하는게 쉽지 않다. 코드를 계속해서 보고 익숙해지기 위해 하루하루 배운 코드를 한번씩 써보는 것도 도움이 될 것 같다.
  • 내가 개선할 점
    공부를 아직 하는 방법을 모르는 것 같기도 하다. 뭔가 뭔가 다 펼쳐놓고 이것저것 공부하는 느낌이랄까? 지금 자바와 PCSQL을 같이 병행해서 두마리 토끼 다 잡아볼려다가 다 놓칠 것 같은 느낌이 물씬 든다.
    어떤 게 주가 되어야 하는지 좀 정해놔야 할 것 같다.
  • 다음주 계획
    일단, 우리 22기 몇몇 수강생들은 현재 남아서 PCSQL 스터디를 하고 있다.
    사실 첫 시험을 통과하기엔 실력이 부족한 건 알고 있다. 그래도 최대한 노력해보고 운으로 말고 실력으로 통과하기 위해 최대한 노력 해볼 예정이다.

마지막까지 예습, 복습 꾸준히해서 자바에 대해 자신감있게
설명할 수 있는 사람되기로..!

profile
신입

2개의 댓글

comment-user-thumbnail
2025년 11월 23일

항상 잘보고 있어요

1개의 답글