본문 바로가기

전체 글106

[Oracle] 쿼리로 코드를 줄여보자! GROUP BY 함수 with ROLLUP, CUBE 연산자 ROLLUP 연산자로 부서별 연봉 합계 구하기 SELECT deptno, job, sum(sal) FROM emp GROUP BY ROLLUP (deptno, job); CUBE 연산자로 직무별 연봉 합계 구하기 SELECT deptno, job, sum(sal) FROM emp GROUP BY CUBE (deptno, job); 2019. 12. 24.
[SQL] varchar, char 성능 상의 차이점 varchar 가변길이 → 실제 문자 값만 저장 char 고정길이 → 선언한 문자열 자릿수로 저장 SQL에서 문자열 데이터 타입에는 varchar, char 두 가지가 있다. DB를 설계할 때 둘 중 어떤 것을 써야할지 고민할 때가 있다. 메모리 상의 문제가 없다고 무조건 varchar를 쓰는게 맞는 것인가? Q) 실제 성능 상에서는 어떤 차이가 있을까? DB의 구조를 알아보자. DB는 Block > Extent > Segment > Table Space로 이루어져 있다. 메모리 상으로는 varchar 타입이 우수한 것을 볼 수 있다. aaa → bbbbbb로 데이터의 변경이 일어났다. char는 입력이 허용되는 길이까지만 데이터를 받지만, 가변인 varchar의 경우 Block을 추가로 생성하기 때문에.. 2019. 12. 23.
[SQL] 유용한 sqlpus 편집 명령어 A[PPEND] test C[HANGE] / old / new C[HANGE] / text / CL[EAR] BUFF[ER] DEL DEL n DEL m n I[NPUT] I[NPUT] text L[IST] L[IST] n L[IST] m n RUN n n text 2019. 12. 23.
[Oracle] DB 연동 시 host, port 번호 조회 및 원격 접속하기 (window - oracle 12g 기준) 1. host, port 번호 조회 oracle db가 설치되어있는 폴더를 찾아 위의 경로로 따라 들어간다. tnsnames.ora 파일을 찾았다면 열어본다. 여기에 DB 주소가 저장되어 있다. 2. 원격 접속하기 - listner.ora : 내가 서버이고 다른 클라이언트가 나에게 접속하려고 할 때 - tnsname.ora : 내가 클라이언트이고 다른 서버로 접속하고자 할 때 상황에 따라 각각의 파일에 ip, port, service name을 알맞게 수정한다. tnsping [service name] sqlplus [user name]/[password]@[service name] ex) tnsping corcl sqlplus scott/tiger@corcl.. 2019. 12. 23.
[Oracle] sqlplus 화면 크기 관련 명령어 linesize, pagesize 위와 같이 줄이 더럽게 나올때 정리할 수 있는 명령어가 있다. SET LINESIZE 200; pagesize도 위와 같이 사용하면 된다. 2019. 12. 23.
[Spring] 하나의 requestMapping으로 여러개의 request 받기 스프링의 컨트롤러 단에서 구현부가 동일하거나 거의 유사한 requestMapping을 여러 개 만들어야 하는 상황이 발생한다. 이때 중복코드를 줄이기 위해 하나의 requestMapping에서 여러 요청을 처리하는 방법이 있다. 1. 먼저 요청을 병렬로 받는다. @RequestMapping(value = {"/boardUpdateForm", "/boardDelete"}) cs 2. 그리고 아래 문법을 사용하면 요청이 들어오는 url을 뽑아주므로 처리와 return을 다르게 하고 중복코드를 줄일 수 있다. (String)request.getAttribute(HandlerMapping.PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE); cs 3. 예시는 다음과 같다. @RequestMap.. 2019. 12. 20.
SVN repository 생성 및 커밋하기 1. Eclipse MarketPlace -> Subclipse 설치하기 2. SVN Repository 탭이 생긴 것을 확인할 수 있음. 여기에서 우클릭 -> New -> Repository Location -> Url 입력 3. Repository 생성 확인 4. Package Explorer -> 커밋 할 프로젝트 우클릭 -> Team -> Share Project -> SVN -> 커밋 할 Repository Click -> Commit Comment 작성 5. 완료 ★★★커밋하기 전에는 SVN Synchronize 탭에 있음★★★ 2019. 12. 16.
[SpringBoot] No embedded stylesheet instruction for file 해결 방법 (out.xml 파일이 자동으로 생성되면서 서버가 켜지지 않음) [ 문제 ] 스프링 부트 프로젝트를 실행할 때 첨보는 에러 발생. 에러 메세지의 경로로 들어가보니 out.xml 파일이 자동으로 생성되어 있었음. 삭제해도 서버를 실행하면 좀비처럼 다시 생긴다. eclipse tab에서 xml 파일이 열려있기 때문에 xml을 실행하려고 해서 문제가 발생한 것. [ 해결 ] out.xml 삭제 project clean tab에서 xml 파일을 모두 닫고 실행할 .java 파일만 남겨둔 채로 서버를 실행했더니 해결 되었음. 도움 받은 곳: https://stackoverflow.com/questions/7980037/why-out-xml-file-is-created 2019. 11. 18.
[Javascript] 내장 함수(inner function)를 활용한 동적인 DOM 구현 자바스크립트로 코딩을 하다보면 모르는 상태로 일단 쓰다가 나중에 개념을 알게 되는 경우가 많은 것 같다. 그 중 하나인 내장 함수의 개념을 먼저 코드로 정리해보자면 이렇다. function outer(){ var introduce="My "; inner1(); inner2(); function inner1(){ introduce += "name is "; return introduce; } function inner2(){ introduce += "Gomak"; return introduce; } console.log(introduce); } - 자바스크립트에서는 함수 안에 또 다른 함수, 즉 inner function을 여러 개 정의할 수 있다. - 각각의 inner function에서는 outer f.. 2019. 9. 2.