Java
-
스프링이란Java/Spring 2019. 4. 6. 15:16
■스프링의 역사 - 자바 엔터프라이즈(기업) 개발에 사용되는 애플리케이션 프레임워크 (프레임워크vs라이브러리)- 기원은 로드 존슨의 J2EE에 관한 서적에 딸린 예제코드- 책의 내용에 매료된 몇몇 개발자들이 로드 존슨을 꼬셔서(?) 정식 프레임워크로 만들기로 함.그것이 바로 스.프.링!- 스프링은 ejb의 한계로 인해 등장했으므로 ejb와의 비교를 통해 스프링에 대해 깊은 이해를 할 수 있음! ■스프링은 경량급이다!- 코드에 불필요하게 등장하던 프레임워크와 서버환경에 의존적인 부분을 제거해줌- 이전 자바 웹프레임워크인 ejb는 기술에 대한 과도한 욕심으로 매우 무겁고 복잡했었음 (ex 고급 was를 사용해야 하는 것 등)- 예를들어- 톰캣,제티같은 경량급(?) was에서도 개발 가능! - ejb에서의..
-
프레임워크vs라이브러리Java/Spring 2019. 4. 6. 15:13
■Framework(프레임워크)- 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술- 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' - 완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 필요로 한다! ■Library(라이브러리)- 라이브러리는 단순 활용가능한 도구들의 집합- 개발자가 만든 클래스에서 호출하여 사용- 그 자체로 완성된 상품(?) ■Framework vs Library- 제어 흐름에 대한 주도성이 누구에게/어디에 있는가에 있음- 프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 사용자는 그 안에서 필요한 코드를 짜 넣는다- 반면에 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 씀-..
-
String, StringBuilder, StringBuffer의 차이Java/Basics 2019. 4. 6. 14:19
■String- immutable(불변)- 한번 생성되면 할당된 메모리 공간이 변하지 않는다.- + 연산자 또는 concat 메서드를 통해 기존에 생성된 String 클래스 객체 문자열에 다른 문자열을 붙여도 기존 문자열에 새로운 문자열을 붙이지 않는다. 새로운 String 객체를 만든 후, 새 String 객체에 연결된 문자열을 저장하고, 그 객체를 참조하도록 한다!- String은 이러한 이유로 문자열 연산이 많은 경우, 그 성능이 좋지 않다- 하지만, Immutable한 객체는 간단하게 사용 가능하고, 동기화에 대해 신경쓰지 않아도 되기 때문에(Thread-safe), 내부 데이터 공유가 자유롭다! ■StringBuffer / StringBuilder- mutable(변함)- StringBuffer..
-
JPA(Java Persistence Api) - 입문Java/Spring-JPA 2019. 4. 6. 13:26
■JPA(Java Persistence Api) 간단 설명!- 먼저 ORM이 무엇인지 알아야 한다!ORM(Object-Relational Mapping)은 객체지향적인 db 개발 패러다임, 쉽게 말하면 객체지향적인 db 개발 방법이라고 말할 수 있다.객체지향 언어의 객체와 관계형 데이터베이스의 데이터 사이에서 나타나는 미묘한 차이와 이로 인한 문제들을 극복하기 위해 등장한 개발 방법이다. - ORM을 구현한 프레임워크는 상당히 많다. php 기반의 Laravel, python 기반의 Django, java 기반의 Spring 등 - 여기서는 ORM이라는 개념을 Spring 프레임워크에 맞게 명세된 JPA를 배울것이다.정확히는 ORM을 java에 맞게 구체화한 JPA, 그리고 그 JPA를 구현한 Hiber..
-
JAVA String FormatJava/Basics 2019. 4. 6. 13:05
■Format method in String Class - 문자열의 내용(문자열,숫자 등)을 필요에 맞게 다양한 모습으로 세팅할 필요가 있을 경우 사용! ■문자열(%s) 포맷 변환 항목 내용 결과 %s 해당 위치로 문자열을 넣음 "헤헤헤" -> "헤헤헤" %5s 5칸을 확보해 놓고, 넣고싶은 문자열을 오른쪽 정렬해서 채워넣음! "헤헤헤" -> "__헤헤헤" (_는 공백) %-5s 5칸을 확보해 놓고, 넣고싶은 문자열을 왼쪽 정렬해서 채워넣음! "헤헤헤" -> "헤헤헤__" %5.2s 5칸을 확보해 놓고, 넣고싶은 문자열을 왼쪽에서 2칸만 뗀 뒤, 오른쪽 정렬해서 채워넣음! "헤헤헤" -> "___헤헤" %-5.2s5칸을 확보해 놓고, 넣고싶은 문자열을 왼쪽에서 2칸만 뗀 뒤, 왼쪽 정렬해서 채워넣음!"헤..