본문 바로가기
IT 공부/넥사크로

실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터(2)

by 해모해모 2023. 2. 19.
728x90
반응형

섹션0. 개발 환경 세팅 필기

DB를 쉽게 이해하는 방법!

신 = SYS 계정
DB = 지구
테이블 스페이스 = 국가
스키마(=USER, 사용자) = 사람(MAN)
권한 = 생명력

1. oracle 설치
1-1. 설치 확인, 권한 설정

2. DBeaver 설치(SQL Plus 말고 쉽게 DB 보고 쿼리를 쉽게 작성하게 해주는 도구)
2-2. 테이블, 컬럼 생성

3. eclipse 설치
3-1. Maven>Archetypes>Add Remote Catalog 해주기
3-2. Maven 프로젝트 만들기(버전 중요)
3-3. pom.xml 추가/수정하기
3-4. context-datasource.xml 추가/수정하기

4. 톰캣 설치
4-1. 서버 Timeout, 모듈 변경

5. 넥사크로 설치
5-1. 오픈 프로젝트로 이클립스랑 연결해주기(xprj 파일)
5-2. Tools>Project>General 경로 바꿔주기
5-2. Tools>Generate 경로 바꿔주기
5-3. Generate>Application해서 한번 싹 업데이트 해주기
5-4. Launch 해보기

6. 최종 점검하기
6-1. 테스트 소스 넣고 다 리프레쉬 해 준 다음에 넥사크로에서 실행한 뒤 헬스체크테스트
6-2. 근데 404 오류 발생 > 잘 실행은 됐지만 라이센스 이슈로 발생한 것
6-3. 라이센스 xml 파일을 워크스페이스 폴더 내에 넣어주고 서버 재기동 후 테스트 완료

투비소프트가 사이트 리뉴얼을 한 모양이다. 라이센스 발급때문에 이리저리 서치하다가 결국 찾아냈다.

 

 넥사크로 체험판 라이센스 발급 url
https://www.tobesoft.com/product/nexacro

 

투비소프트

DEV.TOOL 비즈니스용 UI·UX 개발 소프트웨어의 공급부터 안정적 구축, 유지보수 수행까지 기업을 위한 서비스를 제공합니다.

www.tobesoft.com

 

섹션 1도 오늘 야무지게 수강했음! 정말 알짜배기 팁들이 너무 많아서 좋았다...

강사님이 현직자여서 그런지 진심 그냥 사수한테 교육받는 기분이 들었다...

이런 기분 느끼기 쉽지 않은데 빨리 내일 출근해서 개발 슬슬 시작하고 싶은 마음이다 ㅎ..

 

섹션1. Oracle SQL 필기


[테이블 생성]
- Comment on 명령어로 테이블-컬럼에 대한 정보를 써 줘야 나중에 유지보수에 용이하다(알아보기 쉬움)

나름 SQLD 자격증도 있는데,,, 이거 처음봤음,,, 알짜팁 감사합니다...


[시퀀스 생성]
- INSERT하기 직전에 SELECT MAX(ORD_NO) + 1 FROM TB_ORD; 이런 식으로 채번을 해주는데, 이는 동시성 제어 X인 단점이 있다.
- 예를 들어, A,B가 동시에 주문등록 버튼을 클릭했을 떄, 동시게 SELECT 채번을 하면 똑같은 채번값을 받게 되고, ERROR가 발생된다.
- 사실 지금 하고 있는 프로젝트의 ASIS 도 이런 식으로 채번돼서 가끔 오류가 발생한다는 얘기를 들은 적이 있다.

- 오라클 시퀀스는 중복되지 않도록 동시성 제어를 해준다.
- 동시에 클릭하더라도 A는1 B는2를 부여받는다.
- 시작값, 증가값, 최대-최소값, 사이클(최대값까지 다 돌면 다시 1로 돌아갈 수 있게 해주는 것)이런 것들을 지정해줄 수 있다.

[인덱스 생성]
- 1~500페이지까지 있을 때, 300번 페이지를 찾고 싶으면 처음부터 다 읽어서 300페이지를 찾아야 하는데
- 인덱스가 1~99, 100~199 … 500으로 있으면 바로 300번을 찾아갈 수 있음
- 주문번호(ORD_NO) : 1234
SELECT * FROM TB_ORD WHERE ORD_NO = '1234';

