자기소개, 지원동기 이런거 준비 열심히 했는데,

 

실질적으로 시키지도 않고, 묻지도 않고 

 

CS지식 위주로 질문 해가지고 당황했다.

 


 

제가 면접 때 대답한 내용이니

 

틀릴 수도 있으므로, 

 

개인적으로 찾아보시길 권장합니다. (답이 아닙니다)

 

 

 

 

Q1. Http가 무엇인인지 아시나요?

HTTP는 Hyper Text Transfer Protocol의 두문자어로, 인터넷에서 데이터를 주고받을 수 있는 프로토콜입니다. 프로토콜은 규칙이라고 생각하시면 됩니다. 이렇게 규칙을 정해두었기 때문에, 모든 프로그램이 이 규칙에 맞춰 개발해서 서로 정보를 교환할 수 있게 된 것이죠.

http요청 메서드들

GET, POST, PUT ,PATCH, DELETE

 

오버라이딩, 오버로드가 무엇인지 아시나요?

 

오버라이딩은 상위 클래스의 객체를 하위 클래스 객체에서 새롭게 정의 해서 사용하는 것을 말한다.

 

오버로드는 같은 클래스에서 파라매터 값만 다르게 해서 사용하는것을 말한다.

 

 

상속, 추상화, Implement 에대해서 아는가?

 

상속은 뭐, 자바를 배우게되면 무조건 알게되는거라 extends를 사용하는 방법으로 이야기를 하였고,

 

추상화도 또한 대표적인 개념을 abstract 하나의 개념을 정의해두고 공통으로 필요할 때 가져다 쓰는 느낌으로 알고있다.

 

extends는 일반 클래스 abstract 클래스 상속에 사용

implements : interface 상속에 사용된다.

extends는 클래스 한 개만 상속 받을 수 있다.

extends는 자신 클래스는 부모 클래스의 기능을 사용한다.

implements는 여러개 사용가능하다

implements는 설계 목적으로 구현 가능하다.

 

 

 

Post 방식, Get 방식의 차이

이게 http정의라고 하시던데,  post랑 get방식이 전혀 http를 물어보셨는데, 이것을 말해야되는지 몰랐다...

 

Post방식은 주소창에 자바스크립트를 이용해서 주소 세부 사항이 안뜨게하는 방식이고

 

Get방식은 주소창에 일일히 정보가 다 뜨는것을 말한다.

 

 

 

Http 를 암호화하는 방식은 무엇인가요 ?

https 를 사용한다 . 이건 정처기에서도 안나왔던 내용인데 정말 신입을 뽑는게 맞나? 라는 생각이 들었다..

 

 

 

자료구조, Tree을 왜 써야되고 언제 어디서 사용되는지 아세요 ?

값들을 빨리 찾아갈 수 있도록 Tree 형태로 저장한다. 오라클의 index랑 비슷한 개념이다. Tree형태의 특징은 값들이 정렬되어 있어야 한다 그래야 Tree 형태로 검색이 가능하다.

만약 정렬되어 있지 않다면 하나의 값을 찾기 위해서 값을 처음부터 하나하나 비교를 해보는 수밖에 없다. 이걸 풀스캔(Full Scan)한다고 한다. 

그러나 정렬이 되어있다면 값을 찾기 위해서 풀스캔 하지 않아도 된다. 

만약에 데이터가 1,2,3,4,5,6,7,8,9 처럼 정렬된 상태 였을때  1~3, 4~6, 7~9 로 관리를 할수 있다. 

1~3은 1

4~6은 2

7~9은 3 으로 관리 한다고 했을때

만약 5를 찾는다고 하면 먼저 2(4~6)를 찾아가서  5를 찾아간다. 그러면 1(1~3), 3(7~9)은 보지도 않고 5를 찾아갈수 있는 것이다. 이것이 오라클에서 사용하는 인덱싱으로 데이터를 찾아가는 기법이다.

지인 왈 : 트리는 음... 소팅할때 힙정렬 구상할때 쓰거나 계층형으로 데이터를 저장해야할때 등등

 

https://deftkang.tistory.com/77

 

[자료구조] 트리(Tree)를 사용하는 이유와 특징

값들을 빨리 찾아갈 수 있도록 Tree 형태로 저장한다. 오라클의 index랑 비슷한 개념이다. Tree형태의 특징은 값들이 정렬되어 있어야 한다 그래야 Tree 형태로 검색이 가능하다. 만약 정렬되어 있지

