본문 바로가기

전체 글

(156)
JPA(Java Persistence API)란? JPA(Java Persistence API)란? JPA는 여러 ORM 전문가가 참여한 EJB 3.0 스펙 작업에서 기존 EJB ORM이던 Entity Bean을JPA라고 바꾸고 Java SE, Java EE를 위한 영속성(Persistence) 관리와 ORM을 위한 표준 기술이다. 그렇다면 ORM은 무엇일까?ORM(Object Relational Mapping)이란 RDB 테이블을 객체지향적으로 사용하기 위한 기술이다.RDB테이블은 객체지향적 특징(상속, 다형성, 레퍼런스, 오브젝트 등)이 없고 자바와 같은 언어로 접근하기쉽지 않다. 때문에 ORM을 사용해 오브젝트와 RDB사이에 존재하는 개념과 접근을 객체 지향적으로다루기 위한 기술이다. JPA를 쓰는 이유?먼저 JPA를 제외하고 자바를 통해 DB에 ..
[SpringBoot] 스프링 부트 시작하기 전에 스프링부트를 시작하기 전에 많은 낯선 용어로 어려움을 겪었다. 먼저 스프링부트란 무엇인가?스프링 프레임워크를 사용한 프로젝트를 아주 간편하게 SETUP 할 수 있는 스프링프레임워크의 서브프로젝트이다. WAR파일을 배포할 필요없이 내장된 Tomcat, Jetty, Unertow 를 이용해 실행만 시키면 내장 서버에 배포되어 바로 실행된다.많이 사용하는 라이브러리를 모아놓은 (Starter)POM 파일로 관리가 쉽다.자동설정으로 인해 더 이상 XML 설정이 필요하지 않다. 그렇다면 스프링부트를 왜 사용할까?위에서도 장점을 설명했지만, 기존의 스프링 프레임워크를 이용한 개발 구축은 많은 XML 설정 파일등의 작성량을 요구했다.그래서 잘 만들어놓은 설정파일을 복사해서 사용하거나 검색을 통해 얻은 정보를 그대로 ..
Selection Sort (선택정렬) 선택정렬(Selection Sort)란? 선택정렬은 제자리 정렬 알고리즘의 하나로, 다음과 같은 순서로 이루어진다.1. 주어진 리스트 중에 최소값을 찾는다.2. 그 값을 맨 앞에 위치한 값과 교체한다.3. 맨 앞에 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다. 비교하는 것이 상수 시간에 이루어진다는 가정 아래, n개의 주어진 리스트를 이와 같은 방법으로정렬하는데에 Θ(n2) 만큼의 시간이 걸린다. import java.util.Scanner; /** * Created by Itner on 2017. 7. 19.. */ public class SelectionSort_Rz { public static void main(String[] ar) throws Exception { Scanner scan =..
[Spring] 기본 초기 셋팅 Spring을 사용하기 전에 간단한 개발 환경의 설정이 필요하다. 1. JDK 버전의 처리STS를 이용해서 스프링 MVC 프로젝트를 생성하고 나면 JDK의 버전은 1.6버전을 기준으로 생성된다.JDK 1.7 이상의 버전을 사용하고 싶다면 해당 프로젝트의 'Project Facets'를 변경해주어야 한다. 프로젝트를 선택하고 마우스 오른쪽을 이용해서 Properties를 조정할 수 있다. 'Project Facets' 메뉴 조금 위쪽에는 'Java Compiler' 메뉴가 있다. 이를 이용해서 현재 프로젝트의컴파일 환경 역시 같이 확인해주어야 한다. 2. 스프링 프레임워크의 버전 변경스프링 프로젝트를 사용하면 가끔은 스프링의 버전을 개별적으로 설정해야되는 경우가 발생할 수 있다.http://projects..
Doubly Linked List (이중 연결 리스트) 이중 연결 리스트(Doubly Linked List)란? 단순 연결 리스트의 경우 노드는 다음 노드에 대한 참조만 가지고 있으므로 단방향으로 밖에 탐색을 하지 못한다.이중 연결 리스트는 이를 보완하여 다음 노드뿐만 아니라 이전 노드의 참조까지 추가하여양방향으로 탐색이 가능하도록 만들어 검색속도를 향상시킬 수 있는 방법을 제공한다. package datastructure; public class DoublyLinkedList_Rz {class DoublyLinkedList{private Node head;private int size;public DoublyLinkedList(){head = new Node(null);size = 0;}private class Node{private Object data;..
[Java] 스트링 비교 (equals와 ==의 차이) 기본적으로 자바에서 스트링을 비교할 때 eqauls() 함수 또는 == 식을 이용한다.둘 다 boolean값을 리턴해준다는 공통점이 있지만 차이점이 존재한다. 형태의 차이equals()는 객체끼리 내용(값)을 비교할 수 있는 '메소드'이다.==는 객체의 참조(주소)값을 비교하는 '연산자'이다. 비교방식의 차이앞서 말했듯이 equals()는 내용 자체를 비교하고, ==는 주소를 비교한다.이는 Call By Reference, Call By Value에 대한 이해가 필요하다. 예를 들어, 다음과 같은 문자열을 생성한다.String a = "Test";String b = a;String c = new String("Test"); 변수 a, b, c 모두 "Test"라는 내용을 가지고 있지만, 주소값은 다르다...
Spring Boot(스프링부트)를 왜 사용해야 하는가? 스프링 부트(Spring Boot)는 스프링 프레임워크를 사용하는 프로젝트를 아주 간편하게셋업할 수 있는 스프링 프레임웍의 서브프로젝트다. 스프링 프레임웍은 우리나라에서 국가 표준이므로 대부분의 자바 프로젝트에서 채택하는 명실상부한 1위 프레임웍이다. 개발자가 직접 만들기 힘든 기능들을 아주 맛깔스럽게 빚어놓음으로써 개발자들의 본 업무 외적인 시스템 내부 작업을 아주 간편하게 해결해주고 있다. 그런데 스프링의 다양한 장점에 비해 개발자들의 이해도는 낮은 편이며 남들이 해놓은 것을 가져다수정해서 쓰는 “ctrl-c, ctrl-v” 방식 개발이 현장에는 만연해 있다.또한 스프링을 충분히 활용하려면 초기 셋업부터 중요한데 일반 개발자는 거의 손을 못대는 경우가 많다.진화하고 있는 스프링 프레임웍에 비해 우리나..
Simple Linked List (단순 연결 리스트) 단순연결리스트(Simple LinkedList)란? 단순연결리스트는 각 노드에 자료 공간과 한 개의 포인터 공간이 있고,각 노드의 포인터는 다음 노드를 가르키는 하나의 참조만을 갖는다.다음 노드의 참조만 가지고 있으므로 노드의 접근은 한 방향으로만 가능하다. public class SimpleLinkedList_Rz { class SimpleLinkedList{private Node head;private int size; public SimpleLinkedList(){head = new Node(null);size = 0;} private class Node{private Object data; // 데이터가 저장될 필드private Node nextNode; // 다음 노드를 가르키는 필드 publi..