목록전체 글 (108)
어리바리 신입 개발자의 얼렁뚱땅 개발 기록 ✨
SELECT 쿼리 실행 - DB로부터 데이터를 SELECT해서 실행 결과 적용(리스트 출력) [ 사전 작업 ] 1. 클래스/인터페이스 IMPORT (user_list.jsp) // (insert/update/delete) 쿼리 실행에서는 데이터를 입력 받아 바로 pstmt를 통해 DB에 입력/수정/삭제 하기 때문에 굳이 ResultSet으로 데이터를 할당해줄 필요가 없었다. // 하지만 select 쿼리 실행에서는 실행으로 끝나지 않고 결과를 사용해야하기 때문에 DB로부터 데이터를 가져와 ResultSet을 이용해 변수에 담아줄 필요가 있다. 인터페이스 - 구현을 명령 받은 클래스 Connection - ConnectionImpl PreparedStatement - ClinetPreparedStateme..
{ 함수 } 메모리에 코드를 저장 할 수 있는 수단 function이라는 키워드를 사용하여 선언이 가능하다. 함수는 선언 후에 호출이 되어야 저장된 코드가 실행된다. (단, 일반함수는 선언 전에 호출 가능) 함수에는 일반함수와 익명함수가 존재한다. 함수를 하나 선언해 두면 굳이 코드를 반복해서 사용할 필요 없이 함수를 호출만 하면 된다. return 키워드를 만나면 함수는 종료 된다. - return 없으면 undefined (return 변수; / return; 형태 둘 다 사용 가능) return 키워드와 값을 지정하게 되면 함수를 호출한 곳에 그 값을 전달하게 한다. function returnCall(n1, n2){ return n1 + n2; //리턴하려는 값 } //호출한 곳에 값을 전달 va..
INSERT쿼리 실행 - 사용자로부터 데이터를 입력 받아 DB로 INSERT [ 사전 작업 ] 0. 사용자로부터 데이터 입력 받는 폼 테이블 만들기 (user_insert_form.jsp) 아이디 암호 권한 이름 이메일 1. 클래스/인터페이스 IMPORT (user_insert_action.jsp) 인터페이스 - 구현을 명령 받은 클래스 Connection - ConnectionImpl PreparedStatement - ClinetPreparedStatement 2. post 방식 한글 처리 / 사용자로부터 입력 받은 데이터를 불러와서 변수에 담기 (user_insert_action.jsp) request.setCharacterEncoding("euc-kr"); //데이터를 보내는 방식이 post일 경..
DBMS인 mysql 설치 mysql 데이터 베이스 관리자인 root로 로그인 데이터 베이스 DB1 생성 일반 사용자 계정 생성 및 데이터 베이스 접근 권한 부여 일반 사용자 계정 로그인 해당 데이터 베이스 내에 테이블을 생성한다. 테이블 내에 입력(insert) / 수정(update) / 삭제(delete) / 선택(select) 할 수 있다. / 특히 select 아주 양이 많고 중요 mysql로 데이터 베이스 서버에 접근하려면 IP, DB접속 아이디, DB접속 비밀번호, 포트넘버, DB네임 알아야 한다. 2. mysql 데이터 베이스 관리자인 root로 로그인 도구 - 환경설정 - SQL - 편집기 글꼴에서 폰트 설정 3. 데이터 베이스 DB1 생성 & 4. 일반 사용자 계정 생성 및 데이터 베이스..
MySQL : DBMS / 데이터베이스 관리 시스템 (MySQL, MariaDB, MSSQL, PostgreSQL...) HeidiSQL : 데이터베이스 관리 '도구,툴' / 데이터베이스 GUI '도구,툴' - HeidiSQL을 통해서 세션 생성, 로컬(local) 또는 원격(remote) 서버 접속, 접속된 데이터 서버 내의 데이터베이스 관리 - GUI(Graphic User Interface) 환경을 제공 -> 테이블을 시각화해서 관리 가능 -> SQL문을 사용하지 않고 마우스를 통해서 작업을 수행할 수 있음(당연히 SQL문을 사용해서 작업도 가능) - HeidiSQL 하나로 MariaDB, MySQL, Microsoft SQL, PostgreSQL, SQLite 등의 데이터베이스 시스템을 실행하는 ..
내장 객체 : JSP 내에서 선언하지 않고 사용할 수 있는 객체 ( request / out / session jsp 내에 자동으로 포함되어 있는 멤버변수(메소드 매개변수 등의 참조 변수) session.setAttribute("name", value); // 세션 셋팅 String 변수 = (String)session.getAttribute("name"); // 세션 겟팅 session.invalidate(); // 세션 종료 name = 값을 저장해서 서버에 넘길 때 사용 / 받은 값을 비교할 때 사용 (변수 같은 기능) name을 userId라고 설정했을 때 사용자가 아이디를 id01이라고 입력하면 userId에 id01이 담겨 서버로 넘어간다. 서버에서는 userId에 담긴 id01와 데이터베이스..
지금까지 jsp 파일에 경로를 설정한 방법은 페이지가 늘어날 때 마다 경로를 계속 수정/추가 해줘야 한다. = > 코드가 중복되는 부분을 레이아웃으로 나눠 준다. 레이아웃을 헤드 / 레프트 / 라이트 / 푸터로 나눴을 때 user 폴더에 만들었던 jsp 파일과 index.jsp 파일에는 라이트 내용과 include 코드만 남겨둔다. index.jsp 파일에서 헤드 부분을 top.jsp 에 잘라내서 붙여주고 레프트 부분을 left.jsp에 잘라내서 붙여주고 푸터 부분을 footer.jsp에 잘라내서 붙여준다. [ 레이아웃 include 완성 파일 ]
프로젝트 - Export - JAR file 으로 라이브러리 저장 저장한 jar 파일 새로운 프로젝트의 lib 폴더에 복사 붙여넣기 새로운 프로젝트 안에 Cal 클래스가 없어도 Cal 클래스 안에 선언된 메소드를 호출 / 리턴 받을 수 있다.
[ 언어 설정 ] jsp 파일이나 html 파일에서 폼 태그에 입력한 값을 서버에 post 방식으로 전송할 때 값이 한글일 경우 깨지지 않게 전송하기 위해서 사용한다. request.setCharacterEncoding("euc-kr"); request.setCharacterEncoding("UTF-8"); get 방식으로 한글을 전송할 때에는 톰캣에 UTF-8가 기본 적용 되어있기 때문에 자동으로 처리해준다. 기본 적용이 안 돼 있으면 설정해줘야 한다. (enc-kr 사용하는 경우) Servers - tomcat 폴더 - server.xml - source 위 코드를 찾아 URIEncoding="euc-kr" 추가해준다. [ 사용자가 입력한 데이터 가져오기 - input 타입 submit 사용] // ..
Error : The superclass "jakarta.servlet.http.HttpServlet" was not found on the Java Build Path 프로젝트 우클릭 - Properties - Project Facets - Java - Runtimes - 서버 선택 후 적용 Runtimes 탭에 서버가 아예 없는 경우 New를 눌러 서버와 서버 경로를 선택해주면 된다. 프로젝트 우클릭 - Properties - Java Build Path - Libraries - Server Runtime - Edit에서 설정 확인 없으면 Add Library에서 추가해준다. 이미 설정이 되어있거나 설정을 해준 후에도 에러가 계속 발생한다면 서버 해제 후 다시 적용해주거나 이클립스 재실행 후 다시 설..
[ 객체 / 오브젝트] 원시타입(문자열,숫자,boolean,null,undefined,심볼) 아니면 그냥 다 객체임 클래스(설계도-아직 메모리에 할당되지 않은 상태)에서 정의한 것을 토대로 메모리에 할당된 것 (클래스를 통해 객체를 생성하면 주소가 할당된다.) 메모리에 등록된 데이터 (변수, 자료구조, 함수, 메소드, 배열....) 객체의 구성 : 속성(멤버 변수) / 기능(메소드) 객체를 대입하는 변수(참조 변수)는 메모리에 올라간 객체의 주소를 참조하고 있다. (자바 : User name = new User(); - name : 참조변수 - User객체의 주소 참조) 원시타입(기본 자료형)의 변수는 참조 변수가 아님(객체의 주소를 참조하는 것이 아닌 값 바로 할당) call by reference (..
하나의 저장소에 여러 데이터 타입을 저장 할 수 있는 방법 (객체) 하나의 저장소에 공간을 쪼개서 저장할 수 있다. 그 공간에는 주소가 생성되는데 그것을 index라고 한다. index의 처음 시작 주소는 0번부터 시작된다. 배열 객체에 담긴 대상을 요소(원소) 라고 한다. index를 활용하여 배열에 접근이 가능하며, 접근이 되었다면 값을 저장하거나 값을 가져올 수 있다. 모든 자료형과 객체를 담을 수 있다. var, let, const 뭘 사용하든 상관 없지만..... 배열 안에 담긴 값이 꾸준히 저장/유지되는 것이 중요한 경우에는 const (재선언,재할당 불가능) 사용해서 선언 [ 자바의 배열과 자바스크립트의 배열 ] 자바는 배열을 선언할 때 데이터 타입을 정해서 정해진 데이터 타입만 담을 수 있..
[ 경로 연결 ] 프로젝트 경로만 불러오는 코드 : 코드가 리턴하는 값은 프로젝트명 / 리턴 데이터 타입은 String 즉, 프로젝트 경로만 불러오는 코드이기 때문에 뒤에 폴더이름 파일이름 써줘야 한다. /폴더이름/파일이름.파일명 //상대 경로 회원 가입 //절대 경로 //파일이 같은 폴더에 있는 경우 ./파일명.파일확장자 //파일이 다른 폴더에 있는 경우 ../폴더명/파일명.파일확장자 회원 가입 /프로젝트이름 출력 //스타일 (css파일) 연결 프로젝트 경로 / 파일 이름까지 불러오는 코드 : 코드가 리턴하는 값은 프로젝트명/파일명.파일확장자 / 리턴 데이터 타입은 String /프로젝트이름/폴더이름/파일이름.jsp 출력 ㅍ [ form 태그의 안의 정보 관리자에게 보내기 ] 1. 태그 - form :..
public static void hello() {} public : 전부 접근 가능 private : 같은 클래스 내에서 생성된 객체에서만 접근 가능 protected : 같은 패키지 내에서 생성된 객체에서만 접근 가능 or 다른 패키지에서 상속 받으면 접근 가능 defualt : 같은 패키지 내에서 생성된 객체에서만 접근 가능 (접근 지정자 자리에 아무것도 안쓰면 defualt) void : 리턴을 하지 않는다. 데이터 타입 : 리턴할 값의 데이터 타입을 입력한다. (String, int, 등... / Class 이름) 그럼 static은 왜 사용할까? static : 정적인 - 고정되어 있기 때문에 정적임 서로 다른 주소를 생성하면 같은 필드를 받아도 다르게 작동한다. 하지만 static으로 선언된..
[ 컬렉션 프레임워크 ] 배열 : 크기가 고정적이기 때문에 여러가지 비효율적인 문제가 발생 (배열을 생성할 때 그 크기가 결정되며 그 크기를 넘어가게 되면 더이상 데이터를 저장할 수 없음) 데이터를 삭제해도 해당 인덱스의 데이터가 빈 상태로 존재해 메모리가 낭비됨 이런 단점을 해결하기 위해 널리 알려진 자료구조를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 관련 인터페이스와 클래스들을 포함시켜 놓은 java.util 패키지 - > 원래 인터페이스와 구현 명령을 받는 클래스를 우리가 직접 만들어 줬는데 이미 List, Set , Map 이라는 인터페이스 생성되어 있음.. 그 안에 구현 클래스 ArrayList 등을 통해 필요한 객체 생성해서..