[FUNCTION 생성] *PLSQL은 sql 파일에서는 안만들어지는 듯!
- SELECT * FROM TB_CD_MST;
- 사용자들이 보는 전산 화면에서는 코드들을 보여주면 알까?
- 절대 모름
- 우리는 이 코드들을 변환해서 NM 명칭 이름으로 사용자들에게 보여줘야 된다.
- FUNCTION => 치환 목적으로 사용
- 공통코드 테이블에서 코드값을 활용해 명칭을 받아내는 함수를 만드는 것 => 나도 공통코드 테이블에서 명칭 받아와야 하는게 있는데 이걸 쓸 수 있는건지 모르겠다. FUNCTION이 정의되어 있는지 출근해서 확인해봐야겠다^^..
- 스키마->MAN->Functions에서 우클릭하고 FUNCTION기능으로 만들어 준 다음에 코드를 작성해야 만들 수 있다. 저장하면 바로 컴파일이 된다.(컴파일 단축키 : ctrl+F9)

[PROCEDURE 생성] *PLSQL은 sql 파일에서는 안만들어지는 듯!
- 여러 개의 쿼리를 한번에 수행하거나 할 때 사용하는 듯?
- IN : 입력받는 매개변수
- OUT : 출력받는 매개변수
- □□□TYPE : □□□타입을 따라간다.
- 얘도 FUNCTION 처럼 우클릭 하고 PROCEDURE 기능으로 만들어줘야 한다.
- 얘는 실행할 때 SELECT FROM 이런게 아니라 DECLARE문으로 실행을 시켜줘야 한다.
- 값이 있으면 그 값을 바꿔주고, 값이 없으면 INSERT한다. 신기하다..
- OUT 변수가 없으면 
CALL 프로시저 이름(매개변수)
이렇게 써주면 실행된다. => OUT 변수 유무에 따라서 실행 쿼리가 달라진다.

[MERGE문]
- 실무에서 엄청 자주 쓰는 쿼리임!
- 특정 조건에 맞다면 INSERT, 맞지 않다면 UPDATE하는 기능을 제공
- 프로시저를 만들어서 진행을 해도 되는데, 필요할 때마다 프로시저를 만들기는 번거롭기 때문에 사용한다.
- 쿼리로 PLSQL 기능을 사용할 수 있다.

[GROUP BY 활용하기]
- 세상 개발자 중에 안쓰는 사람이 없다는 구문임!
- 상황극을 활용하여 적용해서 써보기
- GROUP BY, ORDER BY, JOIN, HAVING, 서브쿼리(+심플하게 KEEP DENSE_RANK)

[JOIN문]
- INNER JOIN이라 쓰고 JOIN이라 읽는다. 교집합을 보고 싶을 때 사용
- 표현방식1) SELECT FROM INNER JOIN ON
- 표현방식2) SELECT FROM T1,T2 WHERE

- LEFT JOIN(=LEFT OUTER JOIN, = (+))
- 표현방식1) SELECT FROM LEFT JOIN ON
- 표현방식2) SELECT FROM LEFT OUTER JOIN ON
- 표현방식3) SELECT FROM T1,T2 WHERE = (+)

- FULL OUTER JOIN(=합집합)
- 표현방식1) SELECT FROM FULL OUTER JOIN ON
- 표현방식 X) (+)이거 두개 써준다 이런건 없음, 위에 것만 사용

[INSERT SELECT 문]
- 요건 이해가 조금 안된다. 분석 좀만 더해봐야지

[TIMESTAMP]
- 죽음에서 살린 쿼리...!
- 잘못된 쿼리를 수행하기 직전으로 원복시킬 수 있다!
- DELETE FROM TB_ITEM; (삭제해버리기..!)
- 1분전으로 원복하기  
INSERT INTO TB_ITEM
SELECT * 
FROM TB_ITEM AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '1000' MINUTE);
- MERGE문과 INSERT SELECT문으로도 사용할 수 있음!

 

내일 퇴근하고 와서 섹션 2 들어야지~ 너무 재미써 ㅎㅎㅎ

 

출처 : https://kitdow.tistory.com/31

728x90
반응형

댓글