영원히 흘러가는 강

신입 웹개발자 기술면접(프로그래밍) 본문

기술면접

신입 웹개발자 기술면접(프로그래밍)

double_R_one_G 2020. 12. 14. 14:53
728x90

프로그래밍

전산 기본

  • 객체지향이 무엇인가요? 절차지향과의 차이점은 뭐죠?

         ㄴ> 객체지향의 정의로 살펴보면 실제 세계를 모델링하여 소프트웨어 개발 방법.

 

                객체지향과 절차지향은 서로 반대되는 개념이 아니라 초점의 차이일뿐이다.

 

                객체지향도 절차지향과 같이 절차적이나 객체간의 관계에 초점.

 

 

  • 객체지향 SOLID 원칙에 대해서 설명해 주세요.

          ㄴ> 1. SRP(단일 책임 원칙) -소프트웨어의 설계 부품(클래스,함수 등)은

                       단 하나의 책임만 가져야한다. 즉, 책임에 벗어나 새로운 요구사항과 프로그램에

                       영향이 적어야한다.  

 

 

                 2.OCP(개발-폐쇄 원칙)- 기존의 코드 변경않고 기능 수정하거나 추가할수있도록 설계

 

                                               인터페이스에서 캡슐화 처리

 

                 3.LSP(리스코프 치환 원칙)- 자식 클래스는 언제나 자신의 부모 클래스를

                       대체할 수 있다는 원칙이다. 즉 부모 클래스가 들어갈 자리에 자식 클래스를

                        넣어도 계획대로 잘 작동해야 한다.

 

                 4. ISP(인터페이스 분리 원칙) - 한 클래스는 자신이 사용하지 않는 인터페이스는

                       구현하지 말아야한다. 하나의 일반적인 인터페이스보다 여러개의 구체적

                        인터페이스가 낫다.

 

 

                 5.DIP(의존 역전 원칙) - 의존 관계를 맺을때 변화하기 어려운것,거의 변화가

                        없는 것에 의존. 즉, 클래스 보단 인터페이스나 추상 클래스와 관계

 

 

 

  • 객체지향 4가지 특징에 대해서 설명해 주세요.

 

          ㄴ> 학부때 상추 캡이다 라고 외웠던 기억이..

 

              상속 - 상위 클래스의 자료와 연산을 하위 클래스가 물려받아 사용할수있게 하는것.

                        재사용성 높여줌. 현실세계의 관계를 직관적으로.

 

              추상화- 불필요한 정보는 숨기고 중요한 정보만 표현.

                         구체적 사물들의 공통적 특징. 쓸모있는 정보만 추출,나머지 생략

 

              캡슐화- 객체를 캡슐로 싸서 내부 보호하고 볼 수 없게 하는것. 

                          상태와 행위 캡슐화, 중요한 정보 은닉화.

 

              다형성-같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현

 

                        오버라이딩 - 자신의 특징에 맞게 재구현 (ex. 걷다, 말하다)

 

                        오버로딩- 이름은 같지만 다르게 동작하는 메소드(ex. 매개변수 갯수로 차이)

 

 

  • 대표적인 객체지향 언어에는 어떤 것들이 있나요?

            ㄴ> 대표적으로 c++, java, c# 등

 

  • 데이터 타입과 변수의 차이는 무엇인가요?

            ㄴ> 데이터 타입은 어떤 형태로 저장 할것인지. 변수는 그 데이터를 저장

 

  • 함수형 프로그래밍에 대해서 설명해 주세요.

          ㄴ> 함수의 입력만을 의존하여 출력을 만드는 구조로 ,외부에 상태 변경을

                지양하는 패러다임의 부작용 발생을 최소화

 

                함수와 데이터 중점,  입출력이 순수 함수 

                코드 간결하게 하고 가독성 높여 로직에 집중 

 

  • 컴파일러와 인터프리터의 차이는 무엇인가요?

          ㄴ> 한꺼번에 번역하는 컴파일러와 한줄씩 읽는 인터프리터

 

                이로 인해 실행속도는 컴파일러가 상대적 빠르나 변역속도는 상대적 느림

 

                인터프리터는 직접 실행하기에 실행파일 생성하지 않아 메모리 사용X 

 

 

  • 1급 객체에 대해서 설명해 주세요.

 

          ㄴ> 아래 조건들을 충족한다면 1급 객체

 

                   1. 변수나 데이터에 할당 할수 있어야 한다.

 

                   2. 객체의 인자로 넘길수 있어야 한다.

 

                  3. 객체의 리턴값으로 리턴 할수 있어야 한다.

728x90
Comments