본문 바로가기

전체 글152

티베로 데이터베이스 설치 시 "Boot the server as NOMOUNT" 에러 Tibero 설치 시 "Boot the server as NOMOUNT" 부분에서 설치 작업이 실패를 하는 경우가 있습니다. 이유로는 처음 데모라이센스 발급 신청 부분에서 작성한 Host Name 값 때문입니다. 이 Host Name에는 Tibero 데이터베이스를 설치할 컴퓨터의 Host Name을 입력하셔야 합니다. 윈도우의 경우에는 CMD 창에서 hostname 명령어를 쳐서 나온 결과값을 입력해주시면 됩니다. Host Name을 수정하고 다시 라이센스 발급을 신청하고 나서 설치 작업을 진행 하면, 실패 없이 정상적으로 설치 되는 것을 확인할 수 있습니다. 2019. 4. 23.
Spring Boot에서 JSP 사용하기 기존 Spring Framework에서는 웹 애플리케이션을 구성할 때, View 영역에 JSP를 많이 사용했었다. Spring Boot에서는 View 영역 관련하여 내용을 찾으면 JSP를 사용하는 것보다 Thymeleaf, FreeMarker 등을 사용한 예제를 더 많이 접했을 것입니다. Spring Boot에서는 공식 문서에도 나와 있듯이 JSP를 사용하는 것을 권하지 않고 다른 템플릿 엔진을 추천하고 있다. 그렇더라도 JSP를 사용하고 싶다면 어떻게 설정해야 하는지 궁금할 것입니다. 그래서 이번 글에서는 Spring Boot에서 JSP를 사용하는 예제에 대해 살펴보겠습니다. Spring Boot 프로젝트 생성 Spring Boot 프로젝트를 생성하셨다면 이 단계를 건너뛰셔도 됩니다. Spring Bo.. 2019. 4. 22.
블록체인에서 자주 언급되는 머클 트리(Merkle Tree)는 무엇인가? 머클 트리(Merkle Tree) 블록체인에서 이루어지는 모든 거래내역은 블록에 저장됩니다. 이렇게 계속 저장을 하게 되면 데이터의 양이 기하급수적으로 증가하게 된다. 이로 인해 비트코인은 머클 트리(Merkle Tree)를 사용하여 저장소 크기를 줄입니다. 그렇다면 머클 트리를 이용해서 어떻게 저장소 크기를 줄일까요? 먼저, 블록에 대해 간단하게 알아보구 저장소 크기를 줄이는 방법에 대해 알아보겠습니다. 아래 이미지는 블록체인에서 사용되는 블록에 대해 간단하게 표시한 것입니다. 블록의 헤더에는 이전 블록에 대한 해쉬 값, 다음 블록 해쉬 값, 넌스, 머클 트리 루트 해쉬 값 등이 있습니다. 블록의 바디에는 트랜잭션 정보가 있습니다. 머클 트리 루트는 이번 글에서 알아보고자 한 머클 트리에서 가장 꼭대기.. 2019. 4. 22.
자바에서 OS에 맞게 줄바꿈(newline) 처리 방법 자바에서 OS에 따라 줄바꿈 문자를 처리한다면, 아래 코드를 이용해서 newline 문자열을 가져와서 사용해야 한다. String newline = System.getProperty("line.separator"); // Java 1.7+ String newline = System.lineSeparator(); 윈도우와 리눅스에서 줄바꿈(newline) 문자 윈도우 : \r\n 리눅스 : \n 2019. 4. 22.
Java 리스트(List) 컬렉션 종류 ArrayList, Vector, LinkedList List 컬렉션의 종류로는 ArrayList, Vector, LinkedList가 있다. 애플리케이션 개발 업무를 하면서 List 컬렉션을 많이 사용한다. 특히 ArrayList를 많이 사용하고, 가끔 Queue 자료구조를 사용할 때만 LinkedList를 사용했다. List 컬렉션 List 컬렉션은 객체를 일렬로 늘어놓은 구조로 이루어져 있다. 객체를 인덱스로 관리하기 때문에 List 컬렉션에 객체를 추가하면 자동 인덱스가 부여된다. 인덱스는 객체를 검색, 삭제할 때 사용한다. List 컬렉션은 객체 자체를 저장하는 것이 아닌 객체의 번지를 참조한다. 동일한 객체를 저장하는 것을 허락(이 점은 Set 인터페이스와 다른점)하는데, 이 경우에는 동일한 객체의 번지를 참조한다. 그리고 null도 저장할 수 .. 2019. 4. 22.
H2 암호화 데이터베이스 연결하기 데이터베이스 파일 암호화 H2는 데이터베이스 파일을 암호화 할 수 있는 기능을 제공한다. 암호화 알고리즘은 총 3가지이다. AES : also known as Rijndael, only AES-128 is implemented. XTEA : the 32 round version. FOG : pseudo-encryption only useful for hiding data from a text editor. 데이터베이스 파일 암호화를 사용하기 위해서는 데이터베이스에 연결할 때, 암호화 알고리즘 설정과 파일 암호를 지정해야 한다. 암호화 된 데이터베이스 생성 URL에 지정한 데이터베이스가 없으면 기본적으로 자동으로 데이터베이스를 새로 생성한다. 암호화 된 데이터베이스를 생성하기 위해서는 이미 로컬에 존재하는.. 2019. 4. 22.
백준알고리즘 1094번 막대기 1094번 막대기 문제는 알고리즘 유형이 수학 또는 시뮬레이션에 해당하는 문제입니다. import java.util.Scanner; /** * 막대기 문제 * 알고리즘 유형 : 수학, 시뮬레이션 * * @author jayden-lee */ public class Main { // 처음 막대 크기 private static int bar_length = 64; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // Xcm 막대 크기 int x = scanner.nextInt(); // 막대 개수 int bar_count = 0; while (x > 0) { if (bar_length > x) { bar_le.. 2019. 4. 22.
티베로 제약조건(Constraints) 정보 조회 티베로 데이터베이스에서 테이블 제약조건 정보를 조회하기 위해서는 다음 뷰를 사용해야 한다. DBA_CONSTRAINTS, ALL_CONSTRAINTS, USER_CONSTRAINTS 뷰 중 하나를 선택해서 조회하면, 테이블에 대한 제약조건 정보를 얻을 수 있다. 제약조건 정보를 제공하는 뷰 DBA_CONSTRAINTS : DBA 권한이 있는 사용자만 사용 가능. 티베로 데이터베이스 내 모든 제약 조건 정보를 조회하는 뷰 ALL_CONSTRAINTS : 사용자가 접근 가능한 제약조건 정보를 조회하는 뷰 USER_CONSTRAINTS : 현재 사용자가 속한 제약조건 정보만 조회하는 뷰 SELECT owner, constraint_name, constraint_type, table_name, search_co.. 2019. 4. 22.
MySQL ERROR 1217 (23000) Cannot delete or update a parent row: a foreign key constraint fails MySQL 데이터베이스에서 특정 테이블을 삭제할 때, "Cannot delete or update a parent row: a foreign key constraint fails" 에러 메시지가 표시 되었다는 것은 삭제하려는 테이블에 외래키가 설정되어 있다는 것이다. 아래처럼 FOREIGN_KEY_CHECKS 값을 0으로 변경한 뒤, 테이블 삭제(DROP 또는 TRUNCATE) 명령어를 실행하면 된다. 작업을 모두 수행하고 나면, FOREIGN_KEY_CHECKS 값을 다시 1로 변경한다. SET FOREIGN_KEY_CHECKS = 0; DROP TABLE_NAME; SET FOREIGN_KEY_CHECKS = 1; 2019. 4. 22.