본문 바로가기

전체 글43

[기술 면접] 스프링 / 보안 스프링으로 할 수 있는 질문이 너무 많기 때문에 일단 대표적인 것들만 소개하고자 한다. 그리고 최근 spring sequrity를 많이 사용하고 있기 때문에 간단한 보안 지식 정도는 숙지해야한다. 그래서 이와 관련된 예상 질문을 뽑아보자. 👉 예상질문 Spring 1. Spring DI/IoC는 어떻게 동작하나요? 더보기 IoC(제어의 역전)은 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것으로 코드의 최종호출은 개발자가 제어하는 것이 아닌 프레임워크의 내부에서 결정된 대로 이루어집니다. DI(의존성 주입)은 Spring 프레임워크에서 지원하는 IoC의 형태로 클래스 사이의 의존관계를 빈 설정 정보를 바탕으로 컨테이너가 자동으로 연결해줍니다. (컨테이너: 스프링에서 자바 객체들을 .. 2022. 12. 23. 더보기
[기술 면접] 데이터베이스 데이터베이스는 백엔드 직무의 필수 지식이다. 이번에는 데이터베이스와 ORM / JPA 프로그래밍에 관련하여 예상 질문과 실제 질문을 정리해보자! 👉 예상질문 Database 1. 인덱스에 대해서 설명해주세요. 더보기 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조입니다. 책의 목차와 같은 느낌으로 생각하시면 됩니다. 장점으로는 데이터들이 정렬이 되어있어 빠르게 원하는 데이터를 찾을 수 있다는 것입니다. 단점으로는 추가적인 저장 공간이 필요하기 때문에 추가 비용이 발생한다는 것입니다. 2. 트랜잭션에 대해서 설명해주세요. 더보기 트랜잭션이란 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위라고 할 수 있으며, 트랜잭션에는 여러개의 연산이 수행될.. 2022. 12. 22. 더보기
[기술 면접] 자료구조 코딩테스트에서 주로 자료구조를 묻는 문제들이 많이 나온다. 이 때, 왜 해당 알고리즘을 사용했는지, 어떤 상황에서 쓰이는지 정도는 숙지하고 있어야 한다. 👉 예상질문 Data Structure 1. 배열과 Linked List의 차이는 무엇인가요? 더보기 배열은 메모리상에 순서대로 데이터를 저장하고 링크드 리스트는 다음 데이터의 위치에 대한 포인터를 가지고 있는 구조입니다. 배열은 데이터를 인덱스로 조회할 수 있기 때문에 빠르게 탐색을 수행할 수 있고 링크드 리스트는 중간에 데이터를 삽입하거나 삭제하는 것이 용이하다는 장점이 있습니다. 또한 배열은 Stack 영역에 메모리가 할당이되고 링크드 리스트는 Heap 영역에 할당이 됩니다. 배열 조회: O(1) 링크드 리스트 조회: O(N) /데이터 추가 삭제는.. 2022. 12. 21. 더보기
[기술 면접] 운영체제 컴퓨터공학의 국밥같은 과목 운영체제에 대해 알아보자. 👉 예상질문 Operating System 1. (실제질문) 프로세스와 스레드의 차이를 설명해보세요. 더보기 프로세스는 실행 중인 프로그램을 말하며, 완벽히 독립적이기 때문에 코드, 데이터, 힙, 스택의 메모리 영역을 다른 프로세스와 공유하지 않습니다. 쓰레드는 프로세스 내에서 Stack만 따로 할당 받고 그 이외의 메모리 영역을 다른 쓰레드와 공유하고 있습니다. 프로세스는 운영체제로부터 자원을 할당받지만, 스레드는 프로세스로부터 자원을 할당받습니다. 쓰레드는 코드, 데이터, 힙영역을 공유하기 때문에 컨텍스트 스위칭이 빠르지만, 자원 공유로 인해 문제가 발생할 수 있으니 이를 고려하여 프로그래밍을 해야합니다. 2. 컨텍스트 스위칭에 대해 설명해보세요... 2022. 12. 20. 더보기
[기술 면접] 네트워크 API를 다루는 백엔드 개발자에게 네트워크 지식은 필수이다. 그래서 네트워크와 관련한 질문을 뽑아보고 실제로 면접에서 들었던 질문을 정리하면서 복습해보자! 👉 예상질문 Network 1. (실제질문) https://www.google.com/ 을 접속했을 때 일어나는 일에 대해 설명해주세요. 더보기 1. 가장 먼저 도메인 주소를 DNS(Domain Name System) 서버에 요청하여 URL을 IP주소로 변환합니다. 2. IP주소를 바탕으로 접속하고자하는 서버로 요청을 보내게 됩니다. 3. IP주소가 어떻게 가야할지 경로를 알 수 없으므로 네트워크 장비인 라우터의 라우팅을 통해 어떤 경로를 통해 가야할지 경로를 지정해줍니다. 4. 실질적인 통신을 하기 위해서 ARP를 통해 논리 주소인 IP주소를 물리 .. 2022. 12. 19. 더보기
[기술 면접] 객체 지향 프로그래밍 JAVA로 취직을 하기 위해서는 OOP의 개념과 JAVA라는 언어에 대해서 숙지해야한다. 그래서 OOP, JAVA 예상 질문을 뽑아보고 실제로 면접에서 들었던 질문을 정리하면서 복습해보자!! 👉 예상질문 OOP 1. 객체 지향 프로그래밍이란 무엇인가요? 더보기 프로그래밍에 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍입니다. 2. 객체 지향 프로그래밍을 사용하면서 느꼈던 장점과 단점은 무엇인가요? 더보기 장점으로는 첫번째는 코드 재사용이 용이합니다. 반복되는 작업을 객체로 만들거나 상속을 통해 코드의 재사용을 높일 수 있습니다. 두번째는 유지보수가 쉽습니다. 캡슐화를 통해 데이터 구조, 역할, 기능을 하나의 캡슐 형태로 만들기 때.. 2022. 12. 16. 더보기