영원히 흘러가는 강
신입 웹개발자 기술면접(프로그래밍) 본문
프로그래밍
전산 기본
- 객체지향이 무엇인가요? 절차지향과의 차이점은 뭐죠?
ㄴ> 객체지향의 정의로 살펴보면 실제 세계를 모델링하여 소프트웨어 개발 방법.
객체지향과 절차지향은 서로 반대되는 개념이 아니라 초점의 차이일뿐이다.
객체지향도 절차지향과 같이 절차적이나 객체간의 관계에 초점.
- 객체지향 SOLID 원칙에 대해서 설명해 주세요.
ㄴ> 1. SRP(단일 책임 원칙) -소프트웨어의 설계 부품(클래스,함수 등)은
단 하나의 책임만 가져야한다. 즉, 책임에 벗어나 새로운 요구사항과 프로그램에
영향이 적어야한다.
2.OCP(개발-폐쇄 원칙)- 기존의 코드 변경않고 기능 수정하거나 추가할수있도록 설계
인터페이스에서 캡슐화 처리
3.LSP(리스코프 치환 원칙)- 자식 클래스는 언제나 자신의 부모 클래스를
대체할 수 있다는 원칙이다. 즉 부모 클래스가 들어갈 자리에 자식 클래스를
넣어도 계획대로 잘 작동해야 한다.
4. ISP(인터페이스 분리 원칙) - 한 클래스는 자신이 사용하지 않는 인터페이스는
구현하지 말아야한다. 하나의 일반적인 인터페이스보다 여러개의 구체적
인터페이스가 낫다.
5.DIP(의존 역전 원칙) - 의존 관계를 맺을때 변화하기 어려운것,거의 변화가
없는 것에 의존. 즉, 클래스 보단 인터페이스나 추상 클래스와 관계
- 객체지향 4가지 특징에 대해서 설명해 주세요.
ㄴ> 학부때 상추 캡이다 라고 외웠던 기억이..
상속 - 상위 클래스의 자료와 연산을 하위 클래스가 물려받아 사용할수있게 하는것.
재사용성 높여줌. 현실세계의 관계를 직관적으로.
추상화- 불필요한 정보는 숨기고 중요한 정보만 표현.
구체적 사물들의 공통적 특징. 쓸모있는 정보만 추출,나머지 생략
캡슐화- 객체를 캡슐로 싸서 내부 보호하고 볼 수 없게 하는것.
상태와 행위 캡슐화, 중요한 정보 은닉화.
다형성-같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현
오버라이딩 - 자신의 특징에 맞게 재구현 (ex. 걷다, 말하다)
오버로딩- 이름은 같지만 다르게 동작하는 메소드(ex. 매개변수 갯수로 차이)
- 대표적인 객체지향 언어에는 어떤 것들이 있나요?
ㄴ> 대표적으로 c++, java, c# 등
- 데이터 타입과 변수의 차이는 무엇인가요?
ㄴ> 데이터 타입은 어떤 형태로 저장 할것인지. 변수는 그 데이터를 저장
- 함수형 프로그래밍에 대해서 설명해 주세요.
ㄴ> 함수의 입력만을 의존하여 출력을 만드는 구조로 ,외부에 상태 변경을
지양하는 패러다임의 부작용 발생을 최소화
함수와 데이터 중점, 입출력이 순수 함수
코드 간결하게 하고 가독성 높여 로직에 집중
- 컴파일러와 인터프리터의 차이는 무엇인가요?
ㄴ> 한꺼번에 번역하는 컴파일러와 한줄씩 읽는 인터프리터
이로 인해 실행속도는 컴파일러가 상대적 빠르나 변역속도는 상대적 느림
인터프리터는 직접 실행하기에 실행파일 생성하지 않아 메모리 사용X
- 1급 객체에 대해서 설명해 주세요.
ㄴ> 아래 조건들을 충족한다면 1급 객체
1. 변수나 데이터에 할당 할수 있어야 한다.
2. 객체의 인자로 넘길수 있어야 한다.
3. 객체의 리턴값으로 리턴 할수 있어야 한다.
'기술면접' 카테고리의 다른 글
신입 웹개발자 기술면접(자바 ver. 2) (0) | 2020.12.15 |
---|---|
신입 웹개발자 기술면접 (자바 ver. 1) (0) | 2020.12.14 |
신입 웹개발자 기술면접(자료구조) (1) | 2020.12.12 |
신입 웹개발자 기술면접(알고리즘) (0) | 2020.12.11 |
신입 웹개발자 기술면접(데이터베이스) (0) | 2020.12.11 |