2024/05/25 4

자바와 데이터베이스3

Connection 객체를 제대로 관리하기 위해 주로 사용하는 방법들은 무엇이 있나요? 이를 통해 어떤 이점들이 있나요?Connection 객체를 제대로 관리하기 위해 주로 사용하는 방법들과 그 이점들에 대해 상세히 설명드리겠습니다.Connection 객체 관리 방법Connection Pooling (연결 풀링)설명: Connection Pooling은 애플리케이션이 데이터베이스와의 연결을 효율적으로 관리하기 위해 일정 수의 커넥션을 미리 생성해 놓고, 필요할 때 재사용하는 기법입니다.이점:성능 향상: 매번 새로운 연결을 생성하고 해제하는 오버헤드를 줄여 성능을 크게 향상시킵니다.리소스 관리: 제한된 커넥션을 재사용함으로써 리소스를 효율적으로 관리하고, 데이터베이스 서버의 부하를 줄입니다.응답 시간 단축..

[프래피티] 2024.05.25

자바와 데이터베이스2

SQL 인젝션 공격이 무엇인지 설명해주세요.SQL 인젝션(SQL Injection)은 웹 애플리케이션의 보안 취약점을 이용하여 악의적인 사용자가 애플리케이션의 데이터베이스에 비정상적인 SQL 쿼리를 삽입하는 공격 기법입니다. 이를 통해 공격자는 데이터베이스에 저장된 민감한 정보에 접근하거나 데이터베이스를 조작할 수 있습니다.SQL 인젝션의 원리SQL 인젝션 공격은 주로 사용자 입력을 제대로 필터링하거나 이스케이프하지 않는 웹 애플리케이션에서 발생합니다. 예를 들어, 사용자의 입력값을 직접 SQL 쿼리에 삽입하는 경우, 악의적인 사용자는 입력값에 SQL 코드를 포함시켜 데이터베이스 쿼리를 변조할 수 있습니다.예시간단한 로그인 폼을 예로 들어 보겠습니다. 다음과 같은 SQL 쿼리가 사용자 입력을 처리한다고 ..

[프래피티] 2024.05.25

자바와 데이터베이스

Statement와 PreparedStatement의 차이점을 설명하고, 각각의 사용 시나리오를 예시를 들어 설명해보세요.Statement와 PreparedStatement는 모두 Java에서 데이터베이스와 상호 작용하기 위해 사용되는 인터페이스입니다. 두 인터페이스는 SQL 쿼리를 실행하는 기능을 제공하지만, 사용 목적과 성능, 보안 측면에서 차이가 있습니다. 이 두 가지의 차이점을 자세히 설명하고, 각각의 사용 시나리오를 예시로 들어보겠습니다.StatementStatement는 SQL 쿼리를 실행할 때 사용됩니다. 이 인터페이스는 SQL 쿼리를 문자열로 직접 작성하여 데이터베이스에 전송합니다. 다음과 같은 특징이 있습니다:동적 쿼리: Statement는 SQL 쿼리를 문자열로 직접 작성하고 실행하므로..

[프래피티] 2024.05.25

자바의 시간 API

자바의 현대적인 날짜와 시간 API에 대해 설명하고, 이를 사용하면 좋은 경우는 어떤 상황인지 말씀해보세요.자바의 현대적인 날짜와 시간 API는 Java 8에서 도입된 java.time 패키지를 중심으로 합니다. 이 패키지는 Joda-Time 라이브러리를 모델로 하여 설계되었으며, 기존의 java.util.Date 및 java.util.Calendar 클래스의 복잡성과 단점을 보완하기 위해 만들어졌습니다.주요 클래스와 인터페이스LocalDate:날짜를 표현하는 클래스 (연도, 월, 일).시간 정보는 포함하지 않습니다.예: LocalDate.of(2024, 5, 25)LocalTime:시간을 표현하는 클래스 (시, 분, 초, 나노초).날짜 정보는 포함하지 않습니다.예: LocalTime.of(14, 30)..

[프래피티] 2024.05.25