웹개발 학원에서 자바를 처음 시작하면
System.out.println("Hello World!");
까지는 단순하지만 그 이후에는
진도가 너무 빠르고 설명도 대충해주기 때문에
대부분이 기초를 잡지 못하고
그냥 강사 설명만 보고 복사 붙여넣기만 하다가
결국 진도를 따라가지 못하고 망하는 경우가 많은데
자바라고는 난생 처음 해보는 초보자들 기준으로
맞춰주지 않는 학원이 가장 문제지만
안타깝게도 대부분의 학원에서
설명을 엄청 대충 하기 때문에
국비지원 학원 2-3개월만 다녀봐도
절반은 이해를 제대로 못해서
에.. 이러다 나가 떨어지는 경우가 수두룩하다
자바에서 Hello World 찍는 것도 좋지만
가장 기초인 객체화(인스턴스화)와
메소드 개념을 알고 있어야
나중에 다른 개념이 나와도 금새 이해를 할 수 있다
옛날에 스타1을 처음 해볼 당시
내가 영어를 전혀 하지 못하는 상태였기 때문에
영어를 봐도 읽을 줄을 몰랐다
그래서 show me the money 라는 치트를 치려면
쇼 미 더 머니를 외우는게 아니라
에스 에이치 오 더블유..
이런 식으로 철자를 외워서 치트를 쳤었는데
자바도 동일하게
기초 개념이 있는 상태에서 공부를 해야지
그냥 s h o w 이러고 있음 망하는거다
일단 가장 기본적인 개념인 객체화는
학원에서 기계처럼 붕어빵 틀과 붕어빵
자동차 틀과 자동차.. 이런 식으로
기계처럼 가르치는데
이게 기본 개념을 아는 상태에서
저런 비유가 먹히는거지
아는게 없는데 저것만 외워버리면
비유만 남고 본질을 모르기 때문에
면접가서 그게 정확히 뭔지 설명을 해 주시죠
이러면 바로 동공 지진 오는거다
먼저 객체화란
작성한 자바 파일(소스, 클래스)의 내용을
사용할 수 있도록 가져오는 것을 말하는데
Test 클래스 안에 call 메소드를 만들었다고 한들
메인 메소드 안에서 Test 클래스를
객체화를 해 주지 않으면
메인 메소드에서 사용을 못한다
(메소드를 static으로 선언 시 호출 가능하나
해당 예제에서는 생략)
이게 바로 붕어빵틀과 붕어빵 예제인데
클래스 Test는 붕어빵 틀인거고
그 틀을 가지고 메인 메소드 안에서
Test 객체 t를 만들어서 new Test()
를 통해 Test 클래스의 내용을
밀어 넣어주는 것을 객체화라고 하고
t에 Test 파일 내의 모든 정보가 담겨있기 때문에
t.메소드명(); 이런 식으로
Test 파일의 모든 내용을 갖다 쓰는거다
여기서 자연스럽게 객체화를 쓰면 뭐가 좋은거죠?
이런 질문이 나올텐데
여러 자바 파일에서 공통적으로
Test에 들어있는 call 메소드가 필요하다 치면
객체지향적이지 않은 프로그래밍 언어에서는
파일마다 다 call 메소드를 구현하고 있어야 하는데
객체지향적인 언어에서는
한 파일에서만 만들어 둔 후
객체화를 통해 갖다 쓸 수 있다는거다
이게 핵심이기 때문에
위에 설명한 내용을 반드시 이해한 후에
자바 공부를 시작해야 된다
대부분의 자바 입문자들이
Test t = new Test(); 이걸 보고
아니 이걸 왜 해야되는거지??
이러고 있는데
자바 파일은 그냥 설계도일 뿐이고
그 설계도를 끌어와서 사용하려면
Test(담을 객체명) t(사용할이름) = new Test();
을 통해 t에 Test 파일을 넣어놔야
사용할 수 있는 상태가 되는거다
이제 개념을 이해했으니
비유를 통해 알아보자면
Test 란 파일로 붕어빵 틀을 만들어 놓으면
다른 자바 파일에서
Test t = new Test();
를 통해 붕어빵을 찍어낼 수 있는데
t.메소드명 을 통해
Test 파일에 들어있는
모든 내용을 가져다 쓸 수 있게 된다
'잡담 > 웹개발(SI) 일지' 카테고리의 다른 글
SI 신입하고 같이 일하면 더 힘든 이유 (3) | 2021.08.28 |
---|---|
SI에서 교육을 받기가 어려운 이유 (0) | 2021.08.28 |
웹개발 학원에서 DB는 어떻게 공부해야 되나 (2) | 2021.08.03 |
오라클과 MySQL 중 뭘로 입문하는 게 좋을까? (0) | 2021.08.02 |
자바 VS 파이썬 둘 중에 뭘 배워야 하나? (1) | 2021.08.01 |
댓글