-
추천 리스트:
운영체제, 컴퓨터구조, 네트워크, 자료구조, 알고리즘, 리눅스, 프로그래밍 언어, 기술스택, 코테풀이과정코드 스테이츠 백엔드 기술면접 질문 예시
Cloud CI/CD가 무엇이라고 생각하시나요? CI와 CD의 차이점이 무엇인지 설명해 주세요.
- ci/cd란 애플리케이션의 개발부터 배포단계까지를 자동화하여 효율적으로 사용자에게 빈번하게 배포할 수 있게 하는 방법을 의미합니다. ci는 지속적 통합을 의미하며 코드의 변경사항이 발생하면 이를 자동으로 빌드 및 테스트를 진행하여 공유 리파지토리에 병합하게 해줌으로써 여러 사람이 동시에 작업하여도 충돌을 방지할 수 있다. cd의 경우 공유 리파지토리의 변경 사항을 고객이 실제로 사용하는 프로덕션에 자동으로 적용하는 과정을 의미한다.
Spring Framework DTO가 무엇인지 설명해 주세요.- dto란 클라이언트와 서버 간의 데이터를 전송하기 위해 사용하는 객체를 의미합니다. 예를 들어, 클라이언트가 서버에 요청을 보낼 때 요청 본문 데이터를 requestDto로 받을 수 있고 서버가 클라이언트에게 응답 데이터로 responseDto 객체를 사용하여 데이터를 전송할 수 있습니다.
추가 질문: dto를 쓰는 이유는 무엇인가요?
- 관련 데이터를 하나의 dto 객체로 모아서 효율적인 데이터 전송이 가능하게 합니다.
Algorithm 이진 탐색 알고리즘(BS)이 데이터를 효율적으로 찾기 위해 탐색하는 과정을 설명해주세요.- 정렬된 데이터 배열에서 중간값을 지정하고 찾고자 하는 데이터와 비교하여 나머지 절반으로 탐색 범위를 좁혀나가며 데이터를 탐색하는 알고리즘입니다. 시간 복잡도는 logn으로 굉장히 빠르며 단, 반드시 데이터가 정렬되어 있어야 한다는 조건이 필요합니다.
CS 트랜잭션에 대해 설명해주세요.- 데이터베이스 상태를 일관적으로 유지하기 위한 작업의 논리적 단위라고 할 수 있습니다. 이렇게 묶인 논리적 하나의 작업은 모두 성공하거나 하나라도 실패할 경우 반영되지 않아야 합니다. 예를 들어, 은행 앱에서 자금 이체의 경우 보내는 작업과 받는 작업은 하나의 논리적인 작업의 단위로 둘 중 하나만 성공하는 경우는 없어야 하기 때문에 트랜잭션이라는 개념이 적용되어야 합니다.
HTTP URL과 URI의 차이점이 무엇인가요?
- uri은 통합자원식별자라는 의미로 리소스를 식별하기 위한 개념이고 url은 uri의 하위 개념으로 리소스의 위치를 특정하기 위한 개념입니다. 따라서 모든 url은 uri이지만 그 반대는 성립하지 않습니다.
Browser Client Side Rendering 과 Server Side Rendering 의 차이점에 대해서 설명해주세요.- csr의 경우 클라이언트가 요청한 데이터를 서버에서 전송하고 이 데이터를 이용하여 클라이언트 측에서 화면을 렌더링하는 방식을 의미하고 ssr의 경우에는 서버 측에서 화면을 렌더링한 후 html 자체를 클라이언트에 넘겨주는 방식을 의미합니다.
Database ORM이 무엇인지 설명해 주세요.- 객체와 관계형 데이터 베이스의 테이블을 자동으로 매핑해주는 기술입니다. 개발자가 직접 sql을 작성하지 않아도 되고 기존의 jdbc를 사용하였을 때 반복되는 코드들을 줄여주기 때문에 개발의 생산성이 올라간다는 장점이 있습니다.
제가 직접 jdbc를 사용해본적은 없지만 orm 기술인 spring data jpa를 사용하면서 기본적인 crud 기능을 단순히 jpaRepository를 확장하는것만으로 구현할 수 있어 굉장히 편하고 코드의 양이 줄어드는 경험을 하여서 orm 기술의 장점을 직접 느낄 수 있었습니다.
스프링 관련 질문
스프링이란 무엇인가요?
- 자바 언어를 기반으로 한 오픈 소스 프레임워크로 엔터프라이즈 애플리케이션 개발을 위한 다양한 모듈과 라이브러리를 제공해주는 도구(프레임워크)입니다.
스프링의 장점은 무엇인가요?
- 스프링 컨테이너를 활용하여 객체들의 의존성 관리와 생명주기를 직접 관리하여 개발자의 부담을 줄여주고 aop를 지원하여 로깅, 트랜잭션, 보안과 같은 공통 관심사와 핵심 관심사를 분리할 수 있으며, 웹 애플리케이션 개발을 위한 모듈을 제공하여 편리하게 웹 앱을 개발할 수 있습니다.
DI, IOC, AOP는 무엇인가요?
- 의존성 주입이란 객체들의 의존 관계를 외부에서 주입해주는 개념을 의미하고 제어의 역전이란 프로그램의 제어권(객체의 생성과 관리)이 개발자에게 있는 것이 아니라 프레임워크나 외부 시스템에 있는 것을 의미합니다. AOP란 로깅, 트랜잭션, 보안과 같은 공통 관심사를 핵심 로직과 분리하여 코드를 더 깔끔하게 만들고 유지보수성을 향상시키는 프로그래밍 기법입니다.
'긴급 면접 준비' 카테고리의 다른 글
리눅스 관련 질문 (0) 2023.09.23 자료구조 및 알고리즘 관련 질문 (0) 2023.09.23 네트워크 관련 질문 (2) 2023.09.21 운영체제 관련 질문 (0) 2023.09.20 자바와 객체지향 관련 질문 (0) 2023.09.20