JAVA 9

스프링 (SpringFramework)

SpringFramework등장 배경 EJB 복잡한 스펙으로 인한 개발의 효율성이 떨어짐 POJO(Plsin Olf Java Object) 특정 환경이나 기술에 종속적이지 않은 객체지향 원리에 충실한 자바객체 테스트하기 용이하며, 객체지향 설계를 자유롭게 적용할 수 있다. 특정 기술에 종속적이지 않기 때문에 생산성, 이식성 향상 Plain : component interface를 상속받지 않는 특징 (특정 framework에 종속X) Old: EJB이전의 Java Class의미 PSA(Portable Service Abstraction, 이식 가능한 서비스 추상화) 환경과 세부기술의 변경과 관계없이 일관된 방식으로 기술에 접근할 수 있게 해주는 설계 원칙 트랜잭션 추상화, OXM추상화, 데이터 액세스의 ..

JAVA 2022.03.16

자바(Java) - 스레드(Thread)

Process 실행 중인 하나의 프로그램 하나 이상의 Thread로 구성됨 Thread (실이라는 단어로 표현) Process의 실행 단위 CPU, Code, Data로 구성 됨 CPU의 효율성 증가 Thread의 생성이 Process의 생성보다 빠름 Process와 같은 메모리 공간을 사용하므로 메모리 점유 공간이 작음 통제가 쉽고 기존 정보와의 공유가 쉬움 Thread의 Life Cycle New Thread 객체 생성 Runnabe 새로 생성된 스레드가 시작된 후 스레드가 실행 가능하게 됨 이 상태의 스레드는 작업을 실행 중인 것으로 간주 Terminated Runnable상태의 Thread는 작업을 완료하거나 다른 방식으로 종료될 때 Terminated 상태로 전환 Thread 구현 1 1. ja..

JAVA 2022.01.20

자바(Java) I/O 개념

I/O이란 ? I/O는 입력(Input)/출력(Output)의 약자로, 컴퓨터 및 주변장치에 대하여 데이터를 전송하는 프로그램, 운영 혹은 장치를 일컫는 말입니다. 프로세서와 메모리, 확장 슬롯, 마더보드에서 일어나는 데이터 전송도 I/O라고 일컬어집니다 ※자바에서는 하드웨어, 표준 콘솔, 네트워크 등과 스트림(1byte)의 데이터를 읽고 쓰거나 문자(2byte)를 읽고 쓰는 것 가능 Stream : 입출력 장치에 의한 데이터의 흐름 Source Stream : 입력 데이터의 시작 (~InputStream) Sink Stream : 데이터가 처리되어 출력되는 끝 (~OutputStream) Node Stream : Source와 Sink를 묶어서 지칭하는 단어 File Name String getName..

JAVA 2022.01.20

자바 컬렉션 프레임워크(Collection Framework)

컬렉션 프레임워크(Collection Framework) 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현 자료 구조 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미 데이터 값의 모임, 데이터 간의 관계, 데이터에 적용할 수 있는 함수나 명령을 의미 리스트(List) 1. ArrayList 데이터는 배열을 사용하여 관리 새로운 배열을 만들고 복사하여 배열크기를 변경하는 메서드들이 존재, 데이터 추가/삭제가 간단하며 사용이 쉬움 장점 : 데이터 접근 속도가 빠름(단, 데이터의 인덱스 번호를 알고 있는 경우) 단점 : 비 순차 데이터의 추가/삭..

JAVA 2022.01.19

자바 제네릭(Generics)

제네릭(Generics) 다양한 타입의 객체를 다루는 메서드, 컬렉션 클래스에서 컴파일 시에 타입 체크 미리 사용할 타입을 명시해서 형 변환을 하지 않아도 되게 함 public class 클래스명{} public class 인터페이스명{} ※T : reference Type, E: Element, K:Key, V:Value 객체 생성 변수 쪽과 생석 쪽의 타입은 반드시 같아야함 클래스명 변수 = new 클래스명(); 클래스명 변수 = new 클래스명(); 번외) 가변길이 파라미터 여기서 파라미터는 Argument 즉, 파라미터의 수가 정해져있지않다 (무한대로 받기가능) 배열 형태로 들어가있다.

