본문 바로가기
기타

면접 질문 정리 (1)

by jaee_ 2021. 10. 13.

본 글은 면접 예상 질문을 정리하는 글로 계속해서 추가할 예정입니다. 

🎃 질문에 대해 두루뭉실하지 않게 명확하고 정확한 답변을 할 수 있도록 하는 것이 목표입니다.  

 

1. Reference Type(참조 자료형)과 Primitive Type(기본 자료형)의 차이점은 무엇인가요?

참조 자료형은 new라는 예약어를 사용해서 초기화를 해야하지만 기본 자료형은 바로 값을 입력해 초기화를 할 수 있습니다. 

참조 자료형은 생성시 Heap 메모리에 생성이 되고, 기본 자료형은 Stack 메모리에 생성이 됩니다. 


2. 오버로딩과 오버라이딩의 차이점은 무엇인가요?

오버로딩은 한 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것입니다. 이름은 같지만 매개변수 또는 타입이 달라야 합니다.

 

오버라이딩은 상속을 받은 클래스에서 상위클래스에 있는 메소드를 재정의 하는 것으로, 메소드명과 매개변수, 데이터 타입, 리턴타입이 모두 같아야 합니다. 


3. 상속은 무엇인가요?

상속이란 상위 클래스의 특성을 재사용 및 확장하는 것입니다. 조금 자세히 답변하자면, 상위 클래스의 속성과 특성을 하위 클래스가 그대로 물려받아 사용하며, 일부 기능은 하위클래스의 특성에 맞게 재정의(오버라이딩) 또는 추가해서 사용할 수 있게 하는 것 입니다. 


4. 상속의 장점은 무엇인가요?

상속을 받으면 상위 클래스의 특성을 그대로 물려받아 사용할 수 있기 때문에 코드의 중복을 피할 수 있습니다. 또한, 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련합니다. 


5. 다형성은 무엇인가요?

다형성이란 하나의 객체가 여러 가지의 타입을 가질 수 있는 것입니다. 오버로딩과 오버라이딩이 대표적인 객체지향의 다형성이라고 할 수 있습니다. 즉, 하나의 메소드명 또는 하나의 변수명이 상황에 따라 여러가지의 의미로 쓰이는 것을 말합니다. 


6. 객체지향 프로그래밍이란 무엇인가요?

객체 지향 프로그래밍이란, 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다. 


7. 객체지향의 4대 특성은 무엇이 있나요?

 

1. 캡슐화

캡슐화는 개발자가 의도한대로 안전하게 동작하도록 만든 장치라고 할 수 있습니다. 외부에서 접근할 필요가 없는 특정 속성이나 메소드를 사용자가 사용할 수 없도록 숨겨놓는 한마디로 코드의 은닉화라고 할 수 있습니다. 

 

2. 상속

상속이란 상위 클래스의 특성을 재사용 및 확장하는 것입니다. 상위클래스의 특성을 하위클래스에서 그대로 물려받아 코드를 재사용하며, 일부 기능은 하위클래스에서 재정의 또는 추가하여 확장할 수 있습니다. 

 

상속을 하면 유지보수가 편리하며, 코드의 중복을 피할 수 있다는 장점이 있습니다. 하지만, 다중상속이 되지않는다는 점과 강한 의존성을 갖는다는 단점도 존재합니다. 

 

3. 다형성

하나의 객체가 여러 가지의 타입을 가질 수 있는 것을 말합니다. 대표적으로 오버로딩과 오버라이딩이 있습니다. 

 

4. 추상화

추상화란 공통의 관심사만을 추출해 하나의 집합으로 만들어 내는 것을 말합니다. 객체지향 관점에서 추상화의 결과는 클래스입니다. 

 


8. RESPful API 관련 질문

  • Restful API 란 무엇일까요?
    • REST란 HTTP의 장점을 최대한 활용한 아키텍쳐 스타일을 따르는 API를 RESTful API라고 합니다. 리소스를 HTTP URI로 표현하고, 해당 리소스에 대한 행위를 HTTP Method로 표현하여 전달하는 방식입니다. 
  • Http 메소드 Put 과 Post 의 차이는 무엇일까요?
    • 'PUT'은 update(갱신)를 나타내며, 'POST'는 create(생성)을 나타냅니다. 
  • Http 메소드 Head 는 무엇일까요?
    • 특정 리소스를 GET 메서드로 요청했을 때 돌아올 헤더를 요청합니다. 
  • RestfulAPI API 로 사용자 등록/조회/수정/삭제 설계하기
    • 1이라는 사용자의 등록/조회/수정/삭제 설계 URI입니다. 
    • GET http://localhost:8080/users/1
    • POST http://localhost:8080/users/
    • PUT http://localhost:8080/users/1
    • DELETE http://localhost:8080/users/1

 


참고한 사이트

https://jeong-pro.tistory.com/95

댓글