목록분류 전체보기 (167)
코디잉
공동구매 관련 작업에 들어가기 전에 포인트 쪽 먼저 작업 ㄱㄱ~ 공동구매 글을 쓰거나 참여/참여취소를 하려면 포인트 쪽이 필요하니까,,! 해야 할 작업 먼저 정뤼,, ① 포인트관련 페이지 및 팝업창 컨트롤러 연결 작업 ② 포인트헤더에 회원 데이터 가져오기 작업 ③ 포인트메인 사용내역 작업 ④ 계좌등록팝업 ⑤ 계좌관리팝업 ⑥ 포인트충전팝업 ⑦ 포인트인출팝업 ① 포인트관련 페이지 및 팝업창 컨트롤러 연결 작업 마이페이지의 메뉴바에서 [포인트]를 클릭하거나, 마이페이지 헤더에서 [포인트]를 클릭하면 포인트메인으로 이동한다. ② 포인트헤더에 회원 데이터 가져오기 작업 포인트페이지의 포인트 헤더는 마이페이지 헤더와 같이 회원의 매너지수에 맞는 사진과 닉네임, 포인트 정보를 가져와서 보여준다. ③ 포인트메인 사용내..
- 스택과 마찬가지로 데이터를 일시적으로 쌓아 두기 위한 자료구조 - 선입선출(FIFO, First In First Out / LILO, Last In Last Out) - 실생활에서 많이 보는 예) 은행 창구 차례, 마트 계산 대기열 등등 - 기본 용어 enqueue: 인큐(큐에 데이터 넣기) → O(1) dequeue: 디큐(큐에서 데이터 꺼내기 → O(n) : 맨 앞 데이터 꺼내고, 나머지 데이터들 다 한 칸씩 앞으로 이동 front: 데이터를 꺼내는 쪽 rear: 데이터를 넣는 쪽 - 링 버퍼(ring buffer)를 사용한 Queue: dequeue 하고도 배열 요소를 앞으로 옮기지 않는 큐 ring처럼 처음과 끝이 연결되어 있음 enqueue(), dequeue() 모두 O(1) **주의할 점..
- 데이터를 일시적으로 저장하기 위한 자료구조 - 후입선출(LIFO, Last In First Out / FILO, First In Last Out) - Java에서 메서드 호출 및 실행할 때 프로그램 내부에서는 스택을 사용한다. - 스택 만들어보기 public class IntStack { private int max; // 스택 용량 private int ptr; // 스택 포인터 private int[] stack; // 스택 본체 // 실행 시 예외: 스택이 비어 있음 public class EmptyIntStackException extends RuntimeException { public EmptyIntStackException() {} } // 실행 시 예외: 스택이 가득 참 public c..
- 복잡도: O(log n) - 전제 조건: 데이터가 키 값으로 이미 정렬되어 있다. - 장점: 선형 검색보다 좀 더 빠르게 검색할 수 있음 - 한 단계를 진행할 때마다 검색 범위가 거의 반씩 좁혀짐 - 검색 종료 조건 (둘 중 하나라도 성립되면 종료됨) ① arr[pc](검사 요소, 중앙 요소)와 key가 일치하는 경우 (발견한 요소의 인덱스 반환) ② 검색 범위가 더 이상 없는 경우 (-1 반환) static int binSearch(int[] arr, int n, int key) { int pl = 0; // 검색 범위의 첫 인덱스 int pr = n - 1; // 검색 범위의 끝 인덱스 do { int pc = (pl + pr) / 2; // 중앙 요소의 인덱스 if (arr[pc] == key)..
- 선형 검색(linear search): 키 값을 갖는 요소를 만날 때까지 맨 앞부터 순서대로 요소 검색 - 복잡도: O(n) - 검색 종료 조건 ( 둘 중 하나라도 성립되면 종료됨) ① 검색한 값 발견 못하고 배열 끝까지 검색 (-1 반환) ② 검색할 요소 발견 (처음 발견한 요소의 인덱스 반환) - 반복할 때마다 위의 종료 조건 2개를 모두 판단 → 이 비용을 반으로 줄이는 방법 : 보초법 : 검색하고자 하는 키 값을 배열의 맨 마지막 요소로 저장해둠(보초) → 사용자가 길이 7인 배열을 생성한다고 하면, 길이가 8인 배열을 만들어서 마지막요소에 보초 저장해둠 : 값을 찾으면, 그 값이 보초인지 아닌지 확인 (보초면 검색 실패이므로 -1 반환) : 위의 검색 종료 조건 ①번 필요없어짐 static ..
- 배열: 같은 자료형의 변수로 이루어짐 - 배열 변수 : 배열 본체를 『참조』하는 것 - int[] arr = new int[5]; → arr의 자료형 : int[5] 형 → arr 각 요소의 자료형: int 형 - 배열의 구성 요소는 자동으로 0으로 초기화됨 +) 지역 변수는 자동으로 초기화되지 않는다. (컴파일 오류 발생) - 배열의 복사(깊은의미의 복사) : 배열이름.clone(); 다차원 배열의 같은 경우 → 최상위의 1레벨만 복사 수행함. 그 아래 레벨의 배열은 서로 참조하여 공유됨 - 배열 더미 출력: Arrays.toString(arr); - 배열 정렬 (오름차순) : Arrays.sort(arr); java.util.Arrays; int[] arr = { 99, 2, 100, 25, 32..
회원insert,update,delete 관련 마지막 작업,,,,아마,,!!! 관리자페이지의 관리자계정관리파트! 관리자페이지에서는 insert, update, delete 작업하는 경우나 작성하다가 버튼을 눌렀을 경우에 한 번 더 정말 그 작업을 수행할거냐고 알림을 띄웠다. -관리자는 대표관리자 포함 최대 10명까지 등록 가능 -대표관리자는 한 명(수정 및 삭제 불가) -대표관리자는 다른 모든 관리자들의 정보 수정 및 삭제 가능 / 일반 관리자 계정 생성 가능 -일반관리자는 본인의 정보만 수정 가능 (본인거라도 삭제는 불가 / 계정 생성 불가) ① 관리자계정 목록 작업 대표관리자 → 버튼 및 모든 일반관리자 계정의 버튼 활성화되어 있음 일반관리자 → 본인 계정의 버튼만 활성화되어 있음 그 전에, 관리자 ..
마이페이지>개인정보수정 페이지에 있는 버튼에 대한 작업을 하려고,,! 테스트계정을 하나 만들었는데 🤦♀️ 마이페이지 입장하니까 포인트 NULL 처리를 제대로 안했는지 500에러 떠서,,,ㅎㅎ,,,,,,,,,,SQL 구문 수정 먼저함ㅎㅎ~ NVL() 처리 다 해주고 나서 테스트 계정으로 마이페이지 제대로 입장완료,,ㅎㅅㅎ~~ 회원탈퇴가 되어도 해당 회원이 작성했던 게시물과 댓글은 삭제되지 않게하기 위해 회원 테이블-회원정보 테이블을 따로 만들었다. 그리고 탈퇴 시, 1년동안은 개인정보를 보관하다가 삭제하기로 정해서 탈퇴회원 테이블을 따로 만들어놨다. 그래서 탈퇴했을 때 SQL 구문 작성할 때, 신경썼어야 할 부분은! 회원탈퇴테이블에 먼저 INSERT + 그리고나서 회원정보테이블에서 해당 회원 데이터 DE..
여기도 회원가입에서 작성했던 jquery 및 javascript 와 동일해서 수월하게 진행 !! 할 줄 알았는데 생각보다 에러나서 꽤 걸림 ㅎㅅㅎ,,,, 마이페이지 메뉴바에서 개인정보수정을 누르면, 회원의 비밀번호를 확인한 후에 개인정보수정폼으로 이동한다. -개인정보수정폼에서 아이디, 이름은 수정을 못하게 하려고, readonly 속성을 부여했다. -비밀번호 형식 확인 (8~16자, 영어/숫자/특수문자 하나 이상 포함), 입력가능 특수문자(!, @, #, $, %, ^, +, -, =) let format = /^(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[!@#$%^+\-=])(?=\S+$).*$/ -닉네임 입력 시, 공백 있다면 제거 $('input[name=nickname]').focus..
회원가입 관련파트 먼저하려고 마이페이지-회원정보수정을 작업하려고 했는데 마이페이지로 들어가보니 마이페이지 헤더가 눈에 들어와서 ㅋㅋㅋㅋㅋ 헤더 먼저 했다 ㅎㅅㅎ 🔥 SUM() 도 NULL 데이터를 NULL로 리턴하므로, NVL 관련 처리가 필요!! 🔥 매너지수 내역에 정보 없는 회원의 경우에는 닉네임이 출력되지 않고, 점수도 NULL로 나옴.......SQL 구문 다시 작성 -- 먼저 작성했던 구문 SELECT NICKNAME, SCORE , (SELECT NAME FROM MANNERLEVEL_PHOTO WHERE T.SCORE BETWEEN MIN_MANNERLEVEL AND MAX_MANNERLEVEL) "PHOTO_NAME" FROM ( SELECT MI.NICKNAME, 30 + SUM(NVL(..