deftkang.tistory.com

 

 

데이터베이스가 엄청 많아지면, 렉을 줄이기 위해서 어떻게 해야되나요 ?

이거는 정말 쉬운 질문이다. Index를 써서 필요한 데이터만 확인하고 나오도록 하게하면 된다.

(아근데 잘 말했는데도, 표정이 틀렸다는 식이어서 좀 서럽다)

 

 

 

Spring을 왜 사용하는지 아세요? 어떤 기능이 있는지 아세요 ?

1. 스프링은 경량의 빈 컨테이너(Factory)다.

  - 스프링 컨테이너는 자바 객체의 생성, 소멸과 같은 라이프 사이클을 관리하며,

    스프링 컨테이너로부터 필요한 객체를 검색하여 사용할 수 있다.

 

2. 스프링은 DI(Dependency Injection) 기능을 지원한다.

  - XML 설정 파일을 통해 객체간의 의존관계를 설정할 수 있다.

  - 객체는 의존하고 있는 객체를 직접 생성하거나 검색할 필요가 없다.

 

3. 스프링은 AOP(Aspect Oriented Programming)을 지원한다.

  - 로깅, 보안, 트랙잭션과 같은 공통 기능을 핵심 비즈니스 모듈로부터 분리해서

    각 핵심 비즈니스 모듈에 적용할 수 있다. 

 

4. 스프링은 POJO(Plain Old Java Object)를 지원한다.

  - 스프링 컨테이너에 저장되는 자바 객체는 특정한 인터페이스를 구현하거나 클래스를 상속받지 않아도 된다.

  - 따라서 기존에 작성한 클래스를 수정할 필요 없이 스프링에서 사용할 수 있다.

 

5. 스프링은 트랜잭션 처리를 위한 일관된 방법을 제공한다.

  - JDBC를 사용하든, 컨테이너가 제공하는 트랜잭션을 사용하든 XML 설정 파일을 통해

    트랜잭션 코드에 상관없이 일관되게 트랜잭션을 제어할 수 있다.

 

6. 스프링은 영속성과 관련된 다양한 API를 지원한다.

  - JDBC를 비롯하여 iBatis, Hibernate, JPA 등 데이터베이스 처리를 위해 사용되는 라이브러리와의 연동을 지원한다.

7. 스프링은 다양한 API를 지원한다.

  - JMS, Mail, Scheduling 등 엔터프라이즈 어플리케이션을 구축하는데 필요한

    다양한 API를 XML 설정 파일을 통해 손쉽게 사용 할 수 있도록 지원한다.

 

8. 스프링은 웹 어플리케이션 구축을 위한 MVC 프레임워크를 제공한다.

 

https://soonggi.tistory.com/78#:~:text=1.%20%EC%8A%A4%ED%94%84%EB%A7%81%EC%9D%80%20%EA%B2%BD%EB%9F%89%EC%9D%98,%EA%B2%80%EC%83%89%ED%95%98%EC%97%AC%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8B%A4.

 

스프링 프레임워크(Spring Framework)의 주요 기능 및 특징

안녕하세요. 오랜만에 포스팅이지만,, 차근차근 적어 보도록 하겠습니다. Spring Framework의 주요 기능 및 특징 1. 스프링은 경량의 빈 컨테이너(Factory)다. - 스프링 컨테이너는 자바 객체의 생성, 소

soonggi.tistory.com

 

Mybatis, Maven, pom 에대한 이야기를 하니까 만족해 하는 느낌이었다..

간략하게 pom에다가 본인이 사용하고싶은 기능을 코드로 추가하고 Maven 에 추가된걸 확인하면

사용 할 수 있는 원리이다.... 질문을 너무 추상적으로 하시는데 대답하기 너무 힘들었다.

 

Answer :  트랜잭션 설정이 간편하고, 시큐리티로 보안적인 측면도 쉽게 챙길수 있으며 빈 컨테이너를 이용한 의존성 관리가 편하다

 

 

ajax 동기 / 비동기의 차이점을 아는가?

비동기는 controller갔다가 jsp로 다시 넘어오는거고

 

동기의 경우는 돌아오지 않는다. 그러니까 하루종일 돌아가게 된다.

 

Answer :

동기방식은 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점이 있고, 비동기방식은 동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점이 있다.

 

JPA가 뭔지아는가? , Rest API에 대해서 아는가?

Java Persistence API (자바 퍼시스턴스 API)

 

데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것

 

 

 


 

복사했습니다!