Techvu

    자바 버전별 역사 및 특징

    자바 버전별 역사 및 특징 JDK 1.0a2 1995년 5월 23일 발표. 자바 언어 자체가 정식으로 발표된 날 이때의 명칭은 Oak JDK 1.0 1996년 1월 23일 발표 1.0.2 버전에서 이름이 Java 로 변경 JDK 1.1 1997년 2월 19일 발표 Inner Class, JavaBeans, RMI, Reflection, Calendar 유니코드 지원 등이 추가되었다. What is Java Beans 자바로 작성된 소프트웨어 컴포넌트를 지칭 Beans 규약 기본 생성자가 반드시 존재해야 한다. 모든 속성은 비공개이다. 속성에 접근하고 꺼내올 수 있는 getter, setter 메서드를 구성한다. Serializable 을 구현한다. What is RMI(Remote Method Invoc..

    다양한 자바 플랫폼(SE/EE/ME)

    다양한 자바 플랫폼 자바는 특정 구문과 스타일을 가진 고급 객체 지향 언어이다. 자바 플랫폼이란 자바 언어로 작성된 프로그램이 실행되는 특정한 환경을 의미한다. 자바는 총 4가지 플랫폼을 제공한다. Java SE(Standard Edition) Java EE(Enterprise Edition) Java ME(Micro Edition) Java FX 모든 자바 플랫폼은 JVM 과 API 로 구성된다. API 는 다른 소프트웨어 구성 요소 또는 응용 프로그램을 만드는 데 사용할 수 있는 소프트웨어 구성 요소 모음이다. Java SE Java SE(Standard Edition)는 Java 프로그래밍 언어의 핵심 기능을 제공한다. Java 프로그래밍 언어의 기본 유형 및 개체에서 네트워킹, 보안, 데이터베이스..

    [BOJ 18353] 병사 배치하기

    병사 배치하기 BOJ 18353 : 병사 배치하기 해설 이 문제는 최장 증가 부분 수열(LIS) 문제로, 부분 수열에 대한 개념과 LIS 알고리즘 풀이 방법을 모른다면 링크를 통해 배우도록 하자. ✔ 병사를 배치할 때, 앞쪽에 있는 병사의 전투력이 항상 뒤쪽보다 높아야 한다. ✔ 즉, 최종 결과 안에 전투력이 중복된 병사가 존재하면 안된다. ✔ 특정 위치에 있는 병사를 열외 시킨다는 의미 ✔ 입력 값이 주어지면 따로 내림차순 혹은 오름차순으로 정렬한 다음 계산하는 것이 아니라, 주어진 입력 값에서 특정 위치에 있는 병사를 제거하여 문제의 조건을 만족하라는 의미 따라서, 주어진 입력 값에서 특정 위치에 있는 병사를 제거하여, 앞쪽에 있는 병사의 전투력이 뒤 쪽에 있는 병사의 전투력보다 높도록 하되, 남아있..

    LIS(최장 증가 부분 수열)

    Longest Increasing Subsequence 수열 수열(數列)은 수 또는 다른 대상의 순서 있는 나열이다. 나열 순서를 생각해야 하고 중복이 허용된다는 점에서 집합과 구분된다. 부분 수열 부분 수열이란, 나열 순서가 변하지 않은 채로 일부 항을 제거해 얻는 새로운 수열을 의미한다. 최장 증가 부분 수열 부분 수열 중 오름 차순으로 정렬된 가장 긴 수열을 최장 증가 부분 수열이라고 한다. 정의 최장 증가 부분 수열 문제는 동적 계획법으로 풀 수 있는 유명한 알고리즘 문제이다. 예를 들어 다음과 같은 수열이 주어졌다고 하자. 5 3 7 8 6 2 9 4위 수열에서 특정 위치에 있는 몇개의 수를 제거해 부분 수열을 만들 수 있는데, 그 중에서 최장 증가 부분 수열을 구해보자. ✔ 첫 번째 조건은 나..

    스키마(Schema)

    스키마 스키마라는 단어는 형태 , 모양 , 모양 또는 계획 을 의미 하는 그리스어 skhēma 에서 유래했다. 스키마는 심리학에서 정보 범주와 정보 간의 관계를 구성하는 조직화된 사고 또는 행동 패턴을 설명하는 데 사용된다. 정의 데이터베이스의 구조와 제약조건에 대한 명세를 기술한 것을 의미한다. 데이터베이스에서 데이터 저장을 나타내는 추상적인 디자인을 의미한다. 특징 데이터 사전(= 시스템 카탈로그)에 저장 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정보를 유지, 관리하는 시스템 MySQL 에서는 information_schema 가 데이터 사전을 의미 MySQL 서버 내에 존재하는 DB 의 메타 정보(테이블, 칼럼, 인덱스 등의 스키마 정보)를 모아둔 곳이다. 대부분 읽기전용으로 제공되는..

    이것이 코딩테스트다 : 금광

    금광 아이디어 다음 열로 이동하고자 하는 목적지에 대해 아래의 세 가지 경우만 고려하면 된다. ✔ 왼쪽 위에서 오는 경우 ✔ 왼쪽에서 오는 경우 ✔ 왼쪽 아래에서 오는 경우 위 케이스를 고려한 점화식은 다음과 같다. $$dp[x][y] = dp[x][y] + max(leftUp, left, leftDown)$$ 구현 public class Main { static int T; static List testcases = new ArrayList(); static int[][] dp; public static void main(String[] args) { input(); solution(); } static void input() { Scanner sc = new Scanner(System.in); T =..

    [BOJ 14502] 연구소

    연구소 BOJ 14502 : 연구소 해설 연구소 문제는 치킨 배달 이 문제와 상당히 유사하다. 핵심 아이디어는 조합(Combination)을 사용하는 것이다. ✔ 연구소는 N X M 크기의 직사각형 ✔ 직사각형은 1 x 1 크기를 갖는 정사각형들의 집합 ✔ 연구소는 빈칸과 벽으로 이루어져 있음 ✔ 일부 칸에는 바이러스 존재 ✔ 바이러스는 상하좌우로 인접한 빈칸으로 퍼져나감 ✔ 바이러스 퍼지는 것을 막기 위해 새로운 벽을 3개 세워야 함 ✔ 벽을 3개 세운 뒤, 바이러스가 퍼질 수 없는 곳을 안전영역이라 함 0 : 빈칸 1 : 벽 2 : 바이러스💡일단 안전 영역의 최댓값은 곧 빈칸(Empty)의 최댓값이니까 빈칸 좌표들을 List 에 담고 💡List 에 담긴 빈칸들 중에서 3개를 뽑는 조합을 사용 💡벽을 ..

    프록시 객체와 영속성 컨텍스트

    프록시 객체와 영속성 컨텍스트 JPA 의 프록시 객체가 어떻게 초기화 되고, getReference() 를 사용할 때, 영속성 컨텍스트에 값이 존재하는 경우와 하지 않는 경우에는 어떻게 동작하는지 배워보자. em.find vs em.getReference em.find // em.find() 시점에 조회 쿼리가 나간다. // findMember : Member@9361 Member findMember = em.find(Member.class, member.getId()); System.out.println("username : " + findMember.getUsername()); System.out.println("id : " + findMember.getId()); 아래는 조회 쿼리이다. select..