2026/04 10

위클리 페이퍼 - 14주차

Spring 기반 웹 애플리케이션에서 발생할 수 있는 4가지 주요 보안 공격 (CSRF, XSS, 세션 고정, JWT 탈취)에 대해 설명하고, 각각에 대한 Spring Security 또는 일반적인 대응 전략을 설명하세요.1. CSRFCSRF란?CSRF는 사용자가 자신도 모르게 악성 사이트에서 원하지 않는 요청을 보내도록 속여 공격하는 방식입니다.브라우저는 같은 사이트에 대해 자동으로 쿠키(세션)를 포함시켜 요청을 보낸다는 특성을 이용해 공격합니다.예를 들어, 사용자가 이미 로그인한 상태에서 다른 악성 웹페이지를 방문했을 때, 악성 사이트가 사용자의 브라우저를 통해 "계좌 이체"와 같은 중요한 요청을 자동으로 보내게 합니다. 대응 전략Spring Security에서는 기본적으로 CSRF 보호 기능을 제공..

위클리 페이퍼 - 13주차

세션 기반 인증과 토큰 기반 인증의 차이점과 각각의 보안 고려사항에 대해 설명하세요.세션이란?클라이언트가 서버에 접속한 순간부터 접속을 끊을 때까지의 연결 상태 -> 서버가 기억하는 "사용자의 임시 신분증"세션의 특징서버 중심 관리 : 사용자의 로그인 여부, 권한, 장바구니 정보 등을 서버가 직접 보관클라이언트는 세션 ID만 보관 : 브라우저는 세션 자체가 아니라, 세션을 가리키는 고유 ID를 쿠키에 저장만료 가능 : 일정 시간 동안 요청이 없으면 세션을 종료하거나 최대 사용 시간을 설정할 수 있음보안 의존성 : 세션 ID가 유출되면 사용자 정보가 탈취될 수 있음. 따라서 세션 ID를 안전하게 보호하는 것이 핵심항목설명저장 위치서버 (메모리, DB, Redis 등)클라이언트 역할세션 ID를 쿠키에 저장하..

위클리 페이퍼 - 12주차

AWS RDS를 활용하는 주요 이점과 EC2에 직접 데이터베이스를 설치하여 운영하는 것과 비교했을 때의 차별점에 대해 설명해주세요. 그리고 RDS를 사용하는 것이 적합하지 않을 수 있는 상황도 함께 언급해주세요.AWS RDS(Relational Database Service) - AWS에서 제공하는 완전 관리형 관계형 데이터베이스 서비스(데이터베이스 인프라의 설정, 운영, 확장을 AWS가 대신 처리) 지원 데이터베이스 엔진MySQLMariaDBPostgreSQLOracle DatabaseMicrosoft SQL Server 등AWS EC2 (Elastic Compute Cloud) - AWS 클라우드에서 제공하는 가상 서버(인스턴스) 서비스 - 다양한 운영체제와 애플리케이션을 실행할 수 있는 확장 가능한..

위클리 페이퍼 - 11주차

1. 컨테이너 기술과 Docker를 명확히 구분하여 설명하세요. 컨테이너 기술이 Docker 이전에도 존재했던 개념임을 언급하고, Docker가 컨테이너 기술을 구현한 하나의 도구라는 관점에서 설명해주세요. 또한, Docker 외에 컨테이너 기술을 구현한 다른 도구의 예시를 들어보세요.컨테이너 기술컨테이너(Container)는 개념적 프레임워크로, 애플리케이션과 그 실행 환경(라이브러리, 설정 파일 등)을 함께 패키징하여, 격리된 공간에서 실행할 수 있도록 해주는 가상화 기술이다. 이는 호스트 운영체제의 커널을 공유하며, 독립된 프로세스로 실행된다.이 기술은 Docker가 등장하기 이전부터 존재했으며, 핵심 기반 기술로는 Linux의 chroot, cgroups, namespaces 등이 있다. 컨테이너..

위클리 페이퍼 - 10주차

1. 애플리케이션의 각 계층에서 수행되는 입력값 검증의 범위와 책임을 어떻게 나눌 것인지에 대해 설명해주세요. 특히 중복 검증을 피하면서도 안정성을 확보하는 방안과, 이와 관련된 트레이드오프에 대해 설명해주세요.- Controller주로 컨트롤러에서는 도메인의 형식 및 필수값 검증을 담당데이터 타입, 필수 필드 존재 여부 검증DTO에서 Bean Validation (ex: @NotNull, @NotBlank, @Size 등)- Service주로 비즈니스 로직과 연관된 도메인 규칙 검증을 담당비즈니스 규칙 위반 여부 검증(ex: 중복 가입 여부, 주문 가능 여부 등)- Repository주로 데이터 무결성 검증 및 제약조건 관리를 담당데이터베이스 제약조건(Unique 제약, FK제약 등)실제 DB 제약조건..

