관리 메뉴

이사작전.com IT Blog

[자바/웹개발자] 면접 대비 - 1편 본문

Programming language/JAVA

[자바/웹개발자] 면접 대비 - 1편

말랑고양 플랫폼공작소 2018.09.18 01:50


안녕하세요. 이사작전.com의 개발자 말랑고양입니다.

오늘은 자바의 용어에 대해서 정확한 한 문장으로 설명할 수 있도록 정리해보았습니다.

메서드와 함수는 같은 의미로, 편의에 따라 함께 혼용하였습니다.


상속이란 무엇인가요?

자식이 부모로부터 물려받는 것입니다.

extend라는 키워드를 사용합니다.


오버라이딩이 무엇인가요?

오버라이딩은 사전적으로 무시하다라는 뜻이 있습니다.

부모 클래스에서 정의한 매서드를 무시하고 자식 클래스의 매서드를 사용하겠다라는 것입니다.


오버로딩이 무엇인가요?

오버로딩은 사전적으로 과적이라는 뜻이 있습니다.

같은 이름의 메서드, 매개변수의 갯수나 타입이 다른 것이 계속 쌓인다는 것을 말합니다.


추상화란 무엇인가요?

공통이 되는 것을 추출하다란 뜻입니다.

인간, 강아지, 코끼리의 공통이 되는 것은 '동물'이라는 것입니다.


추상클래스란 무엇인가요?

구체적이지 않은 클래스입니다.

추상클래스에서 정의한 추상메서드는 서브클래스에서 완성해야합니다.


추상클래스를 사용하는 이유는 무엇인가요?

추상클래스를 상속받아서, 기능을 이용하고 확장시키는데 있습니다.

프로젝트에서, 메서드의 일관성을 위해서 사용합니다.


인터페이스는 무엇인가요?

추상클래스보다 더욱 추상적인 클래스입니다.


인터페이스와 추상클래스의 차이점은 무엇인가요?

추상클래스는 구체적이지 않은 클래스입니다. 그러나 인터페이스는 더욱 더 구체적이지 않은 클래스입니다.

추상클래스는 구현된 메서드를 포함할 수도 있으나 인터페이스는 그렇지 못합니다.

extend해서 상속받거나 inplement해서 받은 클래스에서, 위에서 정의한 함수를 구현해야된다는 점은 동일합니다.


인터페이스를 사용하는 목적과 추상클래스를 사용하는 목적의 차이점은 무엇인가요?

추상클래스는 그 추상클래스를 상속받아서 기능을 이용하고 확장시키는 데 있습니다.

인터페이스는 메서드의 껍데기만 있습니다. 함수 구현을 강제하기 위해서 입니다. (부연설명 : 프로젝트가 커지면 투입되는 인원도 많아지고, 그러면 각자의 개성에 따라 정말 다양한 프로그램이 제작되게 된다. 인터페이스는 그런 것을 방지하기 위한 설계도이다.)


인터페이스의 현실

- 이상과 현실은 다르다. 완벽한 설계가 없기 때문에 결국 인터페이스를 수정한다.

- 설계에 오류가 존재한다. 인터페이스와 상관없이 개발자가 다시 설계하고 구현한다.

- 갑이 나쁜 놈이다. 갑의 요구사항으로 인하여 설계를 뒤엎는다.

이론과 실전의 차이라고 보시면 될 것 같습니다. 결론은 평균적으로 Interface가 효율적인 상황이 많치 않습니다. 다만, 인터페이스를 정말로 잘 사용하게 된다면, 인터페이스가 가진 장점을 온전히 누리는 훌륭한 프로그램을 만들 수  있게 됩니다.


자바에서 기본적인 개념을 공부해야하는 이유는

결국 객체지향적이고 효율적인 프로그래밍을 만드는데 그 목적이 있습니다.

틀린 부분이나 개선이 필요한 부분이 눈에 들어오신다면 댓글 남겨주세요. 수정하겠습니다.


이사견적이 필요할 땐, 이사작전!

리뷰를 남겨주시는 것은 큰 도움이 됩니다. 감사합니다.

https://이사작전.com

https://play.google.com/store/apps/details?id=com.platformaker.mobileWeb


0 Comments
댓글쓰기 폼