티스토리 뷰
🔑Web
1. GET방식과 POST 방식의 차이점을 설명하시오.
👉🏻 GET과 POST는 HTTP프로토콜을 이용해서 서버에 무언가를 전달할 때 사용하는 방식입니다.
GET방식은 클라이언트에서 서버로 데이터를 전달할 때, 주소 뒤에 key와 value가 결합된 쿼리 스트링 형태로 전달됩니다. 주소창에 쿼리스트링이 그대로 보여지기 때문에 보안성이 떨어집니다. 길이에 제한이 있으므로 전송 데이터의 한계가 있습니다. POST 방식보다 상대적으로 전송 속도가 빠릅니다.
👉🏻 POST방식은 일정 크기 이상의 데이터를 보내야할 때 사용합니다. 서버로 보내기 전에 인코딩하고, 전송 후 서버에서는 다시 디코딩 작업을 합니다. 주소창에 전송하는 데이터의 정보가 노출되지 않아 GET방식에 비해 보안성이 높습니다. 전송 속도가 GET방식에 비해 느리며 쿼리스트링 데이터 뿐만 아니라 라디오 버튼, 텍스트 박스 같은 객체들의 값도 전송이 가능합니다.
GET방식과 POST방식의 차이점을 정리하자면, Get은 주로 웹 브라우저가 웹 서버에 데이터를 요청할 때 사용하고, 웹 브라우저에서 웹 서버로 전달되는 데이터가 인코딩되어 URL에 붙습니다. Post는 웹 브라우저가 웹 서버에 데이터를 전달하기 위해 사용하고, 전달되는 데이터가 보이지 않습니다. 웹 서버에 많은 데이터를 전달하기 위해서는 Post방식을 사용하는 것이 바람직합니다.
🔑Database
2. 정규화 작업을 하는 이유는 무엇인지 설명하시오.
👉🏻 관계형 데이터베이스 설계 시 중복을 최소화하도록 데이터를 구조화하는 작업을 '정규화'라고 합니다. 정규화를 하는 이유는 삽입, 삭제, 갱신 이상(anomaly)이 있는 관계를 재구성함으로써 바람직한 스키마로 만들어가는데 있습니다.
(+) 정규화 방법
👉🏻 기본적으로 높은 차수의 정규형은 낮은 차수의 정규형을 모두 만족해야 합니다. 즉, 제 3정규형은 제 1,2정규형의 조건을 모두 만족해야 하며, BCNF는 1,2,3정규형을 기본적으로 모두 만족하고 있어야합니다.
🔑JAVA
3. 오버로딩과 오버라이딩의 차이에 대해 설명하시오.
👉🏻 오버로딩(Overloading)은 같은 이름을 갖고 있지만, 서로 다른 매개변수 형식을 가지고 있는 메소드를 여러개 정의하는 것입니다. 오버로딩의 조건은 메소드의 이름이 같아야 하고, 매개변수의 개수 또는 매개변수의 자료형이 달라야합니다. 메소드의 리턴타입은 같아도 되고 달라도 됩니다. 오버로딩을 사용함으로써 프로그램의 가독성을 증가시킬 수 있습니다.
👉🏻 오버라이딩(Overriding)은 부모 클래스의 메소드를 자식 클래스에서 '재정의'하여 사용합니다. 부모 클래스 메소드의 내부 로직을 아예 바꾸거나 로직을 추가할 때 사용합니다. 이때의 규칙은 메소드의 이름과 매개변수의 개수, 데이터타입 순서와 리턴타입이 같아야합니다. 오버라이딩은 대표적인 객체지향 언어의 특징인 다형성 중 하나입니다.
4. 객체지향과 절차지향 프로그래밍에 대해 설명하시오.
👉🏻 객체지향의 정의는 실제 세계를 모델링하여 소프트웨어를 개발하는 방법입니다. 대표적인 객체지향 언어에는 Java가 있습니다. 객체 지향의 3대 특징으로는 캡슐화, 상속, 다형성이 있습니다. 객체지향의 장점으로는 코드의 재활용성이 높고, 코딩 방식이 절차지향보다 간편하며 디버깅이 쉽다는 특징을 가지고 있습니다. 반면 단점으로는 처리속도가 절차지향보다 상대적으로 느리며, 설계에 많은 시간이 소요된다는 점이 있습니다.
👉🏻 절차지향의 정의는 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며, 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법입니다. 대표적인 절차지향 언어에는 C언어가 있습니다. 컴퓨터의 작업 처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하다는 특징이 있습니다. 반면 객체 지향에 비해 유지보수가 어려우며 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵다는 점과 디버깅의 어려움이 있습니다.
👉🏻 객체지향의 반대는 절차지향이 아니며 절차지향의 반대는 객체지향이 아닙니다. 절차지향은 데이터를 중심으로 함수를 구현하고, 객체지향은 기능을 중심으로 메소드를 구현합니다.
'👩🏻💻 기술면접' 카테고리의 다른 글
[기술면접대비] 개발자 기술 면접 대비 요약본 (6) (0) | 2020.04.24 |
---|---|
[기술면접대비] 개발자 기술 면접 대비 요약본 (5) (0) | 2020.04.19 |
[기술면접대비] 개발자 기술면접 대비 요약본 (4) (2) | 2020.04.12 |
[기술면접대비] 개발자 기술 면접 대비 요약본 (2) (1) | 2020.04.04 |
[기술면접대비] 개발자 기술 면접 요약본 (1) (3) | 2020.04.03 |