study
-
[SPRING] Spring vs. Spring bootstudy/spring 2020. 7. 23. 16:44
Spring이란? Spring이란 과거 EJB를 대체하는 framework로써 세상에 나왔다. "spring은 설정이 반이다"라는 말이 있을 정도로 설정하는 것에 있어서 어려움이 많았으나 - 경량 컨테이너 - IoC ( Inversion of Control : 제어의 역행 ) - DI ( Dependency Injection : 의존성 주입 ) - AOP ( Aspect-Oriented Programming : 관점 지향 프로그래밍 ) 위 네가지의 강력한 장점을 지니고 있기 때문에 대표적인 Java Framework로 자리잡았다. 거기에 스프링의 단점을 해결하고자 만들어진 것이 바로 Spring Boot다. Spring Boot는 환경 설정을 최소화해주어서 개발자가 비즈니스 로직에 집중할 수 있도록 하여..
-
[SPRING] 스프링의 정의 / 특징 / 동작 원리study/spring 2020. 7. 21. 19:36
스프링 프레임워크란? 자바 엔터프라이즈 개발을 편하게 해주는 경량급 오픈 소스 애플리케이션 프레임워크 Lightweight Java Application Framework POJO 기반의 Enterprise Application 개발을 쉽고 편하게 할 수 있도록 하기 위해 사용한다. 일반적인 프레임워크의 경우 과도한 엔지니어링 기술을 탑재하여 무겁고 고가의 WAS를 갖추어야만 동작했지만 스프링 프레임워크는 엔터프라이즈 개발에서 필요로 하는 기술을 포함하고 있지만 가볍고 단순히 환경에서 사용할 수 있다. 애플리케이션 프레임워크 소프트웨어 개발자가 응용 소트프웨어의 표준 구조를 구현하기 위해 사용하는 소프트웨어 프레임워크로 구성 즉, 프로그래밍에서 특정 OS를 위한 응용 프로그램 표준 구조를 구현하는 클래스..
-
JAVA - 5study/java 2020. 7. 20. 23:56
Thread 구현하는 방법 1. Thread 객체를 상속받아 사용하는 방법 2. Runnable 인터페이스를 구현하여 사용하는 방법 wait() vs sleep() wait()은 다른 Thread에서 notify()나 notifyAll()로 깨워야지 일어나고 sleep()은 지정한 시간만큼 중지한다. run() vs start() run()을 호출하는 것은 생성된 스레드를 실행시키는 것이 아니라 단순히 클래스에 속한 메소드를 호출하는 것이고 start()는 새로운 스레드가 작업을 시작하는데 필요한 호출 스택(공간)을 생성한 다음에 run() 을 호출해서 생성된 호출 스택에 run()이 첫 번째로 저장하게끔 한다. Process vs Thread 메모리를 할당받아 실행되고 있는 프로그램을 Process라고..
-
JAVA - 4 ( 객체지향 )study/java 2020. 7. 16. 19:48
절차지향 vs 객체지향 절차지향 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법 언어 C언어 장점 - 컴퓨터의 처리구조와 유사해 실행 속도가 빠름 단점 - 유지보수가 어려움 - 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어려움 - 디버깅이 어려움 객체지향 실제 세계를 모델링하여 소프트웨어를 개발하는 방법. 프로그래밍에서 필요한 데이터를 추상화시켜 상태(필드)와 행위(메소드)를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 언어 Java 장점 - 코드의 재활용성이 높음 남이 만든 클래스를 가져와 이용할 수 있고 상속을 통해 확장해서 사용할 수 있음 - 코딩..
-
JAVA - 3study/java 2020. 7. 16. 19:00
final keyword 1. final (1) 기본형 변수 : 값 변경 불가. 초기값을 지정해주어야 함 (2) 참조형 변수 : 한번 인스턴스를 생성하면 다른 인스턴스를 생성할 수 없음 (3) 메소드 : 해당 메소드를 포함한 클래스를 상속받아도 final keyword가 사용된 메소드는 오버라이딩 금지 (4) 클래스 : 해당 클래스를 누구도 상속 받을 수 없음 2. finally try, catch 문에서 항상 마지막에 수행되는 블록 3. finalize 객체의 메모리를 반환하는 메소드. 실행하면 GC가 메모리를 반환 Overriding vs Overloading Overriding 부모의 메서드를 재정의. 왜 사용 ? 자식 클래스에 맞게 메서드의 내용을 변경해야하는 경우에 사용한다. Overloadin..
-
JAVA - 2 (변수타입과 컬렉션)study/java 2020. 7. 15. 20:50
변수 - DataType에 따른 구분 1. 기본형 변수 : 자료의 실제 값을 저장 2. 참조형 변수 : 값이 저장되어 있는 주소 값을 저장 ( String 등 기본형 변수를 제외한 나머지 ) - 선언 위치에 따른 구분 1. 멤버 변수 : 클래스 영역에 선언된 변수 - 인스턴스 변수 : 인스턴스 생성 시에 만들어지는 변수. 인스턴스마다 값이 다름 - 클래스 변수 : 인스턴스 변수에 static을 붙인 변수. 모든 값이 같음 2. 지역 변수 : 메소드 내에서 선언되어 메소드 호출 시 생성되고 종료 시 소멸됨. 컬렉션 1. List : 순서가 있는 데이터의 집합으로 중복을 허용 - ArrayList : 비동기식. 여러 스레드가 ArrayList를 동시에 작업 가능. 인덱스를 가지고 있어 데이터를 조회할 때 효..
-
JAVA - 1 ( JAVA 기초 )study/java 2020. 7. 13. 17:25
C/C++ 과의 차이점 - 실행 환경 - JAVA는 링크 과정이 없이 컴파일러가 바이트 코드를 생성하고, C/C++은 컴파일을 하고 난 후 링크 과정이 필요 - C는 절차 지향 언어이고 JAVA는 객체 지향적인 언어 - C는 임베디드나 운영체제처럼 속도나 용량 등에서 최적화가 필요한 곳에서 주로 사용하고, JAVA는 웹 사이트나 운영체제와 상관없이 실행되어야 하는 응용 SW, 안드로이드 앱 등에서 주로 사용 장/단점 장점 - 운영체제에 독립적 ( JVM 에서 동작하기 때문 ) - 객체 지향적인 언어 ( 캡슐화, 상속, 추상화, 다형성 등) - 가비지 컬렉터(GC)가 자동으로 메모리 관리 - 오픈 소스 라이브러리가 풍부 - 객체가 필요한 시점에 클래스를 동적 로딩하여 생성 단점 - JVM에 의해 기계어로 ..
-
[SPRING] JPA의 이해-3(ORM)study/spring 2019. 12. 27. 20:52
앞서 두 개의 글에서 객체 지향 프로그래밍과 관계형 데이터베이스에 대해서 정리를 했다. 2019/12/27 - [study/spring] - [SPRING] JPA의 이해-1(관계형 데이터베이스) 2019/12/27 - [study/spring] - [SPRING] JPA의 이해-2(객체지향 프로그래밍) 그 둘을 보면 참 다르다란 생각이 든다. 관계형 데이터베이스는 하나의 외래키만으로 참조하고 있는 테이블들의 데이터를 조회할 수가 있었는데 객체지향 프로그래밍은 클래스 내에 필드로 지정을 해야만 조회를 할 수 있었다. 그렇다고 외래키를 직접 정수형 혹은 문자형 타입으로 필드에 지정해놓기에는 객체지향으로써의 이점을 전혀 살리지 못한다. 테이블의 조인을 클래스에서 이용할 수 없고 클래스의 상속을 테이블에서 이..