각 과목별 키워드 모음.
- 운영체제: 프로세스, 스레드, 동시성 제어, 스케줄링, 메모리 관리, 가상 메모리, 캐시, 데드락, 동기화 기법, 시스템 콜, I/O 관리, 파일 시스템 등
- 네트워크: OSI 7계층, TCP/IP, UDP, HTTP, HTTPS, FTP, DNS, NAT, 프록시 서버, 라우터, 스위치, IP, IPv4, IPv6, 서브넷마스크, ARP, ICMP, 소켓 프로그래밍, RESTful API, 세션, 쿠키, jwt, SSH 등
- 데이터베이스: SQL, NoSQL, RDBMS, 트랜잭션, 인덱스, 정규화, 조인, 데이터 모델링, ERD, ACID, CAP 이론, 샤딩, 리플리케이션, 분산 데이터베이스 등
- 알고리즘: 정렬 알고리즘(버블, 선택, 삽입, 퀵, 병합, 힙 등), 탐색 알고리즘(DFS, BFS, 이진 탐색 등), 그래프 알고리즘(최단 경로, MST 등), 동적 계획법, 분할 정복, 그리디 알고리즘, NP-완전 문제 , 이진(분) 탐색 => 라이브코테식으로
- 자료구조: 배열, 리스트, 스택, 큐, 힙, 트리, 그래프, 해시 테이블, B-Tree, AVL-Tree, Red-Black Tree, 이진 탐색 트리 등
- 자바: OOP, 클래스 vs 객체, 인터페이스, 상속, 다형성, 캡슐화, 추상화, 예외 처리, 쓰레드, 제네릭, 컬렉션 프레임워크, 입출력 스트림, 람다, 스트림 API, JDBC, 동일성(identity)와 동등성(equality), SOLID(객체지향 5대원칙), static, final, Checked Exception과 Unchecked Exception, 강한 결합과 느슨한 결합, 직렬화와 역직렬화, 자바의 동시성 이슈(공유자원 접근), Mutable 객체와 Immutable 객체, 자바에서 null을 안전하게 다루는 방법, String vs StringBuilder vs StringBuffer, GC, ENUM, POJO, 내부 클래스
- 스프링: DI / IoC, AOP, MVC 패턴, 스프링 부트, (스프링 데이터) JPA, 스프링 시큐리티, 예외 처리, REST API, 트랜잭션 관리, Bean, 스프링 테스트, 스프링 배치, Spring에서 CORS 에러를 해결하기 위한 방법, @RequestMapping, @ModelAttribute 등 어노테이션들 설명, WAS
- 싱글톤패턴, TDD, 함수형 프로그래밍, 프로그래밍에서 동시성 문제
- 생성 디자인 패턴, 구조 디자인 패턴, 행위 디자인 패턴
- 암호화 : 비대칭키 암호화, 대칭키 암호화, 단방향 암호화, JWT, OAUTH, SQL Injection, XSS, CSRF
- 컨테이너 : Docker, Kubernetes
- 한바퀴 다 돌고 : 자카르타 JAVA EE, AWS, 우테코 세미나(스레드)
GitHub - ksundong/backend-interview-question: 백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질
백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질문, 인터넷 참고한 질문(CC BY-NC) - ksundong/backend-interview-question
github.com
✔️ 본인이 맡은 부분에 대해서는, 이 부분 외에는 더이상 공부할 것이 없을 정도로 준비해 오기
✔️ 각 키워드별 예상 질문 뽑아오기
✔️ 실제 작동원리와 등장배경 등 부수적인 부분까지 조사해오기
복사해서 베껴 적는게 아니라, 내가 확실히 이해하고 공부한 부분을 포스팅하기.
사진은 가져와도 되지만, 글은 무조건 내가 생각해서 적을 것.
기초 cs(NETWORK, OS, DATABASE), 자바 질문은 깃허브에서 직접 확인
GitHub - ksundong/backend-interview-question: 백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질
백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질문, 인터넷 참고한 질문(CC BY-NC) - ksundong/backend-interview-question
github.com
Spring
Spring DI/IoC는 어떻게 동작하나요?JPA 영속성 컨텍스트의 이점(5가지)을 설명해주세요. JPA
기타
대용량 트래픽에서 장애가 발생하면 어떻게 대응할 것인가요? 트러블 슈팅
싱글톤 패턴에 대해서 설명해주세요.(생각보다 어려움 디자인 패턴
테스트 코드에 대해서 어떻게 생각하고, 작성하나요? 테스트
AWS 인프라를 구축해보았다면 설명해주세요. 인프라/클라우드
Docker란 무엇이고 컨테이너 가상화를 왜 사용할까요? 컨테이너
DevOps
DevOps는 어쩌면 신입에겐 물어보지 않을 수도 있습니다. 하지만 DevOps가 무엇인지 정도는 알아두는게 좋을 것 같습니다.
CI/CD가 무엇인가요? 왜 CI/CD가 장점이 될까요?커뮤니케이션
정답이 없는 질문입니다. 면접관마다 의도하는 답이 다 다를테니 자신만의 방법을 한 번 쯤 생각해보고 답변에 막힘이 없도록 준비합시다.
코드리뷰중 갈등이 있을 경우, 이를 어떻게 해결할 것인가요?좋은 소스란, 좋은 코드, Clean Code란 어떤것인가요? 기타
본인이 수행한 프로젝트 중 상용화 가능한 프로젝트가 있나요? 개인의 역량
최신기술에 관심이 있는지
최신기술에 관심이 있는지 정도를 확인하고자 함입니다. 너무 정확하게 말하지 않아도 관심이 있다는 인상정도를 줄 수 있다면 좋겠습니다.
그 회사의 기술 스택을 찾아보고 관심을 가져봤다 정도의 느낌을 줄 수 있어야합니다.
사용까지 해보면 더더욱 좋을 것 같습니다.
웹서버의 동작과정
면접 꿀팁
회사의 기술스택에 관심을 가져보세요. 학습능력이 좋음을 어떤식으로 보여줄 수 있을까요?
본인이 수행한 프로젝트를 유의미한 트래픽이 나올정도로 해본 경험을 높게 평가하는 회사가 많습니다.
두괄식으로 답변하도록 합시다. (사실 힘듭니다. 그렇게 될 수 있게끔 연습 또 연습!)
프로젝트를 수행할 때, 내가 이 기술을 단순히 좋아보여서 사용한 것이 아니라, 많은 고민을 했음을 보여주도록 하세요. 가장 간단한 질문으로는 '왜 그 기술을 사용했나요?', '그 기술 말고 다른 기술은 왜 사용하지 않았나요?', '대체할만한 기술이 있나요?' 등이 있습니다.
https://www.youtube.com/watch?v=4XNJFAPnZrY