포트폴리오/[IoT 기반 피지컬 AI 교육일지]

[ JAVA 기초 ] 자바 클래스 기본 구조 및 로봇 산업 취업 정보(31일차 기록)

개발자혜콩 2026. 3. 27. 16:34

1. 오늘 한 것

① 로봇 산업 동향 파악 및 취업 전략 

  • 휴머노이드 로봇 (미래 유망 기술): OS로 안드로이드, 임베디드 리눅스를 주로 사용. (기업: Boston Dynamics, 레인보우 로보틱스, 로보티즈). ROS2와 Android 연동 기술이 핵심.
  • 산업용 로봇: 기계/전자/AI 융합. 주로 펌웨어(Firmware) 제어. 현대로보틱스 등 크고 무거운 장비 위주라 석·박사 인력이 주류를 이룸.
  • 협동 로봇 (신기술): 휴머노이드와 산업용 로봇의 중간 형태. 펌웨어 제어가 핵심.

② Java 기초: 클래스(Class)의 기본 구조 학습

객체 지향 프로그래밍의 뼈대인 클래스가 3가지 핵심 요소(멤버 변수, 생성자, 멤버 함수)로 구성됨을 확인하고, 실행을 위한 main 함수 구조를 실습함.

public class MyClass {

    // 1. 멤버 변수 (상태)
    private int num; // 기본적으로 멤버 변수는 은닉(private)

    // 2. 디폴트 생성자 (초기화)
    public MyClass(){
        this.num = 10;
    }

    // 3. 멤버 함수 (동작)
    void printNum(){
        System.out.println(num);
    }

    /* Main 함수 (실행 진입점) */
    public static void main(String[] args) {
        MyClass mc = new MyClass(); // 메모리에 객체 생성
        mc.printNum();
    }
}

③ Java 한정자(Modifier) 개념 정리

  • 접근 한정자 (가시성 제어):
    • public: 어디서든 접근 가능.
    • protected: 같은 패키지 + 타 패키지의 상속받은 자식 클래스에서 접근 가능.
    • default: 같은 패키지 내에서만 접근 가능 (키워드 생략 시 기본값).
    • private: 오직 해당 클래스 내부에서만 접근 가능 (상속이 필요할 경우 protected로 변경해야 함).
  • 일반 한정자:
    • static: 객체 생성 없이 클래스 로드 시 메모리에 바로 올라감.
    • final: 적용 위치에 따라 의미가 변함.
      • 변수에 붙으면: 상수(값 변경 불가)
      • 클래스에 붙으면: 상속 불가
      • 메서드에 붙으면: 오버라이딩(재정의) 불가

2. 문제 / 헷갈린 점

public과 default의 차이점

  • 상황: 둘 다 접근을 허용하는 느낌이라 정확한 차이점이 헷갈림.
  • 해결: 패키지(Package) 개념을 기준으로 나뉨을 이해함. default는 같은 폴더(패키지) 안에서만 공유할 때 쓰고, public은 외부 라이브러리나 아예 다른 폴더에서도 끌어다 쓸 수 있게 완전히 개방할 때 사용함.

② final 키워드의 가변적 의미

  • 상황: C언어의 const와 같은 상수 개념으로만 알고 있었음.
  • 해결: Java에서는 선언되는 위치(변수, 클래스, 메서드)에 따라 각각 '값 변경 방지', '상속 방지', '오버라이딩 방지'라는 객체지향적 제어 장치로 쓰인다는 것을 구조적으로 암기함.

3. 오늘 배운 핵심

  • 진로 꿀팁: 로봇 개발자로 성장하고싶다면 포화 상태인 산업용 펌웨어보다, 안드로이드와 ROS2를 활용하는 휴머노이드 및 협동 로봇 분야를 타겟팅해야 한다. 
  • 클래스의 3요소: Java의 클래스는 '멤버 변수(데이터) + 생성자(초기화) + 멤버 함수(기능)'로 구성되며, 이 설계도를 기반으로 new 연산자를 통해 객체를 생성해야만 main에서 동작시킬 수 있다.
  • 캡슐화와 접근 제어: 멤버 변수는 기본적으로 private으로 닫아두고, 외부에서 상속이 필요할 때만 protected를 여는 방어적인 설계 습관을 들여야 한다.

4. 다음 목표

  • 2일간 예정된 Java 압축 학습 일정에 맞춰 상속(Inheritance), 다형성(Polymorphism), 인터페이스(Interface) 등 안드로이드 개발에 필수적인 객체지향 핵심 문법 마스터하기.
  • Android Studio 개발 환경 세팅 및 에뮬레이터 구동 확인.
  • C언어 프로젝트에서 다뤘던 소켓 통신 개념을 Java 환경에서는 어떻게 구현하는지 차이점 비교해 보기.