JAVA 2022.01.19

자바 예외 처리

에러와 예외 어떤 원인에 의해 오동작 하거나 비정상적으로 종료되는 경우 (심각도에 따라 분류) 에러(Error) 메모리 부족, stack overflow와 같이 일단 발생하면 복구 불가 프로그램의 비정상적 종료를 막을 수 없음 -> 디버깅 필요 예외(Exception) 읽을려는 파일이 없거나 네트워크 연결이 안되는 등 수숩될 수 있는 비교적 상태가 약한 것 프로그램 코드에 의해 수습될 수 있는 상황 예외처리(Exception Handling) 예외 발생 시 프로그램의 비정상 종료를 막고 정상적인 실행 상태를 유지 Checked Exception 예외에 대한 대처 코드를 필수적으로 작성 작성하지 않으면 컴파일을 진행할 수 없음 Unchecked Exception RuntimeException 클래스의 자식..

JAVA 2022.01.19

인터페이스

인터페이스란? 서로 다른 두 시스템, 장치, 소프트웨어 따위를 서로 이어 주는 부분, 또는 장치 GUI(Graphic User Interface) - 그래픽을 이용해서 사용자와 소프트웨어 간 소통) CUI(Character User Interface) - 문자를 이용해서 사용자와 소프트웨어 간 소통 인터페이스 상속 인터페이스끼리 extends 키워드를 이용해 상속이 가능 클래스와 다르게 인터페이스는 다중 상속이 가능 인터페이스의 필요한 이유 구현의 강제로 표준화 가능(abstract키워드) 인터페이스를 통한 간접적인 클래스 사용으로 손쉬운 모듈 교체 지원 서로 상속의 관계가 없는 클래스들에게 인터페이스를 통한 관계 부여로 다형성 확장 모듈 간 독립적 프로그래밍 가능 -> 개발 기간 단축 메서드 선언부를 ..

JAVA 2022.01.19

자바(JAVA) 초급

객체(Object)란? 우리 주변에 있는 모든 것으로 프로그래밍 대상 (Ex-물체, 집, 사람, 자동차, 등) ※Object(오브젝트) == instance(인스터스) 객체지향 프로그래밍 주변에 있는 모든 것을 객체화해서 프로그래밍을 하는 것 객체지향 프로그래밍의 장점 1) 블록 형태의 모듈화 된 프로그래밍 신뢰성 높은 프로그래밍이 가능 코드 재사용성이 높다 소프트웨어 유지 보수할 때 유리하다. 2) 현실 세계에 비유하여 쉬운 프로그래밍 가능 주변의 모든 것들을 객체(Object)로 표현 소프트웨어의 동작은 객체들의 상호 작용 묘사로 구현 가능 클래스(Class) 객체를 정의해 놓은 것 (객체의 설계도) 클래스는 직접 사용할 수 없고, 직접 사용하기 위해서는 객체를 생성 객체(Object, instanc..

JAVA 2022.01.17

JAVA 배열(Array)

변수는 2가지 Primitive(기본형) : int, double, float, byte, short, char, boolean 등 ※초기값이 있음 (기본: 0) Reference(참조형) : string, Scanner 등 ※null이 다들어있다 ※Java에서 new쓰면 무조건 Object(객체) [Object(객체)는 Heap영역에 생성] 배열(Array) 동일한 타입의 데이터 여러 개를 하나의 연속된 메모리 공간에서 관리하는 것 요소에 접근하는 속도가 매우 빠르며 크기 변경 불가 변수의 수 증가 코드의 길이 증가 반복문 적용 불가 변수의 수가 동적으로 결정될 경우, 사용 불가 int[]arr = new int[5] #int[]arr의 주소는 배열 첫번째 인덱스[0]를 가르킨다 int Type 기준으..

JAVA 2022.01.13