분류 전체보기 400

1. 토이 프로젝트 좋아요 비동기 구현 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 상황button을 이미 좋아요를 누른 유저라면 UNLIKE로 보이고 그렇지 않다면 LIKE로 보이게 만들어놨는데...$('#likeButton').click(function(event) { event.preventDefault(); // 기본 동작 방지 (페이지 새로고침 방지) let bookId = $('#bookId').val(); let currentButton = $(this); // 현재 클릭된 버튼 let isLikeUser = $('#isLikeUser').val(); // 버튼 텍스트와 배경 색상을 즉시 변경 -> else일때는 잘돌아감 if (isLikeUser === 1) { currentButton.text('UNLIKE').css('..

트러블 슈팅 2025.03.20

10. REST API와 Ajax - 패스트캠퍼스 백엔드 부트캠프 3기

1. JSON이란?Java Script Object Notation(간단) - 자바 스크립트 객체 표기법xml(복잡) - 데이터 교환, data보다 Tag가 더 많음{ 속성명 1: 속성값1, 속성명2: 속성값2, ... }[{ 속성명: 속성값,...}, {속성명: 속성값,...},...] // 객체 배열{키1:{속성명: 속성값,...}, 키2:{속성명: 속성값,...},...} // Map2. stringify()와 parse()JS객체를 서버로 전송하려면, 직렬화(문자열로 변환)가 필요직렬화 : 객체 데이터를 저장하거나 전송할 수 있도록 문자열로 변환하는 과정서버가 보낸 데이터(JSON문자열)를 JS객체로 변환할 때, 역직렬화가 필요JSON.stringify() - 객체를 JSON 문자열로 변환(직렬화..

MyBatis 2025.03.17

7. 데이터 모델링 요약(1) - 패스트캠퍼스 백엔드 부트캠프 3기

모델링 이론 데이터 모델링 : 업무를 파악하고 개념을 정리, 분류하여 엔티티, 속성, 관계로 형상화하는 과정 ER모델(Entity-Relationship Model) : 업무를 개체와 관계로 표현하는 모델 ER모델의 특성 : 완전성, 정확성, 최소성, 자명성, 확장성, 표현성, 가독성 완전성 : ER모델은 모든 업무적인 요구사항을 표현하고 있어야 한다. 정확성 : ER모델이 실제 시스템의 데이터를 정확하게 표현해야 한다. 최소성 : 요구사항의 모든 특성이 ER모델에 한 번만 나타나도록 설계해야 한다. 자명성 : 설명이나 증명이 없어도 요구사항에 대한 뜻이나 의미를 명확히 설명할 수 있어야 한다. 확장성 : 업무 범위나 규모가 확대, 변경시 쉽게 반영할 수 있도록 유연해야 한다. 표현성 : ER모델의 의미..

요약 2025.03.11

6. SQL튜닝 요약(1) - 패스트캠퍼스 백엔드 부트캠프 3기

1. 최적화SQL 처리 과정과 I/O SQL 파싱과 최적화 SQL(Structured Query Language) : 구조적(Structured), 집합적(Set-based, 선언적(Declarative) 질의 언어 구조적 : 2차원 테이블 집합적 : 데이터 선언적 : SELECT, DELETE... 이나 함수형 명력적 : JAVA 옵티마이저(컴파일러 역할) : 최적의 데이터 액세스 경로를 선택해 주는 DBMS의 핵심 엔진 특징 Rule base : 규칙기반(이제 안씀) Cost base : 통계기반 SQL 최적화의 순서 파싱 -> 문법체크 -> 의미체크 -> 최적화 -> 명령어 생성 SQL 파싱 1. 파싱 트리 생성 2. 문법체크(Syntax) : 문법적 오류가 없는지 확인 3. 의미체크(Semanic..

요약 2025.03.07

9. SpringBoot로 검색, 게시물 표시 수 지정 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 검색기능쿼리작성search_cnt - 검색 후 페이지의 수를 지정하기 위한 쿼리 select count(*) from board where title LIKE CONCAT('%', #{search}, '%')search - 검색 쿼리 SELECT * FROM board WHERE title LIKE CONCAT('%', #{search}, '%') ORDER BY bno desc LIMIT #{offset}, #{nav}public interface BoardDao { int count(); List selectPage(Map map); BoardDto select(int bno); void insert(BoardDto boardDto); ..

MyBatis 2025.03.06

5. 타임리프 사용하기 - 패스트캠퍼스 백엔드 부트캠프 3기

1. 타임리프(thymleaf)란?자바 웹개발에 이상적인 '모던 서버 사이드 자바 템플릿 엔진'HTML과 유사해서 디자이너와 개발자간의 협업을 쉽게 해준다.확장성이 뛰어나며, 커스터마이징이 쉽다.다양한 도구와 확장 프로그램으로 구성된 에코 시스템 제공2. 타임리프 템플릿타임리프 템플릿(*.html)은 HTML과 유사해서 편집 후 내용 확인이 쉽다.th:* 속성은 타임리프 전용 속성이며, 브라우저는 이를 무시한다. 3. th:text와 th:utextth:text는 ${...}을 해석해서 태그의 텍스트 노드로Namkung[[${lastName}]]스프링 컨트롤러의 작업결과를 텍스트로 보여준다.문자열('...') 결합(+)과 리터럴 치환(|...|)th:utext는 태그의 를 <, >로 바꾸지 않..

Spring Boot 2025.03.05

6. 게시판 읽기, 쓰기, 삭제, 수정 기능구현(2) - 패스트캠퍼스 백엔드 부트캠프 3기

1. 게시물 쓰기 기능의 구현boardList.jsp에 글쓰기 버튼을 추가하고 누르면 Get방식으로 BoardController에 write()메서드를 불러오고 write()메서드는 board.jsp에서 게시판 글쓰기 뷰를 불러온다.boardList.jsp fastcampus ">Home ">Board ">login ">Sign in 글쓰기 번호 제목 이름 등록일 조회수 ${boardDto.bno} ">${bo..

MyBatis 2025.03.04

5. 게시판 읽기, 쓰기, 삭제, 수정 기능구현(1) - 패스트캠퍼스 백엔드 부트캠프 3기

1. 기능별 URI 정의URL : 리소스 경로(전체 경로)URI : 유일한 이름(URL일부 경로) 2. 게시물 읽기 기능의 구현board.jsp fastcampus ">Home ">Board ">login ">Sign in 게시물 읽기 ${boardDto.content} 등록 수정 삭제 목록  목록을 누르면 BoardController에 Get요청이가고 list() 메서드가 호출이되고 boardService를통해 getPage를 실행 가져온 Page를 List에 담아서  반환한 것을 BoardList에 구현boardList..

MyBatis 2025.03.03