위클리 페이퍼 - 9주차

JPA에서 발생하는 N+1 문제의 발생 원인과 해결 방안에 대해 설명하세요.1. N+1 문제란?1번의 쿼리로 1차 데이터를 가져온 후, 연관된 N개의 데이터를 각각 조회하면서 총 N+1번의 쿼리가 발생하는 현상을 말한다.일상적인 예를 들어보면,학교에서 5개의 반 학생 명단을 알고 싶다고 가정했을 떄,먼저, 전체 5개의 반 리스트를 가져온다.(1번 쿼리)각 반마다 일일이 가서 "이 반의 학생은 누구누구인가요?" 하고 다시 물어본다. (▶ 반마다 1번씩, 그래서 총 5번 쿼리)그럼 결국, 반 목록 1번 + 반별 학생 명단 5번 = 총 6번을 물어본 셈이 되며 이게 바로 N + 1 문제이다. (N=5 일 때 → 1 + 5 = 6번)2. 이게 왜 문제가 될까?JPA에서는 일대다, 다대다 매핑에서 “필요할 때까지..

위클리 페이퍼 - 8주차

SQL에서 DDL과 DML의 차이점을 설명하고, 각각의 대표적인 명령어들의 용도를 설명하세요.1. DDL데이터베이스의 구조(스키마)를 정의하거나 변경할 때 사용하는 언어. 테이블을 생성하거나 수정할 때 사용된다.기본적으로 DDL 명령어는 실행되자마자 DB에 반영되며, 트랜잭션처럼 ROLLBACK으로 되돌릴 수 없는 경우가 많지만, PostgreSQL에서는 DDL도 트랜잭션 처리 대상이기 때문에 ROLLBACK으로 전부 되돌릴 수 있다.대표적인 DDL 명령어CREATE : 테이블, 데이터베이스, 인덱스 등을 새로 생성ALTER : 기존 테이블의 구조를 수정 (열 추가/삭제/이름 변경 등)DROP : 테이블이나 데이터베이스 삭제TRUNCATE : 테이블의 모든 데이터를 빠르게 삭제 (구조는 유지)2. DML..

위클리 페이퍼 - 7주차

1.웹 API의 발전 과정에서 SOAP에서 REST로의 전환이 일어난 이유와 그 장단점에 대해 설명하세요.SOAP에서 REST로 전환된 주요 이유1. 복잡성과 오버헤드 문제SOAP의 문제:xml Seoul REST의 해결:httpGET /weather/seoul/temperature2. 웹 브라우저와의 호환성SOAP의 한계:브라우저에서 직접 테스트하기 어려움JavaScript로 SOAP 메시지 생성/파싱 복잡추가 라이브러리나 프록시 필요REST의 장점:브라우저 주소창에서 직접 테스트 가능AJAX로 쉽게 호출 가능JSON 사용으로 JavaScript와 자연스러운 통합3. 모바일과 경량 클라이언트의 등장모바일 환경의 요구사항:제한된 대역폭과 배터리단순한 데이터 형식 선호빠른 파..

위클리 페이퍼 - 6주차

Spring에서 AOP(Aspect Oriented Programming)가 필요한 이유와 이를 활용한 실제 애플리케이션 개발 사례에 대해 설명하세요.모든 비즈니스 메소드의 실행 시간을 측정해야 한다고 가정해보자. 비즈니스 로직을 개발할 때 예시 코드와 같이 핵심 기능과 부가 기능이 섞여 있으면 다음과 같은 문제가 발생한다.시간 측정 코드가 모든 비즈니스 메소드에 중복해서 들어간다.핵심 비즈니스 로직과 부가 기능이 섞여 있어 코드의 가독성이 떨어진다.시간 측정 로직을 변경해야 할 경우, 모든 메소드를 수정해야 한다.예시)public class UserService { public void createUser(User user) { // 시간 측정 시작 long start =..

위클리 페이퍼 - 5주차

웹 서버(Web Server)와 WAS(Web Application Server)의 차이를 설명하고, Spring Boot의 내장 톰캣이 이 둘 중 어디에 해당하는지 설명해주세요. - 웹 서버(Web Server)와 WAS(Web Application Server, 웹 애플리케이션 서버)는 웹 서비스를 제공하는 서버라는 점에서는 유사하지만, 역할과 처리 범위, 기능 측면에서 분명한 차이점이 있다. ▶ 웹 서버 (Web Server) - 정의 클라이언트(브라우저)의 HTTP 요청을 처리하고 정적 자원(HTML, CSS, JS, 이미지 등)을 제공하는 서버 - 주요 역할HTTP 프로토콜 처리정적 리소스(HTML, CSS, JS, 이미지 등) 제공간단한 요청 라우팅 - 특징정적 콘텐츠 제공에 최적화애플리케..