- [ 공부/Spring ][Spring] 스프링 DB 1편 2) 커넥션 풀과 데이터소스 이해2023-11-12 09:21:59스프링 DB 1편 데이터 접근 핵심 원리 Session 2 커넥션 풀과 데이터소스 이해 1. 커넥션 풀 이해 1) 데이터베이스 커넥션 획득 과정 1. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회 2. DB 드라이버는 DB와 TCP/IP 커넥션을 연결, 이 과정에서 3-way-handshake 같은 TCP/IP 연결을 위한 네트워크 동작 발생 3. DB 드라이버는 커넥션이 연결되면 ID, PW와 기타 부가 정보를 DB에 전달 4. DB는 ID, PW로 내부 인증을 완료하고 내부에 DB 세션 생성 5. DB는 커넥션 생성이 완료되었다고 응답을 보냄 6. DB 드라이버는 커넥션 객체를 생성해 클라이언트에 반환 ▶ 커넥션을 획득하는 과정이 복잡하고 시간이 많이 소모, DB는 물론이고 애플리케이션 서버..
- [ 공부/Spring ][Spring] 스프링 DB 1편 1) JDBC 이해2023-11-11 09:09:51스프링 DB 1편 데이터 접근 핵심 원리 Session 1 JDBC 이해 1. 프로젝트 생성 1) 프로젝트 생성 https://start.spring.io/ 스프링 부트 3.x 버전부턴 자바 17 이상을 사용 2) 프로젝트 설정 build.gradle에 추가 //테스트에서 lombok 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' 2. H2 데이터베이스 설정 1) H2 데이터 베이스 설치 https://www.h2database.com/html/main.html 스프링 부트 버전에 맞춰서 다운로드 3. JDBC 이해 1) 애플리케이션 서버와 DB 애플리케이션을 개발할 때 중요한 ..
- [ 공부/Spring ][Spring] 스프링 MVC 1편 7) 스프링 MVC 웹 페이지 만들기(2)2023-11-10 09:22:15스프링 MVC 1편 백엔드 웹 개발 핵심 기술 Session 7 스프링 MVC 웹 페이지 만들기 7. 상품 등록 폼 1) 속성 변경 th:action th:action 상품 등록 폼의 URL과 실제 상품 등록 처리하는 URL을 똑같이 맞추고 HTTP 메서드로 두 기능 구분, 하나의 URL로 등록 폼과 등록 처리를 깔끔하게 처리 가능 상품 등록 폼 Get - /basic/items/add 상품 등록 처리 POST - /basic/items/add 8. 상품 등록 처리 - @ModelAttribute 1) @ModelAttribute @ModelAttribute 이용해 한번에 처리 @PostMapping("/add") public String addItemV2(@ModelAttribute("item") It..
- [ 기록/프로그래머스 ][프로그래머스 / 자바] 접미사인지 확인하기2023-11-09 16:39:26문제 어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다. 문자열 my_string과 is_suffix가 주어질 때, is_suffix가 my_string의 접미사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요. 풀이 class Solution { public int solution(String my_string, String is_suffix) { int answer = 0; for(int i = 0; i < my_string.length(); i++){ if(my_string.substring(i).equals(is_..
- [ 공부/Spring ][Spring] 스프링 MVC 1편 7) 스프링 MVC 웹 페이지 만들기(1)2023-11-09 09:31:54스프링 MVC 1편 백엔드 웹 개발 핵심 기술 Session 7 스프링 MVC 웹 페이지 만들기 1. 프로젝트 생성 1) 프로젝트 생성 https://start.spring.io/ 스프링 부트 3.x 버전부턴 자바 17 이상을 사용 2. 요구사항 분석 1) 상품 도메인 상품 ID, 상품명, 가격, 수량 2) 상품 관리 기능 상품 목록, 상품 상세, 상품 등록, 상품 수정 3) 서비스 제공 흐름 디자이너 : 요구사항에 맞도록 디자인하고, 디자인 결과물을 웹 퍼블리셔에게 넘김 웹 퍼블리셔 : 디자이너에게 받은 디자인을 기반으로 HTML, CSS를 만들어 개발자에게 제공 백엔드 개발자 : 디자이너, 웹 퍼블리셔를 통해 HTML 화면이 나오기 전까지 시스템을 설계, 핵심 비즈니스 모델 개발하다가 HTML이 나오..
- [ 공부/Spring ][Spring] 스프링 MVC 1편 6) 스프링 MVC 기본 기능(2)2023-11-08 09:43:37스프링 MVC 1편 백엔드 웹 개발 핵심 기술 Session 6 스프링 MVC 기본 기능 8. HTTP 요청 파라미터 - @ModelAttribute 1) @ModelAttribute 요청 파라미터를 받아서 필요한 객체를 만들고 객체에 값을 넣어주어야 한다 스프링 mvc는 이 과정을 자동화해주는 @ModelAttribute 기능을 제공한다. 2) HelloData @Data public class HelloData { private String username; private int age; } 롬복 @Data 사용하면 @Getter, @Setter, @ToStirng, @EqualsAndHashCode, @RequiredArgsConstructor를 자동으로 적용 3) modelAttributeV1 p..
- [ 공부/Spring ][Spring] 스프링 MVC 1편 6) 스프링 MVC 기본 기능(1)2023-11-07 09:23:12스프링 MVC 1편 백엔드 웹 개발 핵심 기술 Session 6 스프링 MVC 기본 기능 1. 프로젝트 생성 1) 프로젝트 생성 스프링 부트 스타터 사이트에서 생성 https://start.spring.io/ Packaing - Jar 선택 Dependencies - Lombok, Spring Web, Tyymeleaf 추가 이전 포스팅 참고해서 세팅 ▶ Spring 프로젝트 생성 2. 로깅 간단히 알아보기 1) 로깅 라이브러리 실무에서는 System.out.println() 같은 시스템 콘솔을 사용해 출력하지 않고 로그 라이브러리를 사용해 로그 출력 스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리가 함께 포함 스프링 부트 로깅 라이브러리는 기본으로 SLF4J, Logback을 사용한다. ..
- [ 공부/Spring ][Spring] 스프링 MVC 1편 5) 스프링 MVC 구조이해2023-11-06 09:46:14스프링 MVC 1편 백엔드 웹 개발 핵심 기술 Session 5 스프링 MVC 구조이해 1. 스프링 MVC 전체 구조 1) 스프링 MVC 구조 2) DispatcherServlet 구조 살펴보기 스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다. 스프링 MVC의 프론트 컨트롤러가 DispatcherServlet 스프링 MVC의 핵심이다. 3) DispatcherServlet 서블릿 등록 DispatcherServlet도 부모 클래스에서 HttpServlet을 상속받아 사용, 서블릿으로 동작 스프링 부트는 DispatcherServlet을 서블릿으로 자동 등록하면서 모든 경로에 대하여 매핑 → 더 자세한 경로가 우선순위가 높음, 그래서 기존에 등록한 서블릿도 함께 동작 4) 요청 흐름 서블릿 호출되면..