본문 바로가기

전체 글152

백준알고리즘 11654번 아스키 코드 11654번 아스키 코드는 주어진 글자를 아스키 코드 값으로 출력하는 문제입니다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String inputText = scanner.next(); // 2개 문자 입력한 경우 종료 if (inputText.length() > 2) { return; } // String -> char로 값의 자료형 변경 char ch = inputText.charAt(0); System.out.println((int) ch); scanner.close(); } } 2019. 4. 15.
Effective Java 아이템 18. 상속보다는 컴포지션을 사용하라 Effective Java 3판을 학습하며 요약한 내용입니다. 자세한 내용은 책을 참고해주시기 바랍니다. 상속은 코드를 재사용하는 강력한 수단이지만 항상 최선의 방법은 아니다. 잘못 사용하게 되면 오류를 범하기 쉽다. 여기에서 말하는 상속은 "클래스가 다른 클래스를 확장(extends)하는" 구현 상속을 말한다. 클래스가 인터페이스를 구현하거나 또는 인터페이스가 또 다른 인터페이스를 확장하는 상속과는 무관하다. 상속을 이용하면 캡슐화 원칙을 위반하게 된다. 하위 클래스는 상위 클래스를 확장 했기 때문에 상위 클래스의 구현에 의존적일 수 밖에 없다. 따라서 상위 클래스 변화에 따라 하위 클래스도 발맞춰 변경 해야 한다. 그리고 다음 릴리스에서 상위 클래스에 새로운 메서드가 추가 되면, 하위 클래스는 추가된.. 2019. 4. 14.
Effective Java 아이템 17. 변경 가능성을 최소화하라 Effective Java 3판을 학습하며 요약한 내용입니다. 자세한 내용은 책을 참고해주시기 바랍니다. 불변 클래스 인스터스의 내부 값을 수정할 수 없는 클래스를 불변 클래스라고 말한다. 불변 인스턴스는 처음 생성될 때 주어진 정보를 간직하고 객체가 파괴되는 순간까지 유지한다. 불변 클래스는 가변 클래스보다 구현 및 사용하기가 쉬우며, 오류가 발생할 여지도 적고 안전하다. 가변 클래스의 경우에는 인스턴스를 생성하고 나서 중간에 값이 변경될 수 있고, 이를 알아채지 못하면 오류를 발생하는 코드를 작성하기 쉽다. 클래스를 불변으로 만드는 규칙 5가지 객체의 상태를 변경하는 메서드를 제공하지 않는다. 클래스를 확장할 수 없도록 한다. 모든 필드를 final로 선언한다. 모든 필드를 private으로 선언한다.. 2019. 4. 14.
“” 또는 생성자를 사용하여 Java String 문자열 생성 이 글은 programcreek 사이트 튜토리얼을 번역한 자료입니다. 원문은 https://www.programcreek.com/2014/03/create-java-string-by-double-quotes-vs-by-constructor/ 에서 확인할 수 있습니다. “” 또는 생성자를 사용하여 Java String 문자열 생성 Java에서는 String을 두 가지 방법으로 생성할 수 있다. String s1 = "Hello, lelecoder"; String s2 = new String("Hello, lelecoder"); “”(큰 따옴표)를 사용하는 것과 생성자를 사용하는 것의 차이점은 무엇일까요? 1. “”(큰 따옴표) vs 생성자 이 질문은 두 가지 간단한 예제를 통해 대답 할 수 있습니다. Ex.. 2019. 4. 14.
Oracle 현재 접속한 세션 정보 조회 SELECT SID, SERIAL# FROM V$SESSION WHERE AUDSID = SYS_CONTEXT('USERENV', 'SESSIONID'); 2019. 4. 14.
Effective Java 아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 Effective Java 3판을 학습하며 요약한 내용입니다. 자세한 내용은 책을 참고해주시기 바랍니다. class Point { public double x; public double y; } Point 클래스는 데이터 필드에 직접 접근할 수 있다. 이러한 클래스를 만들면, 객체 지향에서 캡슐화 장점을 사용할 수 없다. 또한, 불변 클래스를 만들 수 없다. Point 클래스의 접근 제한자는 package-private이기 때문에 패키지 내부에서만 사용할 수 있다. 이러한 클래스를 보면 필드를 모두 private을 변경하고, setter 또는 getter 접근자를 추가하고 싶어할 것이다. Point 클래스에 접근자를 추가하고 필드는 각 접근자 메서드를 통해 접근할 수 있도록 변경한 코드이다. class .. 2019. 4. 14.
티베로 데이터베이스 버전 확인 티베로 데이터베이스 버전 정보를 얻으려면, 아래 쿼리를 수행하면 된다. SELECT * FROM vt_version; 2019. 4. 12.
티베로 테이블스페이스(Tablespace) 조회 테이블스페이스 테이블스페이스는 논리적 영역과 물리적 영역에 공통적으로 포함된다. 논리적 영역에는 티베로 데이터베이스의 모든 데이터가 저장되며, 물리적 저장 영역에는 데이퍼 파일 하나 이상이 저장된다. 테이블스페이스 유형 테이블스페이스는 생성되는 유형에 따라 시스템 테이블스페이스(System Tablespace)와 비시스템 테이블스페이스(Non System Tablespace)로 구분된다. 시스템 테이블스페이스는 데이터베이스가 생성될 때, 자동으로 생성되는 테이블스페이스이다. 비시스템 테이블스페이스는 일반 사용자가 생성한 테이블스페이스이다. 테이블스페이스 목록 조회 사용자 권한에 따라 아래 뷰를 통해 테이블스페이스 정보를 조회할 수 있다. DBA_TABLESPACES : 티베로 데이터베이스 내 모든 테이블.. 2019. 4. 12.
Oracle SQL 문장에서 에러 위치 값 찾기 Oracle 데이터베이스 SQL 문장에서 에러가 발생한 위치를 찾기 위해서는 PL/SQL 코드를 실행 시켜야 한다. declare error_sql varchar(1000); -- SQL 문장 담을 변수 error_pos number default -1; -- 에러 위치 값을 담을 변수 vc_cur integer default dbms_sql.open_cursor; -- 커서 열기 begin -- 테스트 대상 SQL 문장 error_sql := 'select * from dual where name = jayden-lee'; begin dbms_sql.parse( vc_cur, error_sql, dbms_sql.native ); -- 파싱 exception when others then error_po.. 2019. 4. 12.