올해 크리스마스에는 여자친구와 함께 거대한 크리스마스 트리를 보며 크리스마스 마켓에서 같이 쇼핑하는 낭만을 느끼고 싶었다. 마침 잠실 롯데월드몰에서 대형 트리와 크리스마스 마켓을 준비했다고 해서 가보기로 했다. 크리스마스 당일에 갔으면 더 좋았겠지만, 사람이 너무 많고 마켓을 못들어갈 수도 있겠다는 생각에 미리 다녀오기로 했다(사실 더현대를 가려고 했는데 더현대는 사람이 너무 많아서 사진도 못찍을 정도라고 하기에 포기했다..). 트리가 진짜 크긴 엄청 컸다. 이때가 오후 4시쯤이라 아직 밝았는데 사람이 꽤 많아서 좀 놀랐다. 더 어두워지면 더 이쁠 것 같아서 일단 간단하게 끼니를 해결하고 오기로 했다. 저녁으로는 간단하게 팬케이크를 먹었다. 제철과일이 토핑으로 올라가있는 메뉴였는데, 과일도 신선하고 팬케..
전체 글
여행, 일상,IT 이야기를 가볍게 풀어갑니다. 잘못된 정보 지적은 항상 감사히 듣겠습니다. 찾아와주셔서 감사드립니다.concat() concat() 함수는 데이터프레임을 이어붙일 때 사용하는 함수이다. 인자로 다음과 같은 파라미터를 받는다. pd.concat(objects, axis=0, join=outer, ignore_index=False) objects에는 병합할 데이터 프레임을 리스트형태로 묶어서 전달해주면 된다. axis는 어떤 방향을 기준으로 병합할지 선언한다. 0이면 행, 1이면 열을 기준으로 병합하고, 비선언 시 디폴트 값으로 0이 들어간다. join은 어느 데이터 프레임을 기준으로 병합할 지 선택한다. left, outer 값을 줄 수 있으며, 비선언 시 디폴트 값으로 outer가 들어간다. ignore_index는 기존 index를 무시하고 병합한 데이터 프레임을 기준으로 index 값을 새로 지정한..
GROUPING() 함수는 SELECT 절에서 사용하는 함수이다. GROUPING() 함수의 인자로 그룹핑 대상인 컬럼을 지정하면 해당 컬럼이 NULL일 때 1, NOT NULL일 때 2를 반환하는 함수이다. SELECT B.DNAME , A.JOB , SUM(A.SAL) , GROUPING(B.DNAME) AS GP1 , GROUPING(A.JOB) AS GP2 FROM EMP A , DEPT B WHERE A.DEPTNO = B.DEPTNO GROUP BY ROLLUP(B.DNAME, A.JOB) ORDER BY 1,2 ; 이를 CASE-WHEN 절과 함께 활용하면 NULL 값을 소계, 총계 등으로 지정할 수 있다. SELECT CASE WHEN T.GP1 = 1 THEN '총계' ELSE T.DNA..
CUBE() 함수는 인자로 받는 컬럼으로 만들 수 있는 모든 조합으로 집계하여 추출하는 함수이다. 위와 같은 결과를 얻으려면, 다음과 같이 작성할 수 있다. SELECT B.DNAME , SUM(A.SAL) FROM EMP A , DEPT B WHERE A.DEPTNO = B.DEPTNO GROUP BY CUBE(B.DNAME) ORDER BY 1 ; 얼핏보면 ROLLUP() 함수와 다를 거 없는 함수처럼 보이지만, CUBE() 함수는 받는 인자가 많아질수록 조합이 다양해져 출력하는 결과가 훨씬 많아진다. SELECT B.DNAME , A.JOB , SUM(A.SAL) FROM EMP A , DEPT B WHERE A.DEPTNO = B.DEPTNO GROUP BY CUBE(B.DNAME, A.JOB) ..
GROUPING SETS() 함수는 이전 포스팅에서 다뤘던 ROLLUP()과 마찬가지로 GROUP BY 절에서 사용하는 함수이며, 인자로 받는 컬럼 별 집계함수 값을 리턴하는 함수이다. 위와 같은 결과를 얻고 싶을 때, GROUPING SETS 함수를 활용하면 다음과 같이 짤 수 있다. SELECT B.DNAME , SUM(A.SAL) FROM EMP A , DEPT B WHERE A.DEPTNO = B.DEPTNO GROUP BY GROUPING SETS(B.DNAME) ORDER BY 1 ; 근데 뭔가 이상하지 않은가? 위와 같은 결과를 더 쉽게 추출하는 방법을 우리는 알고 있다. SELECT B.DNAME , SUM(A.SAL) FROM EMP A , DEPT B WHERE A.DEPTNO = B...
일상적인 업무에서 쿼리를 짜다 보면, 합계를 구하고 싶을 때가 정말 많다. 예시로 DEPT 테이블의 부서명 컬럼을 기준으로 해당 부서에 속한 사원들의 총 급여를 구하려면 쿼리를 어떻게 짜야할까? 확장 GROUP 함수를 모른다면, 다음과 같이 작성했을 것이다. SELECT B.DNAME , SUM(A.SAL) FROM EMP A , DEPT B WHERE A.DEPTNO = B.DEPTNO GROUP BY B.DNAME UNION ALL SELECT NULL , SUM(A.SAL) FROM EMP A ORDER BY 1 ; 위 방식이 틀렸다는 것은 아니다. 하지만 확장 GROUP 함수를 쓴다면 다음처럼 간략하게 표현 가능하다. SELECT B.DNAME , SUM(A.SAL) FROM EMP A , DEP..
설정하고자하는 프로젝트 경로 내 .settings 폴더로 이동C:\SEED128\SEED128\.settings만약 해당 폴더가 보이지 않는다면, 숨김처리 되어 있을 수도 있으니 보기 - 표시 - 숨긴 항목 체크 해주면 된다.그 중 org.eclipse.wst.common.project.facet.core.xml 파일을 열어준다. 이 부분이 해당 프로젝트에 설정된 web module version이니 해당 버전과 같은 버전으로 설정해주면 된다. 이클립스에서 다른 버전으로 바꾸고 싶은데 안바뀔 때도 해당 파일에서 강제로 버전을 바꾸고 싶은 버전으로 바꿔주면 된다. 만약 위 파일이 수정되지 않는다면, 메모장을 작업관리자 모드로 열고 파일 열기로 해당 파일을 열어 수정하고 저장하면 된다.
우체국 Open API를 호출할 때, 암호화된 변수로 넘겨야 리턴을 받을 수 있어서 암호화/복호화 화면을 띄워놓고 테스트하는 것이 정신 건강에 이롭다. 구글링해보면 전부 php로만 만들어서 쓰고 있는데, java가 훨씬 익숙해서 java 버전으로 세팅해서 쓰고 있다. 가장 먼저 필요한 건 eclipse, jre, tomcat이 깔려있어야 한다. 현재 자신이 사용하는 환경에 맞게 적당한 버전을 사용하면 될 것 같다. 해당 포스팅은 위 나열된 IDE 및 java의 기초 세팅(시스템 변수 설정 등)이 되어있다는 전제 하에 진행된다.필자가 사용한 버전Eclipse : 2020-06 (4.16.0) JRE : jre1.8.0_231Tomcat : apache-tomcat-8.5.40 우체국 API 사용 안..
[Python] 빅데이터 분석 기초 - 필터링 (Filtering) [Python] 빅데이터 분석 기초 - 인덱싱 (Indexing) 방대한 양의 데이터를 분석할 때 필요한 데이터만 추출하기 위해선 별도의 인덱싱이 필요하다. 필수적인 과정은 아니지만 데이터 시각화를 진행할 xl-shine.tistory.com [Python] 빅데이터 분석 기초 - 인덱싱 (Indexing) [Python] 빅데이터 분석 기초 - 필터링 (Filtering) [Python] 빅데이터 분석 기초 - 인덱싱 (Indexing) 방대한 양의 데이터를 분석할 때 필요한 데이터만 추출하기 위해선 별도의 인덱싱이 필요하다. 필수적 xl-shine.tistory.com 인덱싱 된 데이터를 보기 편하게, 혹은 의도하는 수치를 보여주기 ..
[Python] 빅데이터 분석 기초 - 집계 (Aggregation) [Python] 빅데이터 분석 기초 - 인덱싱 (Indexing) 방대한 양의 데이터를 분석할 때 필요한 데이터만 추출하기 위해선 별도의 인덱싱이 필요하다. 필수적인 과정은 아니지만 데이터 시각화를 진행할 xl-shine.tistory.com [Python] 빅데이터 분석 기초 - 인덱싱 (Indexing) [Python] 빅데이터 분석 기초 - 필터링 (Filtering) [Python] 빅데이터 분석 기초 - 인덱싱 (Indexing) 방대한 양의 데이터를 분석할 때 필요한 데이터만 추출하기 위해선 별도의 인덱싱이 필요하다. 필수적 xl-shine.tistory.com 수월한 인덱싱을 위해 특정 데이터를 따로 추출하는 선행 작업이 ..