면접후기 1 ( java backend )

성난호랑이 시니철 ㅣ 2024. 8. 7. 17:03

면접 후기 backend

 

기본적인거를 답 못햇다... 

 

oop 정의 캡슐화, 추상화  간단한 설명

map, HashMap, linkdlist arrayList 차이

 

다른 질문은 모르겠는데 위 질문 답 못한게 마음에 엄청 걸린다.

오랜만에 본 면접이라 ..

 

생각나는 질문 리스트

1. nginx 사용 이유

  M :- 이벤트기반, 속도 향상을 위해 사용

  A : - 성능 테스트는 어떻게 해보았는지?

  M : - 답변 못했다..

2. index 알고있는거?

  M : - B트리 기반으로 되어있고, index 설정하면 내부에서 따로 index 키값 기준으로 정렬한 컴럼을 만들어서 조회할때 빠            르게 한다

3. index 많이 만들면 안되는지?

   M : - index를 잘못 만들면 pull scan 이되서 안된다. 그리고 내부에 컬럼을 따로 만드는거라 서버에 부하가 든다.

4. index Unique Index , Non-Unique Index 알고있는지?

   M : - Unique Index  PK 키 값, Non-Unique Index  PK 키값이 아닌 값

5. 스프링 빈이 생성 어떻게 생성되는지?

  M : - 어노테이션 선언하면 생성되는걸로 알고있다.

6. 샤딩, 파티셔닝 알고잇는지?

  M : - 사용해본적은 없고, 샤딩은 테이블을 나눠서 사용, 파티셔닝은 물리 서버를 나눠서 사용

 

7. mysql connection 수?

 

8. 스프링 AOP 설명

DI(Dependency Injection): 한 객체에서 다른 객체를 필요로 하여 의존성을 갖게 하는 기술
DL(Dependency Look-up): 한 객체에서 필요로 하는 다른 객체를 찾아서 사용하는 기술
IoC(Inversion of Control): 직접 제어야하는 부분에 대한 권한을 프레임워크 등에 넘기는 기술
AOP(Aspect Oriented Programming): 공통의 관심 사항을 추출하여 원하는 곳에 적용하는 기술

 

9. oop 캡슐화, 추상화, 상속  간단하게 설명

캡슐화 : 클래스를 통해 변수와 메소드를 하나로 묶음으로써 접근제어자를 활용하여 외부에 노출할 필요가 없는 정보들을 은닉
상속    : 부모 클래스의 기능을 물려받아 확장이 가능
추상화 : 어떤 영역에서 공통된 속성들 중 필요한 부분만을 포착해서 인터페이스나 추상클래스로 설계
다형성 : 한 클래스에 대해서만 생성하는 것이 아니라 여러 클래스에 대해 객체를 생성

 

10. map, HashMap, linkdlist arrayList 차이

 - 이것도 .. map key value 로 되어있는거고 linkd는 배열처럼 주소값 이런식으로라도 말할걸..

    map 은 인터페이스 ,hashMap은 map 인터페이스로 구현한 클래스 , map 은 키갑 중복X

     ArrayList는 index가 있고, LinkedList는 각 원소마다 앞,뒤 원소의 위치값을 가지고 있다.

     

11. 클린코드

 

12. 내가 생각하는 좋은 개발자?

- 뭐라고 답한지 기억이 안난다..
  다시 생각해보니 기획자의 의도를 잘 파악하고 이를 효과적으로 구현하는 개발자가 좋은 개발자라고 생각한다

 

13. 사용하는 디자인 페턴

 

14. TDD ? 알고있는지

  - TDD  테스트 주도 개발

    테스트 코드를 먼저 만들고 실제 프로덕션 코드를 나중에 만드는 개발 코드

    설계 -> 테스트(코드작성) -> 개발 

    - 장점으로는 

       디버깅 시간 단축, 테스트 문서의 대체 가능? , 재설계 시간의 단축 등이있다

     개인적인 생각으로는 바로 개발해야 하는 환경에서는 힘들거 같다..

     

15. 같이 일하는 사람들이 나를 어떻게 생각할거 같은지?

    - 의도한대로 잘 이해하고 일처리해주시는사람 

 

16. JUnit 테스트 코드 어떻게 작성하는지?

 

17. JUnit 목을걸다? service, mapper 연결 안될때 어떻게 하는지?

 

18. 리액트 사용했다고 했는데 node.js 알고있는지?

  - node.js 모른다고했다 .. 리액트 빌드할때 node를 사용하는데 ...

    갑자기 생각이 낫다.. 리액엑트 프로젝트 수정을 안한지 오래되서..기억을 못했다.. 

    

 

19. 테스트 코드 작성할때 IF문 전부 작성하는지?

  - 사용 테스트 해야하는 것만 IF 문을 작성한다고햇다..

     밸리데이션 체크는 entity에서 자동으로 할수있어서 신경을 안쓰고있었는데..

     어떤 뜻으로 질문 한지 모르겠다. 테스트 코드 작성 쪽을 좀더 봐야 할거 같음.

 

20. 프론트, 백엔드 나누는 이유?

 - 이것도 뭐라 말한지 기억이 안난다. 

  유지보수의 용이성, 개발 과정의 효율성 향상, 확장성, 보안성 향상 등이 있다.

 

21. 인증 서버를 redis로 만들었다고했는데 암호방식은 어떤걸 사용했는지?

- 기억이 안나서 키값을 임의로 정해서 사용할수있는 양방향 방식을 사용했다고했다.

   자세하게 어떤걸 사용했는지 질문 .. 하지만 기억이 안난다했다 . Java AES-256 양방향 암호화

   

 

다른거는 경력 위주 질문이였다.

( 지금 하고있는 프로젝트 설계? )

이렇게 정리하니까 기본적인거 답 못한 내용이 많다.

다른 질문이 더있던거 같은데 기억이 안난다....

탈락일거 같은데.. 

 

다음을 기약하며 정리 

'공부 > ' 카테고리의 다른 글

nginx VS apache  (0) 2024.07.31
Intellij 에서 javadoc 문서 만들기  (0) 2017.01.13
통켓 메모리 설정  (0) 2017.01.10
JSTL 사용하기  (0) 2016.12.08