[프로그래머스 코딩테스트 연습] 그리디 - Lv1. 체육복 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절..
Today I Learned QnA 답글 - Reply File Upload - Client 컴퓨터에 저장되어 있는 파일(이미지, 동영상, 문서 등)을 Server 컴퓨터로 전송 1. 준비사항 1) Library 다운(pom.xml) - commons-fileupload commons-fileupload commons-fileupload 1.4 2) form 태그의 method 형식은 post, enctype="multipart/form-data"로 변경 - 첨부파일이 없는 폼은 enctype은 기본으로 설정 3) Server에서 여러 개의 파일 조각들을 하나로 합쳐주는 역할을 하는 객체를 생성 - ***-context.xml 4) form 태그에 파일 태그 추가 5) Controller의 메서드 - 매..
Today I Learned Board 추가 notice와 qna 겹치는 부분 board로 통일 BoardDAO, BoardDTO, BoardService 생성 Notice, Qna는 Board를 extends, implements 해서 사용 JSP 부분도 board로 통일 QnA - 답글, 댓글 ref, step, depth 사용 ref : 원본글과 답글들을 그룹으로 묶는 역할 step : 그룹 내에서 순서를 결정하는 역할 depth : 들여쓰기 횟수 - 원본글 작성 1) ref : 자기 자신의 글번호가 ref 값이 됨 2) step : 0 3) depth : 0 - 답글(댓글) 작성 1) ref : 부모글의 ref를 자기의 ref값이 됨 2) step a. 테이블에서 ref가 부모의 ref와 같고 s..
Q&A 게시판 만들기 1. DB - QNA 테이블 생성 CREATE TABLE QNA ( NUM NUMBER CONSTRAINT QNA_NUM_PK PRIMARY KEY, TITLE VARCHAR2(100) NOT NULL, CONTENTS VARCHAR2(4000), WRITER VARCHAR2(100) NOT NULL, REGDATE DATE, HIT NUMBER, REF NUMBER, STEP NUMBER, DEPTH NUMBER ); - 생성된 QNA 테이블 - SEQUENCE 생성 : num에 사용 CREATE SEQUENCE QNA_SEQ INCREMENT BY 1 START WITH 1; 2. 파일 추가 QnaDTO class 생성 QnaDAO class 생성 qnaMapper.xml 생성 ..
Today I Learned Java Script Event - keyboard 이벤트 keydown : key를 눌렀을 때, 특수키 포함 keypress : key를 눌렀을 때, 특수키 제외 keyup : key를 눌렀다가 뗐을 때 - form 이벤트 focus : 입력 대기 상태 blur : focus 잃었을 때 submit : form을 서버로 요청 발생 reset : form 내부의 데이터를 초기화 change : 값이 변경되었을 때 내장 객체 - Object : 최상위 객체 - String : 문자열 다루는 객체 1) length : 문자열의 길이 예제 소스 코드 더보기 1) event2.html Event 2 event2.js const d1 = document.getElementById('d..
JS는 화면을 구성하는 모든 것들을 Object로 생성하고 관리 BOM(Browser Object Model) window - 참조 : https://developer.mozilla.org/ko/docs/Web/API/Window - 최상위 객체 (참조변수명은 생략 가능) a. document : HTML 문서 관리 b. location : URL 관리 c. history : 뒤로, 앞으로 가기... d. navigator : Web Browser 정보 e. screen : 클라이언트의 모니터 화면 location - 주요 변수 1) href : 변수에 저장된 URL 주소로 요청이 발생 DOM(Document Object Model) DOM이란 - 문서 객체 모델(The Document Object Mo..
Today I Learned JavaScript 1. function - 함수 선언 function 함수명 ([매개변수 선언]) { [return ] } - 함수 호출 : 함수명([인자값]); 2. event - 마우스 이벤트 click - 등록 : 선택자.addEventListener("이벤트명", 익명함수선언 또는 함수 호출) JoinCheck JavaScript - 약관 동의 선택하기 - 전체 동의 체크박스 생성 - 약관에 모두 동의가 체크되어 있을 경우에만 Join 버튼 누르면 Join Form으로 이동 더보기 const checkAll = document.getElementById("checkAll"); const check = document.getElementsByClassName("chec..
Today I Learned GIT 1. Main과 Add_BB_Pager 브랜치 Merge 작업 2. 새로운 Branch 'Study_JS_1' 생성 JavaScript - 인터프리터 언어 - 내부 : - 외부 : - 변수 선언 : let 변수명 - 연산자 : 산술, 논리, 비교, 증감 * 제어문 - for(let i in arr) : 변수 i에 인덱스 번호가 대입 - for(let i of arr) : 변수 i에 arr값 중 하나가 대입 * 배열 - 초기화 : let arr = []; - 주요 메서드 1) push(data) : 배열 끝에 요소를 추가하고 새로운 길이 (length) 반환 2) pop() : 배열 끝에 요소를 삭제하고 삭제한 요소를 반환 3) unshift(data) : 배열 처음에 ..