본문 바로가기

CLASS265

#QR 세팅 방법 !Maven Repository -> 두 개 복사    -> build.gradle에 추가   🔽  -> 컨트롤러 내용- qr_pi.javapackage kr.co.kim.qr;import java.io.ByteArrayOutputStream;import org.springframework.http.MediaType;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import com.google.zxing.BarcodeFormat;import c.. 2024. 10. 21.
MongoDB 👀MongoDBRDBMS 아님 ( NoSql 임 )mongoDB, Redis .. => 이둘의 차이?      Redis : 채팅,영상 스티리밍 서비스,게임,금융,의료,IoT..등 프로젝트에 사용,더 빠름 (단일코어, 단일 스레드 사용) ,                   메모리 저장 (데이터 저장)     mongoDB : 모바일 , 웹 어플리케이션 ,로그관리,IoT..등 프로젝트에 사용                        멀티스레드 사용 (스레드 줄이면 빠르게 사용 가능하긴 함) , 디스크 저장 (데이터 저장)              MongoDb (port : 27017) , Redis(port : 6379)  👀Install https://www.mongodb.com/try/downloa.. 2024. 10. 17.
postgresql port : 5432https://www.enterprisedb.com/downloads/postgres-postgresql-downloads설치 ㅎ    👀 postgresqlroot사용자 : postgres 👀 명령어\l : 데이터베이스 리스트 확인 (== show databases;)psql -U postgres  => 최고 관리자로 로그인creat database test => test라는 database 생성\c 데이터베이스명 : 해당 데이터베이스 진입 (== use 데이터베이스명;)select,insert는 mysql이랑 똑가틈 자동증가값 사용하려면 create SEQUENCE shop_no; 머 이렇게 해줘야함 (oracle처럼 시퀀스 따로 만들어줘야함)  👀 사용자 추가  및 권한\c.. 2024. 10. 14.
database 보안.. [서버 해킹 위험 방지]1. root패스워드 a123456 하지말기% 하지 말기 -외부접근 안되도록 설정해야함 ! (localhost만 적용) 2. use mysql;select * from user;사용자 리스트 중에서 미확인 생성자가 있을 경우 삭제 2024. 10. 14.
Google cloud-2 cloud에선 useradd로 추가 x  메타데이터 - SSH추가 - key 입력 방식으로 추가 ===> putty에서 사용자 추가되어있다 (key파일 저장 필수) root에서chmod 715 shopping  : 퍼미션 변경 (cd /home/ 퍼미션 변경 주의 세번째 w가 들어가면 안댐 .. ㅜㅠ)yum install bind-utils     :  nslookupnslookup 후 도메인.~~.com 나왔을때 잘 떠야함 (해당 ip에 도메인 등록) ==> 만든 사용자(shopping)로 접속cd /home/shoppingmkdir html  : html이라는 디렉토리 생성vi index.html : html 디렉토리 안에 index.html 파일 생성편집기로 안에 암거나 쓰고 wq함 => root로.. 2024. 10. 11.
Google cloud-1 aws cpu memory 부족 구글클라우드 docker (X) 1. CentOs92. Ngnix3. MariaDB or Mysql4. 가상 사용자 2명 : 개인 프로젝트 사용자 / 팀 프로젝트 사용자5. Domain  인스턴스 만들기 저거 누르면 크롬에서 터미널 켜짐..!  sudo -s ( root 로 들어가서 )yum update (옛날 버전은 보안이 약함!! update 필수)  푸티 홈페이지 들어가서 요거 다운key 둘다 저장 꼭 해놓아야함   진짜 putty로 ip, ssh key (ppk 파일) 로 접속 후  sudo -s vi /etc/selinux/configSELINUX=disabled 로 변경 setenforce 0 후  init 6으로  재부팅 => 다시 푸티 접속 sestatus .. 2024. 10. 10.
정리 - docker + oracle https://github.com/orgs/oracle/repositories?q=docker  oracle docker에 설치 시 여기서 하면 굉쟝히 빠르다 오라클 포트번호는 1521 putty root로 접속 1. 저기 위 링크에서 맞는버전 찾아서 Dockerfile.xe 우클릭 링크복사 (우린 18.4.0 햇음)    Dockerfile.xe : Oracle rpm file을 이용하여 Docker 컨테이너를 생성하여 만들 수 있는 파일 - oracle에서 제공한 파일2.  cd /home/down/ 여기에 설치3. wget 해당링크 복붙 (wget : 외부링크 다운로드 )  4. oracle같은 버전으로 오라클 공홈에서 linux 다운로드 버튼 우클릭 -> 복붙    https://download... 2024. 9. 30.
정리-front에서 db를 활용하는 경우 👀front에서 db를 활용한 경우 Front-end 에서 database에 값을 저장 => database 접속 => 값을 이용하여 저장한 경우 나중에 공부해보삼https://developer.mozilla.org/ko/docs/Web/API/IndexedDB_API/Using_IndexedDB 🔽 2024. 9. 30.
AJAX 정리-2 (javascript,ECMA,jquery,axios / async~await) jquery 엔진 가져옴https://www.jsdelivr.com/package/npm/axios 여기서 axios 가져옴 - ajax.htmlJavascript - AJAX데이터값 : ECMA - AJAX데이터값 : Jquery - AJAX데이터값 : Axios - AJAX데이터값 : html은 동일axos 원래 npm으로 설치    👀 ①. javascript   - ajax.js/* javascript ajax 통신 */function js_ajax(){ var datainfo = document.getElementById("test").value; var send_data = {name : "datainfo"}; var ajax = new XMLHttpRequest(); ajax.onread.. 2024. 9. 27.
AJAX 정리-1 👀 Front-end (송신 - 파일,배열,문자,숫자 => 수신)XMLhttprequest $.ajax(jquery) - $.get (ajax의 get), $.post(ajax의 post)fetch (ES, Vue, React)axios (Post,Get....) 👀 Back-end (Rest API 구축 , 수신 => 재송신) REST annotation @RestController - class에 사용하여 Controller 명시@Responsebody - jsp view에 전달되는 사항이 아니며 , data 자체를 송신 시 사용@PathVariable - url 경로에 대한 파라미터 값을 추출시 사용@CrossOrigin - CORS 문제 해결@RequestBody - JSON 데이터를 원하는 .. 2024. 9. 27.
#5-1 / websocket 통신... socketFront ( 가 어려움... ㅎ ), Back  new Websocket : 소켓 라이브러리를 인스턴스로 신규 오픈=> socket.io 대체 가능 (양방향 통신을 사용하는 서버를 구축하는 형태 )     Client(1) Client(2) ===> 이 2개가 socket.io에 접속 => connect() => back으로 전송 => back에서 각 Client로 return      터미널로 실행..;;; (node.js에 npm으로 설치해야함)    👀 타이틀  dependencies { //socket - 요거 추가 implementation 'org.springframework.boot:spring-boot-starter-websocket' } - index.html .. 2024. 9. 26.
AWS-1 AWS  NAVERGoogle 👀 클라우드 서버 관련 상식VPC or VPN IPv4 or IPv6네트워크 보안 장비(T1, T2, T3, T4, E1, E2, E3) EC2 - Web ServerCDN - File Server (컨텐츠 전송 전용 서비스 - 무조건 유료임ㅋ)EC2에 만드는게 아니고 별도로 만들어야 함aws 공홈에서 무료 계정 생성 🔽 카드등록까지 다 해야함 🔽root 로그인 후 EC2 검색해서 들어간 후 인스터스 생성 🔽애플리케이션 및 OS 이미지(Amazon Machine Image)centos9 로 해볼거임 -  검색 - 지금 구독하기 🔽 인스턴스 유형 t3.small 함  🔽키페어 생성파일이 다운받아짐 - > 보관 잘할것 !   🔽 네트워크 설정퍼블릭 ip 자동 할당 .. 2024. 9. 25.
react 배포 npm끄고npm run build refresh - > build폴더 생성build하위에 있는걸 resource/static으로 이동 하면 원래 내 포트에서 작업 가능합니다 👀 2024. 9. 20.
#3-1 / React 문법 (조건문 ,반복문,배열) 🤷‍♂️❓ 알아두쇼 - 함수 종류일반함수, 선언적 함수 , 익명함수, 대입형함수 => hoisting, arguments,즉시실행함수, 화살표함수, 명명함수, return함수중첩함수 , callback함수 , 로드함수 , 전역함수(eval)   👀 조건문 , 반복문  - App.jsimport './App.css';import { Route,Routes } from 'react-router-dom'; //페이지 분리import {Login} from "./Login";import {Main} from "./Main"import {Top} from "./Top" //하단 페이지import {Footer} from "./Footer" //하단 페이지import {Oop} from './Oop'; // 요.. 2024. 9. 13.
#2-3 / React - 회원가입 리스트 및 페이징,검색 (data select) 👀 oracle임  - App.js ()import {List} from './List'; }>//요거 추가  - List.jsimport React,{ useEffect, useRef, useState } from 'react';//API에서 보내준 회원전체 리스트 출력 파트export let List = function (){ var [colno,colnumber] = useState('6'); var [pgno,pgnonum] = useState('1'); var [total,totalno] = useState(''); var [listdata,listarray] = useState(''); var [sp, spno] = useState(false); //검색 활성화 및 비활성화 var uri.. 2024. 9. 13.
#2-2 / React - 회원가입 (data insert , React + 주소 api) 👀 put + oracle  / React + 주소 api-App.jsjoin 추가import React,{} from 'react'import { Route, Routes } from 'react-router-dom'import Idcheck from './Idcheck' //상대경로 => src의 실제 js파일 찾을 때 사용(.js 작성 안해도 됨)import { Join } from './Join' // //export하기 위한 함수function App(){ return( }> }> );}export default App; - join.jsimport React, { useState } from 'react';import { useDaumPostcodePopup } from 'rea.. 2024. 9. 10.
#2-1 / React - Web SPA 응용 : 아이디 중복체크 fetch (useEffect, useState) react router 설치 D:\springboot2\bootspring\src\main\webapp\shop npm install react-router-dom ✅ 알아두쇼App.js는 하나만 있어야 함!~react안에는 jsp,jstl 코드는 사용 불가! (html 형태에만 가능)ES14 => 15  암호화 기능 추가 (특수문자 형태로)원자 (waitSync) -> 다중 스레드[A,B] => [A~B]  계산 가능[A&&B] : 교집합[A - [0-9]] : 중첩데이터 확인 ex) 023459034 -> 259..... 등ㅎLinux에 설치 세팅Linux 서버 -> nodejs 설치 => Linux 사용자 디렉토리 => React npx 설치 => npm Router 설치1. yum install .. 2024. 9. 10.
#1-3 / STS React Setting 👀 STS에 세팅 방식(D:\react_web에 받을거임)webapp 에 shop 폴더 생성함해당폴더 우클릭 properties에서 경로 찾아서 cmd로 들어가세욘D:\springboot2\bootspring\src\main\webapp> npx create-react-app shop   바로위 상위폴더에서 받아야함cd shop : shop 안으로 들어가서 npm start  => 3000번 , 8080번 포트 따로 놈해당 폴더에 에러떠도 신경쓰지말고 STS 업데이트 끝나면 gradle refreshrestapi.java (class) 생성 - 하단 참고package.jspn { }에 해당 코드 추가"proxy" : "http://localhost:8080", : 교차 연결 restapi.javapac.. 2024. 9. 9.
#1-2 / React Router,Link 로그인  => CRA동작로그인 => SPA동작  👀 Router, Link  BrowerRouter메인 ,서브페이지 등 SPA 형태로 구성.html 한개만 있고, js가 계속 바뀌는 형태 - index.jsimport React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App';import { BrowserRouter } from 'react-router-dom'; //router 라이브러리const root = ReactDOM.createRoot(document.getElementById('root'));root.render( );   - App.jsimpor.. 2024. 9. 9.
#1-1 / React Setting Framework - Anguler, React, Vue + Ajax정적 웹사이트 -> 동적 웹사이트랜더링 기반의 웹 구조HTML 코드 => DOM(javascript) CDN, CLI CDN : 웹 엔진을 적용해서  HTML 코드와 결합  - web 위주 / ex) jquery.jsCLI : Node 엔진을 적용해서 HTML 코드와 결합  - App, Web-spaReact + RestAPI => ReactJsNodeJS : 16.x or 18.x 버전 많이 씀npm : 6.x , 7.x ~ 8.x npm or npx 설치 명령어npm : PC에 패키지 젼역으로 설치npx : PC에 패키지 없이 설치 setting  (만약 java 프로젝트에 설치하고싶으면  webapp 폴더에 해야함 - 우린 vsco.. 2024. 9. 9.
Oracle 정리 [Oracle] - Container 기준 CDB - Oracle의 큰 운영체제 Database => Database를 구성 Seed(씨앗)라는 Database를 이용해서 PDB를 활용함 [관리자] system 사용자 => sysoper (DB-startup, close, backup, recover, mount) sys 사용자  => sysdba (오라클의 모든 권한을 갖는 관리자) show pdbs;   => 가상의 Database 리스트를 확인하는 명령어 select name from v$pdbs; => show pdbs 동일하게 리스트를 확인 show con_name; => 컨테이너 네임을 출력하는 명령어 ※ cmd로 접속시 sys는 sysdba 또는 sysoper로 접속을 해야하며, 해당 설정은.. 2024. 9. 6.
#6-3/ Oracle+mybatis - selectone/like 사용하는 방식 👀 검색기능 : like 사용  - customer_dto.javapackage kr.co.sen;import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class customer_dto { Integer c_idx; String c_id,c_name,c_hp,c_email,c_tel,c_post; String c_road,c_address,c_level,c_area,c_join;}   - mapper.xml select * from customer where c_name like '%'||#{c_name}||'%' order by c_idx desc=> ⭐ Oracle 에서는 mybatis에서 like 사용시 || 와 함께 사용         .. 2024. 9. 6.
#6-2/ Oracle - sequence reset, ROW_NUMBER(),view+join ❗ 시퀀스 증가값 확인select LAST_NUMBER from user_sequences where SEQUENCE_NAME='시퀀스 이름'; ❗ 시퀀스 0으로 돌리기alter SEQUENCE CNO INCREMENT BY -시퀀스 증가값 확인한 값+1;  ❗ [고유 row를 확인하는 방법 ]sequence 는 data 삭제햇다 다시 insert하면 마지막 번호부터 다시 시작함  => 불러온 data 목록 아예 1부터 먹여지는 기능 oracle에는 있음!!!  - 고유 row       게시판 번호먹일때 유용할듯  ❗ [limit 사용법]  - oracle에응 limit이라는 명령어 없음    => BETWEEN을 이용하여 설정        select * from (select ROWNUM NUM, .. 2024. 9. 6.
#6-1 / Oracle - data 미러링 , table 제작 상세내역 확인 , trigger create SEQUENCE cno start with 1 INCREMENT BY 1 MAXVALUE 9999 CYCLE NOCYCLE;-> sequence 는 nocycle로 만들어주는게 좋다 ㅎ//고객 테이블 create table customer( c_idx number(4) not null, c_id nvarchar2(30) not null, c_name nchar(10) not null, c_hp nvarchar2(11) not null, c_email nvarchar2(50) not null, c_tel nvarchar2(13) null, c_post char(5) not null, c_road nvarchar2(200) not null, c_address nvarchar2(100) not n.. 2024. 9. 6.
#5-1 / Oracle - Excel 파일 data입력 , 파일로 저장 엑셀 데이터 .xlsx 파일로 내보냄   요렇게 table 생성create sequence cmsno start with 1 increment by 1 MAXVALUE 999999;create table cms(cidx number(6) not null,cid nvarchar2(10) not null,cname nchar(10) not null,cmanager nchar(20) not null,cate nchar(40) constraint cate check('취업','성적','직장','대인'),cmsdate date not null,cprocess nchar(1) not null,ctext nclob null,indate timestamp not null, primary key(cidx));//날짜 -.. 2024. 9. 5.
#4-4 / Oracle + Mybatis 로그인 👀 타이틀  - login.jsp 아이디 : 패스워드 : 로그인   - member_repo.java  (interface) @Mapperpublic interface member_repo { //회원가입 public int join(member_dto mdto); //로그인 //member_dto mdto = void logins(member_dto mdto); => 둘다 써도됨 public List logins(member_dto mdto); }   - mapper.xmlselect * from member where mid='#{mid}';  - member_service.java   (interface) package kr.co.sen;import java.util.List;publ.. 2024. 9. 4.
#4-3 / Oracle + Mybatis 회원가입 # 서버 자동 재시작server.servlet.jsp.init-parameters.development=true    👀 sts에  oracle  연결 후 실제 data 받아서 저장해보기  - member_dto.java package kr.co.sen;import org.springframework.stereotype.Repository;import lombok.Data;@Data@Repository("member_dto")public class member_dto { Integer midx,mage; String mid,mpass,mname,mtel,memail,mgender;}   - wepapp/join.jsp 아이디 : 패스워드 : 고객명 : 전화번호 : 이메일 : 나이 : 성별 :.. 2024. 9. 4.
#4-2 / Oracle 실제 테이블에 commit ❗ 터미널 접속시sqlplus hana/hana1234@localhost:1521/xepdb1  👀 실제 테이블에 commit ❗  select * from member;  시sqldevelper에서는 보이는데 터미널, sts에선 안보임 🔽commit;얘를 해줘야 실제 테이블에 들어감!!!  ==>  commit 하니까 실제 table에 확인 되네욤 ※ 보안 때문에 sts에서는 [ desc table명 ]  이 불가능함~  터미널에선 가능ㅎ   👀 view table 생성똑같음 ㅋ create view member_view as select * from... 2024. 9. 4.
#4-1 / Oracle sts 연결 👀 sts4 data Resource Explorer setting ⭐ localhost:1521/xepdb1   => 각각의 가상 컨테이너가 작동하면서  DB가 셋팅되어있음   localhost:1521:xepdb1   => PDB안에 xepdb1이 포함되어서 DB가 셋팅되어있음 ( 하나가 죽으면 다 죽어서 실무에선 이걸 사용하지 않음  )  1. resource Explerer open 2. 일단 요렇게 하고 ping fail 떠도 finish   3. 요기 들어가서 4.:  제거후 test 해보면 됩니당 5. ===>   :  아니고 / 임 !!!  6. //얘도 수정해야함 !! / 주의 public class dbinfo { // ㅇㅅaㅇ public static Connection geti.. 2024. 9. 3.
#3-2/ Oracle data복구 👀 data backup D:\ 에 backup 폴더 생성함도구 -> 데이터 익스포트 - 완료🔽   👀 data 복구 => sql파일은 요 방식으로 불가능  그냥 파일 -> 열기 -> 해당파일 열어서 -> 전체 드래그 해서 명령문 실행 하면 table 생김 2024. 9. 3.