Q1: JWT 기반 인증 방식의 장점과 구현 방법에 대해 설명해 주세요.

A1:
"JWT(JSON Web Token)는 상태 정보를 서버에 저장하지 않는 stateless 인증 방식으로, 확장성과 성능 면에서 유리합니다. 토큰은 헤더, 페이로드, 서명으로 구성되며, 클라이언트에게 발급된 토큰을 요청 시 함께 전송하여 인증을 수행합니다. Spring Security와 함께 JWT 필터를 구현해 토큰의 유효성을 검사하고, 인증 정보를 설정하는 방식으로 구현할 수 있습니다."

 

 

Q2: Kotlin의 주요 특징과 Spring Boot와의 통합에서의 이점에 대해 설명해 주세요.

A2:
"Kotlin은 간결한 문법, Null 안전성, 데이터 클래스, 확장 함수, 람다 및 고차 함수 등 다양한 기능을 제공하여 코드의 가독성과 생산성을 크게 향상시킵니다. Spring Boot와 통합 시, 코루틴을 활용한 비동기 처리와 DSL을 통한 설정 간소화 등으로 개발 효율성을 높일 수 있습니다."

 

 

Q3: Java와 Kotlin 간의 상호 운용성에서 발생할 수 있는 문제점과 해결 방법은 무엇인가요?

A3:
"Java와 Kotlin은 JVM 기반 언어이지만, Null 처리, 제네릭, 애노테이션 등에서 차이가 발생할 수 있습니다. Kotlin에서는 Java 라이브러리를 사용할 때 Non-null과 Nullable을 명확히 구분해야 하며, 필요한 경우 @NotNull, @Nullable 애노테이션을 활용하여 상호 운용성을 보완합니다. 또한, 자동 변환 도구를 활용해 Java 코드를 Kotlin으로 마이그레이션할 때 안전하게 변환할 수 있습니다."

 

 

 

Q4: 분산 트랜잭션 문제를 해결하기 위한 SAGA 패턴에 대해 설명해 주세요.

A4:
"SAGA 패턴은 분산 환경에서 하나의 트랜잭션을 여러 개의 로컬 트랜잭션으로 나누어 실행하고, 각 단계에서 문제가 발생할 경우 보상 트랜잭션을 실행해 데이터 일관성을 유지하는 방법입니다. 이를 통해 전통적인 분산 트랜잭션의 단점을 보완할 수 있습니다."

 

 

 

Q5: CI/CD 파이프라인 구축 시 고려해야 할 사항과 이를 Spring Boot 프로젝트에 적용하는 방법은 무엇인가요?

A5:
"CI/CD 파이프라인은 소스 코드 변경 시 자동으로 빌드, 테스트, 배포가 진행되도록 하는 프로세스입니다. Jenkins, GitLab CI, GitHub Actions 등 도구를 활용하여, 코드 커밋마다 자동화된 테스트와 빌드, 그리고 스테이징/프로덕션 환경에 배포하는 과정을 구성합니다. 이를 통해 빠른 피드백과 안정적인 배포가 가능해집니다."

 

 

각각에 대해서 자세하게 알아야 할 것 같다. 프로젝트에 하나씩 적용해 나가며 학습해보자!

'기술면접준비' 카테고리의 다른 글

Spring Boot 관련 5가지 예상질문 및 답변  (0) 2025.04.16
WAS와 WS  (1) 2023.12.20
기술면접준비(1)  (0) 2023.12.19

+ Recent posts