어느날 한 취업준비를 하기 위해 여러 영상들을 보고 어떤 질문들을 주로 준비해야 하는지 하나씩 리스트로 추출하고 있었다. 리스트를 만들어본 결과 내가 가장 대답하기 곤란하고 생각지도 못했던 질문이 있었다.
그 질문은 바로 왜 해당 언어를 쓰고 해당 프레임워크를 썼는가? 였다. 너무 당연스럽게 사용하고 있었기에 사용하고 있는 언어와 프레임워크, 라이브러리들이 왜 필요한지에 대한 것은 생각해보지 않았던 것 같다. 그래서 오늘 하나씩 그 질문들에 대답을 정리해보고자 한다. 자주 나오는 자바나 스프링의 기본 개념들은 여기서는 다루지 않는다. 오직 왜 사용했는지와 다른 것들과의 차이점은 무엇인가에 대해 다루려고 한다.
하지만 내가 몰랐던 개념들에 정리는 같이 진행할 것이다. 예를 들어 sse, polling 방식 등 조금 생소한 개념들은 함께 정리할것이다. (극히 내 주관적인 생소한 개념들 위주!)
질문 내용은 주로 아래와 같은 양식으로 이루어진다.
1. 왜 A를 썼는가?
2. A에 대한 특징은?
3. A대신 B를 쓸수도 있었을 텐데 왜 A를 썼는가?(A와 비슷한 포지션의 B)
4. 발생한 문제는 어떻게 처리했는가?
다음 글에서 SpringSecurity에 대한 내용부터 정리하고자 한다. 다음주 과외 수업학생에게 이 내용을 가르치기 때문에 ㅎㅎ
[Java]
1. 자바 언어를 왜 사용하는가?
2. 다른 언어와 자바의 차이점?
[Spring]
1. 왜 스프링을 사용하는가?
2. 스프링의 장점은 무엇인가?
3. 스프링 부트를 사용했을때 장점과 단점은?
4. Spring Context 내부 구조 및 라이프 사이클 관리 방법
5. Annotaion의 종류와 작동 원리
[Java mail sender]
1. Java mail sender를 사용한 이유
2. 비동기식으로 처리한 이유
3. 비동기로 처리했을때 발생할 수 있는 문제점
[Mapping]
1. Map struct를 사용한 이유
2. Map Struct 와 Object Mapper 차이점
3. 발생했던 문제점 및 해결방법
[JPA]
1. 왜 JPA를 사용했는가?
2. JPA 와 MyBatis같은 프레임워크의 각각의 장단점
3. JPA를 사용했을때 문제점과 해결방법
[Security]
1. 왜 Security를 사용했는가?
2. 왜 Security를 사용하고 Session statement를 stateless로 사용했는가?
3. security 에서 csrf를 disable로 한 이유
4. cors 설정을 하는 이유
5. Security를 사용했을때 발생한 문제점과 해결방법
[JWT]
1. 왜 JWT를 사용했는가?
2. session과 token을 사용한 인증중 왜 jwt를 선택했는지?
3. 이 두개의 각각 장단점은?
4. JWT의 구조
5. JWT로 검증을 어떻게 하는가?
6. JWT를 사용했을 때 발생한 문제점과 해결방법
[Oauth2]
1. 왜 Oauth를 사용했는가?
2. 사용하면서 불편한점이나 보완해야 할 점은?
3. Oauth2의 원리는?
[Redis]
1. 왜 Redis를 사용했는가?
2. Redis의 장점 및 단점은?
3. Redis와 Kafka, Rabbit Q의 차이를 아는가?
4. Redis를 활용했던 방법
5. Redis를 사용했을때 발생했던 문제점 및 해결방법
[Websocket.io]
1. websocket을 사용한 이유
2. websocket 통신 방식, 다른 프레임워크와의 차이점
3. 채팅 내용 저장 방식
4. 발생했던 문제점 및 해결방법
[AWS EC2]
1. EC2서버를 선택한 이유
2. EC2 서버를 사용했을때 장단점
3. 프로젝트 배포를 어떻게 했는지?
4. 프로젝트 배포 및 운영에서 발생했던 서버 문제점 및 해결방법
[S3]
1. S3서버를 선택한 이유
2. S3서버를 어떻게 사용했는지?
3. S3 서버의 장단점
4. S3 서버에서 파일을 관리했을때 발생했던 문제점 및 해결방법
[Docker]
1. Docker를 사용한 이유
2. Docker를 어떻게 사용했는지?
3. Docker로 배포했을때의 장단점
4. Docker로 배포 및 운영시 발생했던 문제점 및 해결방법
[Git]
1. Git을 사용한 이유
2. Git을 어떻게 사용했는지
3. Git의 장단점
4. Git으로 형상관리를 하면서 발생했던 문제점 및 해결방법
5. Git으로 형상관리를 하면서 정했던 컨벤션등이 있는가?
[프로젝트]
1. 왜 이런 프로젝트를 만들게 되었는가?
2. 각 기술 스택들을 정하게 된 이유
3. 프로젝트 기획 및 설계단계에서 규칙을 정했는가? 그렇게 정한 이유는?
4. 프로젝트를 객체지향적으로 만들었는가?
5. 프로젝트 작업중 발생한 문제점 및 해결방법
'면접 준비' 카테고리의 다른 글
백엔드 자바 CS 면접 빈출 질문 대비하기 - 자바 초급+중급 (0) | 2024.08.13 |
---|---|
백엔드 자바 CS 면접 빈출 질문 대비하기 - Security (0) | 2024.08.01 |
[CS면접 및 자바 면접 준비] DB 데이터 베이스 면접 정리 - DB의 기 (0) | 2024.03.28 |
[CS면접 및 자바 면접 준비] Generic 및 쓰레드 면접 질문 정리 (0) | 2024.03.27 |
[CS면접 및 자바 면접 준비] Network (2) | 2024.03.26 |