2020.2.4 구글 크롬(Google Chrome) 80버전으로 업데이트되면서 크롬에 새로운 쿠키 정책이 적용되었다. 내용은 Cookie의 SameSite 속성의 기본 값이 "None"에서 "Lax"로 보안등급을 상향 조절하는 것이다. 구글 Chrome SameSite 이슈에 대하여 SameSite 속성의 기본 값이 "None"에서 "Lax"로 변경되면 각종 문제가 일어날 수 있습니다. 사용자가 사이트를 이용하다가 갑자기 쿠키가 날아가는 경우가 생길 수 있다는 점입니다. 대표적인 예가 로그인 정보입니다. 많은 웹사이트들이 로그인을 한 후 Cookies를 사용해 유저의 신원을 확인하여 페이지를 전환해도 재인증을 하지 않아도 되도록 하고 있습니다. 하지만 SameSite 이슈로 인해 이 쿠키값을 찾지 못한..
파티션 테이블에는 일반적인 테이블에서 사용하는 인덱스로는 사용이 힘듭니다. 파티션 테이블의 특성상 새로운 세그먼트를 계속해서 생성하여 테이블을 계속 나뉘어야 하지만 인덱스는 나눌 수가 없기 때문입니다. 그렇다면 파티션 테이블에는 인덱스를 어떻게 걸어야 할까요? 파티션 테이블에는 다른 방식으로 인덱스를 걸어주어야 합니다. 오라클에는 파티션 테이블에 인덱스를 거는 두 가지 방식이 있습니다. 바로 로컬 인덱스와 글로벌 인덱스입니다. 로컬 인덱스와 글로벌 인덱스 한 파티션에서 조회하는 액세스 패스는 Local 인덱스를 사용하도록 함 운용측면에서 Global Index보다는 Local Index 사용이 권장 Table Partition Key를 Index로 설정할 경우 Local Prefixed Index를 사용..
파티션 테이블이란? 데이터베이스 테이블의 데이터들이 너무 많아서 어떤 데이터를 조회하려고 할 때 시간이 너무 많이 소요된다면 어떻게 해야 할까요? 이것을 개선할 수 있는 많은 방법이 있겠지만 파티션 테이블로 만드는 방법도 좋은 방법이 될 수 있습니다. 파티션 테이블은 논리적으로는 하나의 테이블이지만 물리적으로는 여러 개의 파티션으로 나뉘어 데이터들이 각각의 세그먼트에 저장되는 테이블이라고 생각하시면 됩니다. 파티션 테이블에는 Pruning이라는 기능이 있어서 특정 데이터를 조회를 할 때 그 데이터가 속해있는 세그먼트만 빠르게 조회할 수 있는 기능이 있습니다. 이 뿐만이 아니라 파티션 테이블은 논리적으로는 하나의 테이블이기 때문에 조회 쿼리문을 특별하게 지정해 줄 필요는 없지만 데이터들이 물리적으로 다른 ..
안녕하세요 코딩팩토리입니다. 와디즈에서 티스토리를 주제로 펀딩을 오픈하게 되어 홍보차 이 글을 작성합니다. 리워드는 전자책과 강의 두 가지 카테고리로 구성되어 있습니다. 강의는 너무 많은 사람들이 몰리면 부담스럽지만 이왕이면 책은 많이 팔렸으면 좋겠습니다. 전자책만큼은 정말 정성껏 만들었습니다. 작년 6월부터 매일 퇴근 후 저녁, 그리고 주말 집 앞에 있는 카페를 매일 드나들며 책의 퀄리티를 높이기 위해 노력하였습니다. 책을 작성하며 남들은 어떻게 전자책을 작성했는지 궁금하여 크몽에서 팔리고 있는 전자책도 몇 권 사보았으나 후기가 좋은 책들도 제가 보기에는 제 책의 퀄리티가 훨씬 높다고 생각하고 더 나아가 제가 만든 이 책이 지금까지 시중에 풀려있는 그 어떤 전자책보다도 정보의 질과 양 모두 최고라고 확..
이번 포스팅에서는 제가 생각하는 자바의 장점과 자바를 왜 배워야 하는지에 대해서 말해보려 합니다. 저의 시각에서 작성된 글이니 가볍게 읽어주시면 감사하겠습니다. 국내 프로그래밍 언어의 점유율 부동의 1등을 지키고 있는 것은 Java입니다. 그렇다면 왜 이렇게 국내에서는 Java의 점유율이 높을까요? 자바는 어떻게 대세가 되었나 자바는 썬 마이크로시스템즈 1995년 5월 23일 발표된 프로그래밍 언어입니다. 지금은 자바와 비슷한 개념을 가지고 있는 언어들이 많지만 최소한 1995년 출시될 그 시절 자바는 획기적인 언어임에는 분명합니다. 자바가 처음에 출시될 때 걸었던 슬로건은 "한 번 프로그래밍한 것은 어떤 플랫폼에서도 실행된다."입니다. 저는 솔직히 이것이 큰 장점이라고는 생각이 들지 않으나 C/C++ ..
자바(Java) 환경변수 설정 이유 환경 변수란 윈도우 운영체제에서 사용하는 설정 정보가 담겨있는 변수입니다. 윈도우에서 명령 프롬프트 (cmd)로 파일을 찾거나 실행을 시킬 때 현재 위치에 파일이 존재하지 않으면 위와 같이 "내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다." 라는 에러가 발생하며 실행하려는 파일이 존재하는 위치로 이동해야만 합니다. 하지만 자바 실행파일의 경로가 환경변수 path에 제대로 세팅되어 있다면 어느 곳에서 나 jdk의 bin에 있는 프로그램들을 실행시킬 수 있습니다. 즉 자바를 설치한 후 환경변수를 설정해줘야 하는 이유는 운영체제 어디에서든지 자바를 인식할 수 있도록 하는 것이 목적입니다. 특히 jdk bin폴더에 있는 javac 컴파일러의 경우..
자바에서 컴파일이라고 생각하시면 이클립스와 같은 IDE를 활용하여 컴파일하는 것만 있는 것은 아니고 jdk의 javac 컴파일러를 활용하여 cmd 창으로 직접 컴파일을 진행하실 수도 있습니다. 이번 포스팅에서는 cmd 명령 프롬프트를 활용하여 jdk에 내장되어있는 javac 컴파일러를 통해 컴파일을 하는 방법에 대해 포스팅해보도록 하겠습니다. javac 명령어를 활용하여 자바(.java) 파일 컴파일하기 1. 메모장등을 활용하여 컴파일하고자 하는 자바(. java) 파일을 생성합니다. 저는 메모장으로 위와 같이 하나 만들어봤습니다. 2. cmd 명령 프롬프트창을 켠 후 cd [자바 파일이 있는 위치]로 이동합니다. 3. javac 파일명.java 명령어를 입력하여 컴파일합니다. ※ 만약 이 과정에서 ja..
자바를 빌드하게 되면 클래스(class) 파일이 생성됩니다. 이 클래스 파일은 같은 Java 소스여도 JDK 버전에 따라 다르게 작성될 수 있는데요. 만약 실행하는 JVM이 지원하지 못하는 java class version을 로드하려고 할 경우 java.lang.UnsupportedClassVersionError 에러가 발생할 수 있습니다. 이처럼 빌드된 클래스 파일의 버전과 실행할 JVM의 버전이 다르면 에러가 날 수 있기 때문에 서로 맞춰주시는 것이 좋습니다. jdk의 bin폴더 안에 있는 javap를 사용하시면 버전을 확인하실 수 있습니다. 클래스 파일 버전 확인하는 방법 1. 버전을 확인하고 싶은 class 파일이 있는 경로를 복사합니다. 2. cmd(명령 프롬프트) 창을 연 뒤 cd 명령어를 사..
자바로 작성되어있는 .java 파일은 javac 컴파일러로 빌드하면 바이트코드인 .class 클래스 파일이 생성됩니다. 이 과정을 통해 생성되는 클래스 파일은 JVM에서만 해석할 수 있는 코드들로 작성되어 있어 해석을 하기 위해서는 .class 클래스 파일을 .java 자바 파일로 바꿔주는 디컴파일 과정이 필요합니다. 이번 포스팅에서는 자바 클래스 파일을 자바 파일로 디컴파일을 해주는 사이트를 소개하고자 합니다. 자바 클래스(.class)파일 디컴파일 사이트(javadecompilers) http://www.javadecompilers.com/ Java decompiler online www.javadecompilers.com 1. 위에 링크되어있는 Java decompiler 사이트에 접속합니다. 2...
이클립스에서 자바 설정이 제대로 되지 않으면 위와 같이 Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor 에러가 날 수 있습니다. 이클립스에서 JRE System Library가 제대로 인식되지 않아 생기는 오류입니다. Implicit super constructor Object() is undefined for default constructor. Must define an explicit constructor 오류 해결방법 1. 문제가 되는 프로젝트를 우클릭한 뒤 Build Path -> Configure Build Path... 을 클릭합니다. 2. 좌측..
이클립스 자주 사용하는 단축키 주석 Ctrl + Shift + / : 블록을 주석으로 처리 (/* */) Ctrl + Shift + \ : 블록 주석을 해제 Ctrl + / : 한줄 or 블록 주석 처리 / 해제 (//) 검색 Ctrl + F : 키워드 검색 (해당 소스에서만) Ctrl + H : 키워드 검색 (프로젝트 전체에서) Ctrl + Shift + R : 전체 리소스에서 파일 찾기 Ctrl + Shift + T : Jar 포함 클래스 찾기 Ctrl + Alt + H : 특정 클래스 호출 위치 찾기 Ctrl + K : 찾을 문자열을 블럭으로 지정하고 검색 Ctrl + Shift + K : 밑에서 문자열 검색 위치 이동 Ctrl + 특정 클래스 마우스 왼쪽 클릭(F3) : 특정 클래스로 이동 Ctr..
이클립스로 개발을 하다 보면 디컴파일러 세팅이 안되어있어 라이브러리의 jar파일안에 .class파일들의 내용을 확인해야 할 경우가 종종 있는데 .class파일들이 바이너리화 되어있어 위와 같이 "Source not found"라는 메시지와 함께 안의 내용을 확인하지 못하는 경우들이 있습니다. 이때 이클립스에 디컴파일러를 설치하여 .class 파일을 .java 파일로 역컴파일 하여 내용을 확인할 수 있습니다. 이번 포스팅에서는 이클립스에서 디컴파일러를 수동 설치하는 방법에 대해 알아보도록 하겠습니다. 이클립스(Eclipse) 디컴파일러(Decompile) 설치 및 사용법 1. Eclipse에서 상단바의 Help -> Eclipse Marketplace를 클릭합니다. 2. Decompiler 키워드로 검색하..
자바로 작성되어있는 .java 파일을 컴파일하게 되면 바이트코드인 .class 클래스 파일이 생성됩니다. 이렇게 생성된 class 파일을 열면 JVM에서만 해석할 수 있는 알 수 없는 코드들로 작성되어 있어 개발자 입장에서는 알아볼 수가 없는데요. 그렇기 때문에 class 파일의 내용을 확인하기 위해서는 class 파일을 다시 java 파일로 바꿔주는 디컴파일 과정이 필요합니다. 자바 디컴파일러 JD-GUI 다운로드 & 사용법 JD-GUI는 현재 가장 널리 사용되는 자바 디컴파일러로 가벼우면서도 강력한 기능을 가지고 있습니다. 배포파일의 class 파일 확인이나, 라이브러리 jar파일 안에 있는 파일들의 코드를 확인하고 싶을 때 유용하게 사용됩니다. 1. 아래 링크된 사이트에 들어간 뒤 JD-GUI의 D..