본문 바로가기

CLASS265

#3-5 / 기타(enum,set,timestamp) * enum : column에 옵션을 입력시킨 후 해당 옵션 외에는 값이 저장되지 않도록 하는 자료형 , ex) radio의 name값=> radio일때 주로 사용create table event( no int(8) not null auto_increment, mid char(30) not null, mpass varchar(10) not null, mhp char(11) not null, memaill varchar(40) not null, mcode char(7) null, moption enum('win','office','xbox') not null default 'win', mdate timestamp not null default current_timestamp, primary key(no),.. 2024. 6. 4.
#3-4 / database 검색 ⚡ database counting * select count(*) from 테이블명; => 해당 table에 몇개의 데이터가 있는지 확인* select count(*) as total from 테이블명;  => as(Alias 의 약어)를 이용하여 가상의 column명을 사용함* select * from table명 where colomn='데이터명' and colomn='데이터명'=> 2가지 조건이 모두 만족 ( = && )* select * from table명 where colomn='데이터명' or colomn='데이터명'=> 2가지 조건 중 한가지만 만족 ( = || ) ex 1)select count(*) from member where marea='b';=> member table 중 지역.. 2024. 6. 4.
#3-3 / excel 미러링, data backup 및 복구 ⚡ excel 미러링 아래 파일로  member라는 table 추가- exel tab 1개당 table 1개  엑셀파일 보고 설계create table member( no int(6) not null auto_increment, mid char(20) not null, mname char(30) not null, mhp char(11) not null, memail varchar(100) not null, mtel varchar(13) not null, mpost char(5) not null, maddr varchar(200) not null, maddr2 varchar(100) not null, mlevel smallint(1) not null, //레벨이 1부터 시작하므로 int 가능 marea c.. 2024. 6. 4.
#3-2 / 외부 사용자 추가 방법 ⚡ 외부 사용자 추가use mysql;create user 'apink'@'%' identified by '1004';insert into db values ('%','f_res','apink','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');=> 권한 부여 create user '아이디'@'%' identifyed by '비밀번호';  : 여러 ip를 오픈하는 형태create user '아디디'@'172.30.1.33' identifyed by '비밀번호';  : 해당 ip만 접속 가능 create user 'apink'@'%' identified by '1004';insert into db values ('172.. 2024. 6. 4.
#3-1 / unique, alter문법 👀 product listcreate table product( pindex int(4) not null auto_increment, pno char(4) not null, //상품 고유번호pnm varchar(200) not null, pmoney int(8) not null, primary key(pindex,pno), unique key(pno) ); [ unique key ]=> primary key에서 절대 중복되지 말아 하는 데이터 colomn을 선정(중복시 error 발생)     단, primary key에 없는 colomn 을 사용하더라도 문제가 되지 않음     ("key" 는 그룹명일뿐 다른거 써도댐 - 통상적으로 key를 사용할 뿐 aaa 이런거 써도 댐)     https://d.. 2024. 6. 4.
#2-3 / database table 설계 👀 게시판 database table - 기획서에 맞춰 설계(기획서에 작성되어 있지 않은 사항도 고려해야함 !! )create table notice( no int(3)  not null auto_increment, //999개의 글만 쓸 수 있음, 필수사항 subject varchar(200) not null, //최대 200글자 제목,필수사항 writer char(40) not null, //최대 20글자 글쓴이,필수사항 contents text not null, //긴글,선택사항 files varchar(100) null, //파일첨부,선택사항 today datetime not null default "0001-01-01 00:00:00", //글작성시간,필수사항 primary key(no) //.. 2024. 6. 3.
#2-2 / 사용자에게 권한주기 [ 응용문제 1  - 사용자에게 권한주기] - https://dev-eunse.tistory.com/120 하단 확인root 사용자에게 일반 사용자에게 새로운 database 권한을 설정하여 접속되도록 합니다.DB : mobile_shopid : coupangpw : c1004로 접속했을때 mobile_shop이 보이게1. create database mobile_shop; 2. use mysql; 3. create user 'coupang'@localhost' identified by 'c1004'; 4. insert into db values ('localhost','mobile_shop','coupang','y','y','y','y','y','y','y','y','y','y','y','y','y',.. 2024. 6. 3.
#2-1 / MYSQL 기초문법 최고사용자(root) / 일반사용자(guest) DB hosting - root안줌, 일반사용자자체 DB Server - root 有 - 일반사용자 생성,권한 제공 DataBase Package한 사이트 당 각각의 DB로 설정일반 사용자를 각각 배치1인 기준 사용자가 여러개의 database 권한을 가질 수 있음1개의 datatbase에 여러명의 일반 사용자를 접근허용 할 수 있음(주로 협업시) Version MYSQL 5.1 or 5.5 이상 / 서로다른 자료형 및 구조를 가지고 있음∴ 한번 구축된 database는 버전 업그레이드가 매우매우 어려운 작업임 Database에 외부 접속시 접속 방식SSH라는 Tool 이용 (key로 접속)SQL Developer 이용(잘안씀 )Telnet오픈 - 아주별로.. 2024. 6. 3.
#4-2 / 동의 체크박스 Map 배열로 받기 결과출력 예시 : {agree1=Y,agree2=N ..} - map배열 : https://dev-eunse.tistory.com/78⚡ 체크박스 확인 => map으로 받기 전체선택 (필수)개인회원 정보 동의함 (필수)이용약관 동의함 (선택)청소년 보호정책 동의함 (선택)제3자 정보 수집 동의  public class test6 extends HttpServlet { private static final long serialVersionUID = 1L; Map agdata = null; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletExcept.. 2024. 5. 31.
#4-1 / html에서 java class로 값 전달,로그인 예제 ❗ 정규식 형태의 코드(replace,replaceAll 등)를 사용시 intern() 메소드를 로드하지 않을 경우 equals 사용해야함//공백 제거 replace String no = request.getParameter("no").intern();String word = no.replaceAll(" ", "").intern();System.out.println(word);if(word =="") { System.out.println("값을 입력하세요"); }else{ System.out.println("입력완료");} ⚡ 로그인 예제 - 정보 java로 전달 (step 형식) ▶ 2가지 형식이 있음1. html -> backend -> html -> backend  : 한개의 do fil.. 2024. 5. 31.
sts 패키지명 path에서 제거 url에는 가상의 파일명 및 가상의 디렉토리도 설정 가능함 sts에서 이렇게 세팅시 패키지명 붙이지 않아도 가상서버 확인 가능ex) web/test.do => /test.do 2024. 5. 31.
#19 / Thread (class 형태 , interface 형태) ⚡ Thread (class 형태 , interface 형태)public class thread1 {//Thread (class 형태 , interface 형태) public static void main(String[] args) { //-- class 형태 Thread 호출// int w = 0;// while( w 2024. 5. 31.
#1-1 / MYSQL start,setting mysql 다운로드 try free -> oracle -> 이거 아님 xxxxxMySQL Community (GPL) Downloads »  =>   Download Archives   or   MySQL Community Server=> msi 다운로드 - complete (visual strudi ~ 어쩌구로 다운 안될 시 2019 visual c++ runtime downloads 다운로드) Data directory - D:\MySQL\MySQL Server 8.4\type and Networking config type - development  computer Accounts and Roles - password 세팅apply configuration - excute 버튼 : 내 컴퓨터 검토 .. 2024. 5. 30.
#3-3 / html-> html 값 전달 - html -> html 값 전송시 form method="post" 는 사용 불가 (post : 백엔드로 전달할 시에만 핸들링 가능)  ❗ only get 사용- get 방식 : url 뒤에 ?파라미터값 붙음 ⚡ 타이틀* step1.html 고객명 : SMS 수신동의(선택) 이벤트 수신동의 카카오톡 푸시알림 🔽* step2.html- decodeURIComponent(값) : 파라미터에 한글을 가져올시 깨지므로 decode로 출력  ( decodeURIComponent  : js / decodeURI : es ) - getElementsByName : name은 기본이 원시배열 형태를 구성함 ex) abc[0].value 고객명 : SMS 수신 여부 : N 이벤.. 2024. 5. 30.
#3-2 / 암호화(security) base64 암호화 함수- 암호화를 이용하여 사용자가 입력한 값을 다른 문자로 변환 가능하며 복구화 가능- 결제금액 등 보안이 약해도 되는 항목에 적용 - 개인정보에선 사용하지 x (복구화가 가능하기 때문에) window.btoa(값); : 사용자가 입력한 값을 base64 암호화window.atob(값); : base64 암호화한 값을 원래 단어로 복원한글 : window.btoa(encodeURIComponent(값));⚡ javascript 암호화 (base64) 비밀번호 : 고객명 :  ⚡java 암호화 (base64)- 모든 암호화는 byte로 변환이 되어서 사용해야함base64 encode 사용법 : 문자를 byte로 변환 후 해당 byte를 라이브러리를 통하여 암호.. 2024. 5. 30.
#3-1 / form 예제 MVC: Module(class) , View(JSP) , Controller(Servlet)⚡ SPA 로그인 - 일반회원,사업자 : 해당 조건 외에는 로그인 실패하는 프로세서 제작radio,checkbox name이 동일한 경우 java에서 배열로 사용ex) 2개 => part[0],part[1]!! radio,checkbox onclick="함수명(this.value)" 활용시 해당 value값 인자로 전달 !! good* html 일반 회원 사업자 회원 * java servlete 파일 - Controller(servlete) 담당public class loginok extends HttpServ.. 2024. 5. 30.
#9 / html include (by php) * 실제 도메인이 작동되야만 먹힘 ( 로컬에서는 x ) 2024. 5. 30.
SPA / MPA SPA(Single Page Aplication) - 페이지를 이동하지 않고 한 페이지 내에서 컨텐츠가 변경되는 방식- 모든 페이지에 적용x , 특정페이지에만 적용하는 경우가 많다=> 장점 : 로딩없이 페이지 전환 가능 ex) Layer(BlackScreen - modal창) 이용 - 일반회원/사업자회원(회원가입,로그인) , 인증창 MPA(Multiple Page Aplication)- 레이아웃 각각 뜯어서 조립?해서 제작하는 방식(include) MVC : Module(class) , View(JSP) , Controller(Servlet)- 코드량이 줄어듬 - 예제 : https://dev-eunse.tistory.com/110 2024. 5. 30.
#2-4 / double form 👀 한 페이지에 form 두가지 형태로 구성되었을 경우 1.각 form 안에 input type hidden으로 넣어 구분하는 방법(파라미터 x) 2. action에 파라미터값을 이용하여 구분하는 방법 (get + post 방식)action="./userinfo.do?part=1"action="./userinfo.do?part=2" => java에 doGet,doPost 둘다 사용 (Service) Service doGet,doPost 모두 통신ㅇ르 받을 수 있는 전용 메소드 Front에서 form과 action에 모두 값을 적용하여 보낼 경우 get,post 모두 필요하므로 해당 상황에 활용단, 한글이 깨질 수 있으므로 encoding 필수  3. action에 각각의 다른java 파일을 별도로 분리.. 2024. 5. 29.
#2-3 / html 태그별 데이터 전송 ⚡ select, date, color 통신사 : 통신사를 선택하세요 SKT KT LGT 알뜰폰 예약 일자 및 시간 : 색상 선택 :  public class htmlcode_ok extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); request.se.. 2024. 5. 29.
#2-2 / 검색에 따른 get 전송방식 ⚡ get방식- 2가지 방식!form에 method에 get 입력 후 전송하는 방식form 전송 없이 location.href - 파라미터명,data값 이용하여 전송 검색어를 입력하세요 : --> 검색어를 입력하세요 :  public class searchok extends HttpServlet { private static final long serialVersionUID = 1L; PrintWriter pw = null; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("te.. 2024. 5. 29.
#2-1 / checkbox 및 라디오 핸들링 ❗ checkbox 는 기본적으로 value값을 적용하게 되어있음해당 값이 없을 경우 - null로 적용되며 해당 파라미터를 처음부터 변수선언 시 조건문에 error가 발생함또한 equals라는 메소드 사용면 문제 발생함=> 체크박스(checked 안되어있고) 체크 안할시 null값 들어옴 - 핸들링 불가 (checkbox만 !)     프론트에서 아무리 input type checkbox value값을 변경해줘도 체크가 되어잇지 않으면 뭐가됐는 걍 null로 들어옴      equals 도 절대 X ❗ radio 처리방식 : 무조건 데이터가 전송됨 (on / off 형태로 출력 - 중복 name값 사용하므로 value 무조건 사용)   - intert() 사용시 연산기호 가능 ⚡ checkbox 자.. 2024. 5. 29.
#1-2 / Front form태그 + servlet ✅ servlet -  데이터를 주고 받는 방식user 사용자가 url 입력🔽web Abache web.xml🔽html or jsp or .do 사용자가 정보 입력🔽form or afjax (with front)1. Form or ajax 데이터 전송 방식2. Post,Get,Put,Delete,...  3. name값 통일화 or 파라미터명 조율4. javascript 전송🔽web.xml 작동🔽java 핸들링(Servlet + Class + Abascact...등)  ◀-▶  Database🔽결과출력  doPost : 프론트에서 request로 날라옴 (문자로)⚡ html + javaweb.xml.html 명칭과는 무관 /프론트가 html- form action에 url-pattern만 잘 .. 2024. 5. 28.
#1-1 / Servlet start,setting JAVA -> OOP -> I/O -> Network -> Network(Servlet) Network(Servlet)에디터에 Java Web Develper가 있어야 돌아감  👀 servlet sts setting (기존 workspace가 잇엇다면 new workspace 변경) 1. preferences 세팅encoding 먼저 변경 - content types 의 text 안에있는거 싹다 바꿔줘야함intall/update updates - Autometic updates 체크박스 해제java copiler,installed jres 버전 맞추기  2. 서버 생성Apache Tomcat v8.5 , jre jdk-11 3. dinamic web project 생성target rundime :  A.. 2024. 5. 28.
#18-2 / Thread를 이용한 멀티 서버 ⚡ TCP 멀티서버public class multi_server { public static void main(String[] args) { new server_port(); }}//멀티 포트 설정class server_port { /* -싱글포트로 한다면? int port = 9001; server_open so = new server_open(port); //배열의 포트번호 so.start(); */ /*멀티포트*/ public server_port() { int port[] = {9001,9002,9003}; //원시배열 사용 - 해당 포트를 다 열어버리겠다 int w=0; while(w ⚡ Thread를 이용한 clientpublic class.. 2024. 5. 27.
#18-1 / 서버 - UDP UDP : 내부 포트 UDP와 TCP는 따로 놈❗ 서버 관련 변수는 모두 private 으로 선언 하는게 좋음 : 중간에 채갈 수 있음 ex) UDP Server(UDP 5000) Client(UDP 5000) -> 그다음 접속자는 UDP 5001, UDP 5002.... (가상포트)만약 client가 UDP 5000번을 이미 사용하고 있는경우 접속이 되지 않음- 포트 하나개로 여러개를 사용 할 수있음- 한개의 포트를 열어서 여러개의 가상포트와 통신을 할 수 있는 구조- 보안상 연결을 체크 할 수 있음- 자신의 포트가 열려있는지 아닌지를 체크해서 서버로 넘겨야함(보안 good)- 가상포트는 자동생성- 역추적 가능- packet 필요 TCP ( https://dev-eunse.tistory.com/94 .. 2024. 5. 27.
#17 / remind3 ⚡ abstract/* [응용문제 1] 추상클래스 응용 - ex_ab.java 해당 프로세서를 실행시 현재 날짜와 시간이 출력되는 코드를 작성하시오. 단, 해당 날짜와 시간은 abstract에서 return 받아서 출력되도록 합니다. 결과 : 2024-05-24 09:45:22 */public class exam20 { public static void main(String[] args) { new ex20_box(); }}class ex20_box extends ex_ab{ public ex20_box() { System.out.println(this.ex20_abs("yyyy-MM-dd hh:mm:ss")); System.out.println(this.ex20_abs("yyyy-MM-dd"));.. 2024. 5. 24.
#16-2 / 서버 - TCP 해당 기능 제작시 무조건 서버 먼저 제작 -> 클라이언트 제작해야함 1. s : 내 서버 구축(port번호 정해서 socket open -> cmd로 열렸나 확인)2. c :  client에서 접근 : Socket sk = new Socket(ip,port);3. c : OutputStream os = sk.getOutputStream : 클라이언트 -> 서버로 전송하는 역할 4. s : InputStream is = sk.getInputStream : 클라이언트에서 적용된 메세지를 받는 역할   ⚡ 네트워크 url 정보 현황해당 페이지 크롤링 되어서 html파일 생성public static void main(String[] args) { String url = "https://nain.co.. 2024. 5. 23.
#16-1 / network 🔥 [ 알아야함 ]ip or 도메인주소Port 정보 포트 중복사용 불가 - 단, TCP와 UDP가 구분될 경우 가능(cmd로 열려있는지 닫혀있는지 확인 netstat -an)TCP : 외부 연결 프로토콜 (전송속도 빠름)UDP : 내부 연결 프로토콜 (전송속도 느리나 1:1일 경우 TCP보다 빠름)[ network ]예외처리 필수Inet4Address,Inet6Address : ipv4,ipv6 ( InetAddress : 부모 , 무조건 엄마먼저 써야함) -> new 안씀⚡ ip 확인//getByName : 접속할 도메인 또는 ip 주소명 출력 InetAddress ia = Inet4Address.getByName("localhost");System.out.println(ia); //localhost/12.. 2024. 5. 23.
#15-3 / csv 데이터 저장 ❗ csv 파일은 UTF-8 언어셋을 사용하지 않음 : EUC-KR로 변환 필요   txt 파일 문서파일 외에 한글 깨짐이 발생할 경우 FileWriter(파일경로,언어셋,이어쓰기여부)❗ csv 특성  : , 로 구분함 ⚡ csv 데이터 추가//csv 데이터 저장public class file20 { public static void main(String[] args) { new file_csv("member.csv"); //,쉼표 형태 csv여야 함 }}//writer로 csv파일에 사용자 추가class file_csv{ String file_src = ""; //파일 위치 및 파일명 File f = null; FileWriter fw = null; BufferedWriter bw = null; p.. 2024. 5. 22.