🦁멋쟁이사자처럼 백엔드 부트캠프 13기 🦁TIL 회고 - [44]일차🚀44일차에는 실습했던 기존의 친구목록 페이지를 리팩토링하여 페이지를 도입하고 페이징 처리를 통해 친구목록이 페이지마다 특정 개수로 출력될 수 있도록 구현할 수 있었다.학습 목표 : 페이징 처리에 익숙해질 수 있도록 관련 용어 및 활용예시에 대해 공부학습 과정 : 회고를 통해 작성▶️실습 - 페이지 추가service/FriendService 추가@Transactional(readOnly = true)public Page findAllFriend(Pageable pageable){ Pageable pageable2 = PageRequest.of(pageable.getPageNumber(), ..
🦁멋쟁이사자처럼 백엔드 부트캠프 13기 🦁TIL 회고 - [43]일차🚀43일차에는 Batch하는 방법에 대해 잠깐 배우고, 트랜잭션에 대해서 배울 수 있었다.그리고 Spring JDBC와 Spring Data JDBC를 토대로 친구목록 페이지에 대한 프로젝트를 진행해볼 수 있었다.Batch 업데이트 작업JdbcTemplate에서 batchUpdate() 메소드를 통해 Batch 업데이트 작업 가능한번에 여러건을 INSERT하는 기능을 제공하는 것➡️여러 개의 SQL문을 하나의 배치로 묶어서 실행하는 기법대량의 데이터를 DB에 삽입, 업데이트, 삭제 해야할 경우에 사용장점 : DB 성능 향상 및 네트워크 비용 감소ex. 대용량 데이터 이전, 로그 처리 작업 등 ▶️실습 - DB에 배치작업 수행// 배..
🦁멋쟁이사자처럼 백엔드 부트캠프 13기 🦁TIL 회고 - [42]일차🚀 이전 회고와 관련되어서 "오프셋 기반 페이징"을 정리해보고자 한다.Spring Data JDBC에 국한되지 않고 일반적인 SQL에 쓰이는 페이징 기법이어서회고를 별도로 정리해야겠다는 생각이 들었다.오프셋 기반 페이징Offset-based Pagination : SQL의 LIMIT과 OFFSET을 활용한 페이징 기법큰 OFFSET 값이 들어가면 스캔해야 할 데이터가 많아짐 (인덱스가 없을 경우)➡️페이지를 넘길수록 OFFSET 값이 커지면서속도가 느려짐다양한 페이징 기법 예시ex. 구글에서 페이지를 내리다보면 다음페이지를 눌러서 가는 것이 아닌 스크롤로 내림으로써페이지를 넘기는 방식처럼 구현이되어있다.➡️이러한 방식은 페이지에 해..
🦁멋쟁이사자처럼 백엔드 부트캠프 13기 🦁TIL 회고 - [42]일차🚀42일차에는 Spring JDBC, MyBatis, JPA 의 표준 사용을 도와주는 Spring Data JDBC에 대해서 배울 수 있었다.이전 회고에서 Spring JDBC와 Spring Data JDBC를 비교할때에는 어려워보이는 개념들이었는데개념을 먼저 알고 실습을 함으로써 Spring Data JDBC에 대해 이해할 수 있게 되었다.스트림 API 데이터 처리 메소드filter()Predicate를 받아들이며 filter의 조건을 boolean형으로 판단하고 Stream으로 반환이 후 collect() 메소드 사용으로 중간연산인 filter()로 반환된 Stream을 toList()를 통해 리스트로 바꿔서 반환▶️실습 - 글..
🦁멋쟁이사자처럼 백엔드 부트캠프 13기 🦁TIL 회고 - [41]일차🚀41일차에는 람다식과 스트림 API에 대해 배울 수 있었다. 이전에 자바스크립트에서 화살표함수를 사용했을때나 알고리즘 문제 풀이 시 접했던 람다식과 스트림이어서 기초를 잘 배워놔야겠다고 생각했다.특히 스트림의 경우 데이터를 다루는 다양한 메소드를 제공하므로 더 자세히 공부해야겠다고 생각했다.Spring JDBC 와 Spring Data JDBC의 차이점Spring JDBCJDBC(Java Database Connectivity) API를 더 편리하게 사용할 수 있도록 도와주는 DB 접근 기술SQL 쿼리를 직접 작성 및 (ResultSet, PreparedStatement, Connection)과 같은 JDBC 객체들을 관리하는 것..
🦁멋쟁이사자처럼 백엔드 부트캠프 13기 🦁TIL 회고 - [40]일차🚀40일차에는 데이터베이스와의 접근을 단순화하여 도와주는 스프링 프레임워크의 Spring JDBC를 배울 수 있었다.자바의 JDBC에서 복잡했던 과정을 간소화하여 도와주는 기술로 데이터베이스 CRUD 연산을 조금 더 익숙하게 실습할 수 있었다.Spring 프레임워크 에러페이지스프링 프레임워크에서 오류가 발생할때 (ex. 지정되지 않은 URL의 페이지 요청 시 등)출력되는 [White Label Page] 에러 페이지는 WAS가 만든 에러페이지인 것이러한 에러페이지를 사용자가 직접 만들 수도 있다. (WAS의 에러페이지가 아닌 스프링이 에러페이지를 만들도록 기능을 제공)templates/error.html 사용자 정의 Error P..
🦁멋쟁이사자처럼 백엔드 부트캠프 13기 🦁TIL 회고 - [39]일차🚀39일차에는 쿠키와 세션에 대해 더 자세히 배웠다.쿠키와 세션의 차이를 이해하고 각각 스프링 프레임워크에서 어떻게 쓰이는지를 실습해볼 수 있었다.쿠키서버가 사용자의 웹 브라우저에 저장하는 작은 데이터 조각클라이언트가 서버에 요청을 할때마다 "쿠키데이터"가 요청과 함께 서버로 전송쿠키를 통해 서버는 사용자의 상태정보를 유지 가능사이트에 대한 설정을 저장하는데 도움이 되며 브라우저 간 세션 유지에 유용보안에 취약할 수 있어 중요 정보는 저장하지 않아야함쿠키 사용의 과정첫번째 요청사용자가 웹페이지에 액세스 요청 (쿠키 정보는 없는 상태)HTTP 요청 수신 - 서버는 이 요청을 받아서 사용자에 대한 어떠한 정보도 없으므로 기본설정이나 일..
🦁멋쟁이사자처럼 백엔드 부트캠프 13기 🦁TIL 회고 - [38]일차🚀38일차에는 LocalDate 클래스와 GET/POST 방식에 대한 실습을 진행하고, 포워딩와 리다이렉팅, 쿠키까지 배울 수 있었다.특히 GET/POST방식과 포워딩/리다이렉팅 부분을 이해하는 것에서 공부가 필요할 것 같아 회고를 통해 더 이해해봐야겠다.Thymeleaf - 조건표현식의 statusstatus : 인덱스로 참조 가능ExampleController에 (/list) URL 추가@GetMapping("/list") public String showList(Model model){ List items = Arrays.asList( "Item 1", "Item 2", "Item ..
🦁멋쟁이사자처럼 백엔드 부트캠프 13기 🦁TIL 회고 - [37]일차🚀37일차에는 스프링에서 뷰 템플릿 엔진을 제공하는 Thymeleaf 오픈소스 라이브러리에 대해 자세히 공부해볼 수 있었다. 다양한 실습을 통해 Thymeleaf의 문법과 형식에 대해서 배우고 컨트롤러로부터 View Name을 통해 연결시키고 출력해오는 것을 실습해볼 수 있었다.회고를 통해 이론적인 부분을 중점으로 정리해야겠다.메소드 요청 방식크게 GET방식, POST방식으로 나뉨GET 방식 GET정보를 URL로 전송 (공개해도 되는 정보일때 사용)목적 : 데이터 검색을 위함 (URL을 통해 전송되는 모든 데이터는 쿼리 스트링의 일부로 URL에 포함)➡️ex. localhost:8080/hello?name=myname데이터 제한 :..