공부 152

내가 헤깔려하는것을 다시 정리해봄.

0. Spring의 Model 클래스 스프링 MVC에서 기본적으로 제공되는 클래스로 뷰에 원하는 데이터를 전달하는 일종의 컨테이너, 상자 역할을 함. Model이라는 객체에 addAttribute()등의 method를 이용해 데이터를 담고, jsp에 전달하게 된다. addAttribute("이름",객체) / 객체에 이름을 보여해 뷰에서 이름값을 이용해 객체를 처리한다. addAttribute(객체) /와 같이 사용할 경우 객체의 클래스명 맨 앞글자를 소문자로 처리후 이름으로 간주(ex TestVO ->testVO) 1. JSTL 문법 ${ } model의 addAttribute로 추가된 객체의 값을 뷰에서 호출할 때 쓰임 2. Spring 애노테이션 @ModelAttribute("이름")객체 객체명 자동..

공부/Spring 2016.04.08

추상클래스, Adapter 클래스

추상클래스 : 추상메서드를 만들 수 있는 클래스 단점 : 필요 없는 메서드까지 오버라이드 해야함. 어댑터클래스 : 추상클래스의 단점을 보완하기 위해 만든 클래스로. 추상클래스를 상속받아 모든 메서드를 더미형태로 구현해 놓는 클래스. 예시: 추상클래스에 추상메서드 A,B,C가 있고. 어댑터클래스에서 이 A,B,C를 기능이 없는 더미형태로 구현한다. 그후 어댑터 클래스를 상속받아 필요한 메서드만 사용하면 됨. 인터페이스는 일반메서드를 포함할 수 없고 다중상속이 가능한 특징이 있음.

공부/JAVA 2016.04.06

[JAVA] JVM 공부

.java 파일 - ( javac.. javacompiler) ->java bytecode.. .class파일 -> [jvm] ->OS [runtime data areas] .. jvm이 운영체제 위에서 실행되면서 OS에게 할당받는 메모리 영역 크게 2가지로 나뉘는데 1: 스레드마다 생성되는 부분 // 2:공용으로 사용되는 부분 (stack,heap,method area 이 3가지가 중요한듯) 1: 스레드마다 생성되는 부분 ( 스레드마다 하나씩 존재함) - pc register : 현재 수행중인 JVM 명령의 주소를 갖는다. - JVM Stack : 스택 /지역변수, 매개변수등을 저장함.. 맨밑바닥에 main을 깔고 시작 - Native method : 자바외에 언어로 작성된 네이티브 코드를 위한 공간 ..

공부/JAVA 2016.04.05

mysql 엔진

기본 엔진인듯..? innoDB : 이노DB(InnoDB)는 MySQL을 위한 데이터베이스 엔진이며, MySQL AB가 배포하는 모든 바이너리에 내장되어 있다. MySQL과 사용할 수있는 다른 데이터베이스 엔진에 대한 개선 사항으로 PostgreSQL을 닮은 ACID 호환 트랜잭션에 대응하고 있는 것이 있다. 또한 외래 키(FK)도 지원하고 있다. (이것을 선언적 참조 무결성이라 한다.) -------------------------------- 데이터베이스 엔진: 데이터베이스 엔진(database engine) 또는 스토리지 엔진(storage engine)은 데이터베이스 관리 시스템(DBMS)이 데이터베이스에 대해 데이터를 삽입, 추출, 업데이트 및 삭제(CRUD 참조)하는 데 사용하는 기본 소프트웨..

공부/DB 2016.04.04

[자료구조] 정렬들 다시 정리.

선택정렬은 n^2 삽입정렬은 올바른 자리를 찾아 삽입하는 정렬. 대부분의 레코드가 이미 정렬되있는 경우 매우 효율적일 수 있다. 버블정렬 작업이 비효율적이어서 단순함에도 불구하고 거의 쓰이지 않는다. 합병정렬 입력데이터가 무엇이든 간에 정렬되는 시간은 동일하다. 단점은 임시배열이 필요하다는 것과 레코드의 크기가 큰 경우 이동 횟수가 많으므로 매우 큰 시간낭비를 초래한다는 것이다. 그러나 레코드를 연결리스트로 구성해 합병 정렬을 할 경우 링크 인덱스만 변경되므로 데이터의 이동은 무시할 수 있을 정도로 작아진다. 따라서 크기가 큰 레코드를 정렬할 경우 연결리스트를 사용한다면 퀵정렬을 포함한 다른 어떤 정렬방법보다 효율적일 수 있다. 퀵정렬 빠르다. 추가 메모리 공간도 필요하지 않다. 이미 정렬된 리스트에 대..

공부/자료구조 2016.03.30

[스크랩] 퀵정렬이 힙정렬보다 성능이 좋은 이유

제가 알고 있기로 정렬 알고리즘의 복잡도는 nlogn 이하로 나올 수 없다고 알고 있습니다. 다름이 아니라 궁금한건 퀵정렬과 힙정렬의 복잡도는 각각 nlogn이고 최악의 경우 퀵정렬은 n^2, 힙정렬은 nlogn으로 알고 있습니다. 최악의 상황까지 고려했을 때는 힙정렬이 훨씬 좋아보이는데 실제 돌려보면 퀵정렬이 퍼포먼스가 더 좋게 나옵니다. 왜 퀵정렬이 더 빠른지 궁금하고 덧붙여서 퀵정렬과 힙정렬의 차이점에 대해 자세히 알고 싶습니다. ---------------------------------------------- 퀵정렬은 배열구조를 그대로 이용할 수 있는 특징이 있습니다. 알고리즘에 상관없이 계산에 필요한 데이터를 다루는 과정은 반드시 필요합니다. 퀵정렬이 배열구조를 그대로 쓸 수 있다는 것은 데이..

공부/자료구조 2016.03.29

[JAVA] switch문에서 String 사용하기

자바 1.7버전부터 추가된 기능이라고 하네요. 조건에는 일반 스트링문자열이 오면되고 case의 경우엔 final이 붙은 스트링만 갈 수 있네요.. String input = "abc"; final String case1 = "bc"; switch(input){ case case1: break; default: break; } 이외에 자바 버전별 기능 추가사항입니다. 1. J2SE 1.4 •JAXP API(XML Processing) •보안관련 API 추가 •로깅 API •IPv6를 포함한 네트워킹 관련 API 추가 •NIO(Non-Blocking I/O) •정규표현식(java.util.regex) •Assertion 2. J2SE 5 •제네릭 프로그래밍 •어노테이션 (메타데이터) •foreach 루프 •..

공부/JAVA 2016.03.29