> 2025.02.24일자 위클리 페이퍼 > ### 객체지향 프로그래밍에서 단일 책임 원칙(SRP)과 개방 폐쇄 원칙(OCP)에 대해 설명하고, 각각의 원칙을 적용한 코드 예시를 들어주세요. 단일 책임 원칙(SRP) 클래스나 모듈은 단 하나의 책임(기능)만 가져
HashSet의 내부 동작 방식과 중복 제거 매커니즘을 설명하고, HashSet이 효율적인 중복 체크를 할 수 있는 이유를 설명해주세요종복되지 않는 요소를 저장한다.순서를 보장하지 않는 경우가 많다.이러한 HashSet은 Set의 특징을 그대로 상속받아 사용된다.해시를
O(n)과 O(log n)의 성능 차이를 실생활 예시를 들어 설명하고, 데이터의 크기가 1백만 개일 때 각각 대략 몇 번의 연산이 필요한지 비교해주세요.전제 : 강당에 학생들을 앉고싶은 자리에 무작위로 착석을 시켰다.이때 내가 찾는 학생을 찾을 확률이다. 첫자리부터 시
Spring Framework가 탄생하게 된 배경과 이를 통해 해결하고자 했던 문제점에 대해 설명하세요.Spring Framework는 2002년 로드 존슨(Rod Johnson)이 발표한 "Expert One-on-One J2EE Design and Developme
프레임워크와 라이브러리의 차이점을 제어 흐름의 주체와 사용 방식을 중심으로 설명하고, Spring Framework와 일반 Java 라이브러리를 예시로 들어 설명하세요.제어의 흐름을 프레임워크가 주도하며, 개발자는 프레임워크가 제공하는 구조에 맞춰 코드를 작성합니다.프
웹 서버(Web Server)와 WAS(Web Application Server)의 차이를 설명하고, Spring Boot의 내장 톰캣이 이 둘 중 어디에 해당하는지 설명해주세요.웹 서버는 HTML, CSS, JavaScript, 이미지 파일 등 정적 리소스를 클라이언
Spring Boot에서 사용되는 다양한 Bean 등록 방법들에 대해 설명하고, 각각의 장단점을 비교하세요.Bean 등록 방법 종류1\. Component Scan 방식 (@Component, @Service, @Repository, @Controller 등)2\. @
Spring에서 AOP(Aspect Oriented Programming)가 필요한 이유와 이를 활용한 실제 애플리케이션 개발 사례에 대해 설명하세요.AOP는 Aspect Oriented Progrmming의 약자로 관점 지향 프로그래밍이라고 불린다.여기서 관점이란

Spring MVC에서 클라이언트의 요청 처리 흐름을 @Controller와 @RestController의 차이점을 중심으로 각각의 처리 과정과 특징을 포함하여 설명하세오.클라이언트의 모든 요청을 가장 먼저 받습니다.요청 URL을 분석하여, 핸들러 매핑(Handler
웹 API의 발전 과정에서 SOAP에서 REST로의 전환이 일어난 이유와 그 장단점에 대해 설명하세요.SOAP(Simple Object Access Protocol) 은 XML 기반의 엄격한 프로토콜이며, 서비스 지향 아키텍처(SOA)에서 널리 사용됐습니다. 그러나 복

Spring Boot에서 @RestController로 들어온 HTTP 요청이 처리되어 응답으로 변환되는 전체 과정을 설명하세요. 특히 HTTP 메시지 컨버터가 동작하는 시점과 역할을 포함해서 설명하세요.DispatcherServlet (요청 수신)HandlerMap

역정규화가 필요한 상황과 적용 시 고려해야 할 사항, 그리고 역정규화를 적용할 때의 장단점을 설명해주세요.정규화 과정을 통해 데이터 중복, 무결성 위배 같은 문제들을 해결 하였다. 하지만 정규화로 설계된 데이터베이스가 최선은 아니다. 이유는 데이터 중복, 무결성을 잡는

애플리케이션의 각 계층에서 수행되는 입력값 검증의 범위와 책임을 어떻게 나눌 것인지에 대해 설명해주세요. 특히 중복 검증을 피하면서도 안정성을 확보하는 방안과, 이와 관련된 트레이드오프에 대해 설명해주세요.주로 컨트롤러에서는 도메인의 형식 및 필수값 검증을 담당함데이터

테스트에서 사용되는 Mockito의 Mock, Stub, Spy 개념을 각각 설명하고, 어떤 상황에서 어떤 방식을 선택해야 하는지 구체적인 예시와 함께 설명하세요.개념 : 메서드 호출 여부 및 특정 행위를 확인하기 위해 사용하는 가짜 객체특징 : \- 실제 로직을

세션 기반 인증과 토큰 기반 인증의 차이점과 각각의 보안 고려사항에 대해 설명하세요.세션 기반 인증은 서버가 클라이언트의 상태를 유지하며 사용자 정보를 서버 측 세션에 저장하고, 클라이언트는 세션 ID만 보관하는 방식입니다.서버 측에서 세션 ID와 사용자 정보를 관리함
OAuth 2.0의 주요 컴포넌트와 Authorization Code Grant 흐름을 설명하세요.보호된 자원에 대한 접근 권한을 가지고 있는 사용자로, 일반적으로 최종 사용자를 의미합니다.사용자의 동의를 얻어 보호된 자원에 접근을 요청하는 애플리케이션입니다. 일반적으
멀티스레드 환경에서 발생하는 대표적인 문제 중 하나인 경쟁 상태(Race Condition)에 대해 설명하고, 이를 해결하기 위한 다양한 전략을 설명해보세요.경쟁 상태는 두 개 이상의 스레드가 같은 자원에 동시 접근할 때 실행 순서에 따라 결과가 달라지는 상황을 말한다
Spring Cache에서 @Cacheable, @CachePut, @CacheEvict의 차이점과 각각을 어떤 상황에서 사용하는 것이 적절한지 설명해주세요.Cache란 자주 사용할 것 같은 데이터를 메모리에 적재 시켜 필요시에 다시 데이터베이스에 접근하는 것이 아닌