Spring(41)
-
Redirect와 Forward
1. 요청과 응답의 방식개념누가 수행?의미 POST, GET 등 클라이언트(브라우저)서버로 어떻게 요청할까, 요청의 종류 redirect, forward서버(서블릿, 컨트롤러)클라이언트한테 어떻게 응답할까, 응답 후 화면 이동 방식 2. Redirect vs Forward 리다이렉트포워드요청 흐름요청 2번, 클라이언트한테 새 요청 시킴요청 1번, 서버 안에서 내부 이동데이터 유지안됨 (새 요청이니까)됨 (request 데이터 유지)URL 변화바뀜안 바뀜속도상대적으로 느림빠름주로 쓰는 상황POST 처리 후 새로고침 문제 방지데이터 넘기면서 화면 전환[Redirect] 요청이 두 번 일어남 (1) 클라이언트 -> 서버 (요청: /login)(2) 서버 -> 클라이언트 (응답: 상태코드 "302 redirec..
2025.05.30 -
3. 커넥션풀과 데이터소스
[목차] 1. JDBC Driver를 통한 Connection 생성 과정 2. Connection 획득 방식 비교1) DriverManager 방식 2) 커넥션 풀 방식 3) 두 방식 비교 3. 커넥션 풀 사용 과정: 풀 초기화 → 커넥션 획득 → 반납 1) 커넥션 풀 초기화2) 커넥션 풀에서 커넥션 획득3) 커넥션 사용 후 커넥션 풀에 반환 4. 커넥션 풀 오픈소스: hikariCP 5. DataSource1) 커넥션을 획득하는 다양한 방법 2) DataSource 인터페이스 3) DataSource 예제 6. DataSource 활용하여 기존 애플리케이션 수정 1. JDBC Driver를 통한 Connection 생성 과정 애플리케이션 서버와 데이터베이스가 통신하기 위해서는 JDBC의 Connec..
2025.05.19 -
2. JDBC의 이해
[목차]1. JDBC 등장 이유1) 애플리케이션 서버와 DB 통신 흐름2) JDBC 표준 인터페이스 사용 2. JDBC 개발 - DB연결1) DB 연결: Connection 2) DriverManager의 커넥션 요청 흐름 3. JDBC 개발 - SQL 전달하기, 결과 받기 1) SQL 전달: Statement2) SQL 결과 받기: ResultSet 4. JDBC 개발 - 리소스 정리 1. JDBC 등장 이유1) 애플리케이션과 DB의 통신 흐름 애플리케이션과 DB의 통신 흐름 1. 커넥션 연결: 주로 TCP/IP를 사용해 커넥션을 연결 → 2. SQL 전달: 애플리케이션 서버는 연결된 커넥션을 통해 DB가 이해할 수 있는 SQL을 DB에 전달한다.→ 3. 결과 응답: DB는 전달된 SQL을 수행하..
2025.05.19 -
1. 데이터 접근 기술의 종류
[목차]1. JDBC2. SQL Mapper: JdbcTemplate, MyBatis3. ORM 기술: JPA(Hibernate), Spring Data JPA, Querydsl 4. SQL Mapper vs ORM 기술1. JDBC 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 APIJDBC는 애플리케이션이 DB와 연결해서 SQL을 전달하고 결과를 받는 흐름을 담당한다.JDBC는 1997년에 출시될 정도로 오래된 기술이고, 사용하는 방법도 복잡하다.그래서 최근에는 JDBC를 직접 사용하기 보다는 JDBC를 편리하게 사용하는 다양한 기술을 사용한다. 대표적으로 SQL Mapper와 ORM 기술로 나눌 수 있다. 2. SQL MapperSQL Mapper는 SQL 응답 결과를 객체로 변환해주는 편리..
2025.05.19 -
9. 스프링 MVC와 Thymeleaf로 웹 페이지 만들기
1. Controller @Controller@RequestMapping("/basic/items")@RequiredArgsConstructorpublic class BasicItemController { private final ItemRepository itemRepository; /* 1. @RequiredArgsConstructor @RequiredArgsConstructor는 final이 붙은 멤버변수만 사용해서 생성자를 자동으로 만들어준다. + 생성자가 딱 1개만 있으면 스프링이 해당 생성자에 @Autowired로 의존관계를 주입해주기 때문에 생략 가능하다. => 따라서 @RequiredArgsConstructor 넣으면 아래 생성자..
2025.05.12 -
타임리프(Thymeleaf) 간단 정리
1. 타임리프 선언2. 타임리프 핵심핵심은 th:xxx 가 붙은 부분은 서버사이드에서 렌더링 되고, 기존 속성을 대체한다.HTML 파일을 브라우저에서 직접 열면 th: 속성은 무시되고 원래 HTML만 보여짐 → 순수 HTML처럼 보임서버를 통해 렌더링하면 th: 속성이 적용된 최종 결과가 보여짐JSP는 서버 렌더링 없이 브라우저에서 직접 열면 깨지지만, 타임리프는 안 깨짐이렇게 순수 HTML을 그대로 유지하면서 뷰 템플릿도 사용할 수 있는 타임리프의 특징을 네츄럴 템플릿이라 한다.3. 속성 변경 - th:xxx등록기존 HTML 속성을 동적으로 바꾸고 싶을 때 사용한다. th:href, th:onclick, th:src 등 대부분의 속성에 th:를 붙여서 사용 가능th:onclick 같이 JS 코드가 필요..
2025.05.09