TCP/IP 4계층 모델과 OSI 7계층 모델에 대해 각각 설명하고, 두 모델을 비교해보세요. OSI 7계층 모델ISO(국제표준화기구)에서 만든 개념적인 네트워크 표준 모델 통신 과정을 아주 세밀하게 7단계로 나누어 설명 계층명칭데이터 단위주요 역할 및 특징대표 프로토콜L7응용 (Application)Data사용자 인터페이스, 네트워크 서비스 제공HTTP, FTP, SMTPL6표현 (Presentation)Data데이터 형식 변환, 암호화, 압축SSL/TLS, JPEG, MPEGL5세션 (Session)Data통신 세션 유지 및 관리SSH, RPCL4전송 (Transport)Segment종단 간 신뢰성 있는 전송, 흐름 제어TCP, UDPL3네트워크 (Network)Packet목적지 주소(IP) 경로 ..
Spring Cache에서 @Cacheable, @CachePut, @CacheEvict의 차이점과 각각을 어떤 상황에서 사용하는 것이 적절한지 설명해주세요. 캐시(Cache)는 한 번 처리한 데이터를 임시 저장소(메모리)에 저장해두었다가, 똑같은 요청이 오면 복잡한 과정을 거치지 않고 즉시 내어주는 기술. Spring Cache는 선언적 캐시 관리를 위한 여러 애노테이션을 제공. 각 애노테이션은 서로 다른 캐시 동작을 담당하며, 적절한 상황에서 사용해야 함. @Cacheable : 가장 많이 쓰이는 데이터 조회용 어노테이션동작 방식캐시 확인: 메서드를 호출하기 전, 지정된 캐시 저장소에 동일한 Key값이 있는지 확인Cache Hit: 값이 있다면 메서드를 실행하지 않고 저장된 값을 즉시 반환Cach..
멀티스레드 환경에서 발생하는 대표적인 문제 중 하나인 경쟁 상태(Race Condition)에 대해 설명하고, 이를 해결하기 위한 다양한 전략을 설명해보세요. 경쟁 상태(Race Condition)란 무엇인가?둘 이상의 프로세스나 스레드가 공유 자원에 동시에 접근하여 조작할 때, 그 실행 결과가 접근이 발생한 순서에 따라 달라지는 현상단순히 속도가 느려지는 문제가 아니라, 계산 결과가 틀리거나 프로그램이 비정상적으로 동작할 수 있는 논리적 오류 왜 발생하는가?아래와 같은 발생 조건이 존재함 이 중 하나라도 해당하지 않으면 경쟁 상태는 일어나지 않는다.공유 자원의 존재: 여러 스레드가 동시에 접근 가능한 메모리, 변수, 파일 등이 존재해야 함.동시성(Concurrency): 둘 이상의 스레드가 해당 자원..
Spring 기반 웹 애플리케이션에서 발생할 수 있는 4가지 주요 보안 공격 (CSRF, XSS, 세션 고정, JWT 탈취)에 대해 설명하고, 각각에 대한 Spring Security 또는 일반적인 대응 전략을 설명하세요. 1. CSRF (Cross-Site Request Forgery)브라우저가 쿠키를 자동으로 전송한다는 점을 악용해서 사용자가 자신의 의지와 무관하게 공격자가 의도한 행위(수정, 삭제 등)를 특정 웹사이트에 요청하게 만드는 공격 대응 전략- Referer 체크요청이 신뢰할 수 있는 도메인에서 온 것인지 서버 측에서 검증- SameSite 쿠키키 설정에 SameSite=Lax 또는 Strict를 부여하여 타 사이트에서의 쿠키 전송을 제한- CSRF Token서버가 임의의 토큰을 발급하..
