일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 컴퓨터비전
- 중학1-1
- 정수와유리수
- 데이터입출력구현
- 자바 실습
- 코딩테스트
- 머신러닝
- JSP/Servlet
- 영어공부
- 텍스트마이닝
- 정보처리기사필기
- 운영체제
- 중학수학
- SQL
- 딥러닝
- html/css
- numpy/pandas
- 정보처리기사실기
- C++
- 파이썬
- 연습문제
- 자바
- 데이터베이스
- 혼공머신
- 데이터분석
- 파이썬라이브러리
- pandas
- CSS
- 컴퓨터구조
- CNN
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
[Spring반] 기말 시험 7 - Spring 이론 시험 및 문제 풀이 2 : 10~15번 본문
이어서 이론 시험 문제를 풀어보겠다.
문제 10번
JSP에서 스크립트를 사용하기보다는 가독성을 위해 Java 코드를 바로 사용하지 않고 HTML 태그(<>) 형태로 직관적인 코딩을 지원하는 라이브러리의 이름을 작성하시오.
JSP에서 스크립트를 사용하지 않고 HTML 태그 형태로 Java 코드를 직관적으로 사용할 수 있게 지원하는 대표적인 라이브러리가 있는데, 그 이름은 JSTL (JavaServer Pages Standard Tag Library)이다.
JSTL (JavaServer Pages Standard Tag Library)
- JSTL은 JSP에서 HTML 태그 형태로 자바 코드를 사용할 수 있게 도와주는 표준 태그 라이브러리다.
- 주요 기능:
- 조건문, 반복문 등을 지원하는 코어 태그 (<c:if>, <c:forEach> 등)
- 날짜와 숫자 형식 처리를 위한 포맷팅 태그
- 데이터베이스 연동을 위한 SQL 태그
- XML 처리를 위한 XML 태그
JSTL을 사용하면 코드 가독성이 향상되고, JSP 페이지에서 Java 코드를 최소화하여 유지보수하기 쉬운 구조를 만들 수 있다.
문제 11번
DataBase Connection 하기 위한 URL, Driver File Path, UserName, Password 및 HikariConfig, DataSource, SqlSessionFactoryBean 생성, Mapper InterfaceScan등을 할 수 있는 파일명을 작성하시오.
MyBatis와 HikariCP를 사용하여 데이터베이스 연결 설정을 포함한 구성 요소들을 설정할 수 있는 파일은 일반적으로 Spring 환경에서 Java Configuration 파일로 작성된다. 보통 이 파일의 이름은 DatabaseConfig.java 또는 MyBatisConfig.java와 같이 작성한다.
주요 설정 파일 이름 예시
DatabaseConfig.java 또는 MyBatisConfig.java:
- 데이터베이스 연결을 위한 URL, Driver, Username, Password, HikariCP 설정, DataSource 및 SqlSessionFactoryBean 생성, Mapper Interface 스캔 등을 설정하는 파일입니다.
예시 코드 (DatabaseConfig.java)
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;
@Configuration
@MapperScan(basePackages = "com.example.mapper") // Mapper 인터페이스 위치 지정
public class DatabaseConfig {
@Bean
public HikariConfig hikariConfig() {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");
config.setUsername("username");
config.setPassword("password");
config.setDriverClassName("com.mysql.cj.jdbc.Driver");
return config;
}
@Bean
public DataSource dataSource() {
return new HikariDataSource(hikariConfig());
}
@Bean
public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:mapper/*.xml"));
return sessionFactory.getObject();
}
}
설정 요소
- HikariConfig: 데이터베이스 연결 정보를 설정 (URL, 드라이버, 사용자 이름, 비밀번호 등).
- DataSource: HikariConfig를 기반으로 HikariDataSource 객체를 생성
- SqlSessionFactoryBean: MyBatis의 SqlSessionFactory를 생성하는 데 사용
- MapperScan: @MapperScan을 통해 Mapper 인터페이스가 위치한 패키지를 지정하여 MyBatis가 자동으로 Mapper를 찾고 주입할 수 있게 함
이 파일을 통해 MyBatis와 HikariCP를 사용한 데이터베이스 연결 설정을 관리할 수 있다.
문제 12번
Spring에서 Get방식 또는 Post방식으로 요청과 함께 데이터를 Server로 전송할 때 다수의 데이터가 아닌 한 개의 데이터만 받는다고 한다면 이 키워드를 작성해서 매개변수를 받는다. 이 키워드를 작성하시오.
Spring에서 GET 또는 POST 방식으로 한 개의 데이터만을 받을 때 사용하는 키워드는 @RequestParam이다.
@RequestParam
- 설명: @RequestParam은 요청 파라미터에서 특정 값을 받아서 매개변수로 전달할 때 사용한다.
- 용법: 주로 GET 요청의 쿼리 파라미터나 POST 요청의 폼 데이터를 받을 때 사용된다.
예시 코드
@GetMapping("/example")
public String example(@RequestParam("name") String name) {
// "name" 파라미터로 전달된 값을 매개변수로 받아 처리
return "Hello, " + name;
}
위 코드에서 @RequestParam("name")은 클라이언트가 보낸 name이라는 파라미터 값을 String name 변수에 매핑한다.
문제 13번
동기와 비동기 방식의 차이점에 대해서 서술하시오.
동기(Synchronous) 방식과 비동기(Asynchronous) 방식은 작업을 처리하는 방식에서의 차이를 나타내며, 각각 다음과 같은 특징이 있다.
1. 동기(Synchronous) 방식
- 작업 순서: 요청된 작업을 순차적으로 처리한다. 이전 작업이 완료되어야만 다음 작업을 시작할 수 있다.
- 작업 대기: 특정 작업을 수행하는 동안 다른 작업은 대기하게 되며, 작업 완료 후에야 응답을 받을 수 있다.
- 사용 사례: 간단한 데이터 처리나, 작업 순서가 중요한 경우에 적합하다.
- 예시: ATM에서 현금을 인출할 때, 사용자는 각 단계를 순서대로 진행해야 한다.
장점
- 순차적인 작업 처리가 필요할 때 직관적이고, 예측하기 쉽다.
단점
- 대기 시간이 발생하여 처리 효율성이 낮아질 수 있으며, 사용자의 응답 대기 시간이 길어질 수 있다.
2. 비동기(Asynchronous) 방식
- 작업 순서: 작업이 병렬적으로 처리되며, 이전 작업이 완료되지 않아도 다음 작업을 시작할 수 있다.
- 작업 대기 없음: 특정 작업이 완료되기를 기다릴 필요가 없으므로, 즉각적으로 다른 작업을 진행할 수 있다.
- 사용 사례: 대기 시간이 긴 네트워크 요청, 파일 읽기/쓰기 작업 등에서 효율적이다.
- 예시: 웹 페이지에서 버튼을 클릭하면 페이지 전체가 새로고침되지 않고, 특정 부분만 업데이트되는 AJAX 요청이다.
장점
- 여러 작업을 병렬로 수행할 수 있어 처리 속도가 빠르고, 시스템 자원을 효율적으로 사용할 수 있다.
단점
- 작업 순서가 복잡해질 수 있으며, 상태 관리와 오류 처리가 어려울 수 있다.
문제 14번
Spring에서 비동기 방식으로 메소드가 작성하기 위해서 메서드 리턴타입 앞에 있는 키워드를 작성하시오.
Spring에서 비동기 방식으로 메서드를 작성하기 위해 메서드 리턴 타입 앞에 사용하는 키워드는 @Async이다.
@Async
- 설명: @Async는 Spring에서 비동기 처리를 위한 어노테이션으로, 이 어노테이션이 붙은 메서드는 별도의 스레드에서 실행된다.
- 리턴 타입: 비동기 작업의 결과를 반환하기 위해 주로 Future<T>, CompletableFuture<T>, 또는 void 타입을 사용한다.
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.concurrent.CompletableFuture;
@Service
public class AsyncService {
@Async
public CompletableFuture<String> asyncMethod() {
// 비동기 작업 수행
return CompletableFuture.completedFuture("비동기 작업 완료");
}
}
@Async를 사용하려면 @EnableAsync 어노테이션을 추가하여 비동기 처리를 활성화해야 한다.
시험을 마치고
여기까지 이론 문제 14문제를 모두 풀었다. 글만 있으면 심심하니 중간중간에 이미지도 몇 개 넣어보았다. 다음 달에나 스프링을 공부할 텐데 아직은 무슨 말인지 하나도 모르겠다. 그냥 생성형 AI에게 물어보면서 풀었을 뿐이다.
그래도 이렇게라고 읽고 정리하면서 공부가 많이 되는 걸 느꼈다. 이제 실습 문제를 풀어봐야겠다. 1시간밖에 남지 않았지만 선생님께 시간을 조금만 더 주시라고 하면 될 것 같다.
'개발 포트폴리오 > 수료증 및 시험' 카테고리의 다른 글
HTML/ CSS 이수증 (1) | 2024.11.12 |
---|---|
[Spring반] 기말 시험 8 - Spring 실기 시험 및 문제 풀이 (1) | 2024.10.31 |
[Spring반] 기말 시험 6 - Spring 이론 시험 및 문제 풀이 1 : 1~9번 문제 (4) | 2024.10.31 |
SQL로 데이터 다루기 심화 이수증 (0) | 2024.10.31 |
[Spring반] 기말 시험 5 - 언어지능 시험 및 문제 풀이 (0) | 2024.10.31 |