디버깅 세션 1회차

SJ.CHO·2024년 9월 6일

Call By Value, Call By Reference

  • Call By Value : 값에 의한 호출

    • JAVA는 기본적으로 값에 의한 호출을 함.
    • 값을 복사하여 처리하며 원시타입(Stack), 참조타입(Heap)에 따라 갈린다.
    • 원시타입은 값을 스택에서 복사해서 가져오기에 각자의 주소영역을 가짐.
    • 참조타입은 주소값을 들고오기 때문에 Heap 영역에 있는 동일 객체를 가르킴.
      • 새 인스턴스로 복사할 경우 새로운객체가 생성됐다가 메소드가 끝나면 사라진다.
  • Call By Reference

    • JAVA에 존재하지않음.
    • C의 포인터, 주소연산자의 개념, 주소 자체를 넘겨줌.

왜 객체를 사용하는가

  • 객체는 현실의 사물이나 개념을 SW에서 모델링하는 단위.

추상화

  • 행위(메서드) 와 필드(속성)으로 객체의 개념을 추상화하여 객체의 일관성을 부여.

캡슐화

  • 직접 객체등의 필드로 접근하는게 아닌, 접근제어자와 메소드를 통해 은닉 및 검증을 통해 보안성을 높일 수 있다.

상속

  • 객체의 공통적인 부분을 정의하여 이를 확장하여 다른클래스에서 명시하지 않아도 사용이 가능. 코드재사용성, 계층 구조표현.

다형성

  • 자식클래스, 구현클래스를 부모타입 객체로 선언이 가능하기에 기존 자식객체를 대입하더라도 메인로직에대한 변경이 적다.
  • 코드 확장성, 유지보수성이 높다. 의존성이 낮아짐.

디버깅

  • 디버깅이란

    • 논리적 오류나 비정상적 연산을 찾아내고 수정하는 작업 과정.
  • IDE의 디버깅툴

    • Line에 브레이크 포인트를 설정하면 브레이크 포인트에 맞춰 프로그램이 절차적으로 진행됌.
    • 변수 등이나 자료구조 객체의 필드에 현재 기준으로 무엇이 담겨있는지 확인이 가능.
    • 참조타입의 경우 주소값도 출력.
    • 버그와 오류사항을 직관적으로 찾을수 있다.
    • 디버깅툴은 신이다.
profile
70살까지 개발하고싶은 개발자

0개의 댓글