JAVA(SPRINGBOOT) 19

[JAVA] STREAM(스트림)

스트림이란? 컬렉션에 저장되어 있는 엘리먼트들을 하나씩 순회하면서 처리할 수 있는 코드패턴 람다식과 함께 사용되어 컬렉션에 들어있는 데이터에 대한 처리를 매우 간결한 표현으로 작성 반복에서 스트림 연산으로 전환하기 스트림을 이용하면 필터링과 카운팅을 증명하기 위해 루프를 살펴볼 필요가 없다. 루프에서는 연산순서를 자세히 작성해야하지만, 스트림은 결과만 맞으면 연산을 스케줄링할 수 있다. //filter메서드 //루프를 이용한 연산 int count = 0; for (String w : words) { if (w.lengh() >12) count++; } //스트림을 이용한 연산 long count = words.stream() .filter(w -> w.length() >12) .count(); 스트림은..

JAVA(SPRINGBOOT) 2022.12.16

[JAVA] INTERFACE(인터페이스)

인터페이스의 역할 인터페이스(Interface)는 객체의 사용방법을 정의한 타입 개발코드와 객체가 서로 통신하는 접점 역할 개발코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메서드를 호출 코드에서 직접 객체의 메서드를 호출하지 않는 이유는 사용하는 객체를 코드 수정없이 변경하기 위함이다. 인터페이스는 여러 객체들과 사용이 가능하므로 어떤 객첼를 사용하느냐에 따라 실행 내용과 리턴값이 달라진다. 인터페이스의 선언 public interface InterfaceName { ''' } 클래스는 필드, 생성자, 메서드로 구성되지만 인터페이스는 상수와 메서드만으로 구성된다. 인터페이스는 객체로 생성할 수 없기때문에 생성자를 가질 수 없다. public interface 인터페이스명 { //상수 타입 상..

JAVA(SPRINGBOOT) 2022.12.06

[SPRING JPA] ORM, JPA, Hibernate

ORM Object-Relational Mapping 객체가 테이블이 되도록 매핑 시켜주는 것 SQL Qeury가 아닌 직관적인 메서드로 데이터를 조작 JPA Java Persistence API (자바 ORM 기술에 대한 표준 명세) ORM을 사용하기 위한 인터페이스를 모아둔 것 Hibernate JPA를 사용하기 위해서 JPA를 구현한 ORM 프레임워크중 하나 JPA 인터페이스의 실제 구현부를 담당 장점 생산성 SQL를 직접 사용하지 않고, 메서드 호출만으로 쿼리가 수행 (쿼리를 보면서 의도한 대로 쿼리가 짜여졌는지, 성능은 어떠한지에 대한 모니터링이 필요하기 때문에 SQL을 잘 알아야 함) 유지보수 DAO의 파라미터, 결과, SQL 등을 모두 확인하여 수정하지 않고 JPA가 대신 수행 종속성 JPA..

JAVA(SPRINGBOOT) 2022.09.13

API, WAS, HTTP, RESTful API, CORS

API (Application Programming Interface) 애플리케이션이라는 단어는 고유한 기능을 가진 모든 소프트웨어를 나타내고, 인터페이스는 두 애플리케이션 간의 서비스 계약을 나타낸다. API는 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘 API는 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한다. API의 종류 SOAP API : 단순 객체 접근 프로토콜을 사용, XML을 사용하여 메시지를 교환, 유연성이 떨어지는 API RPC API : 원격 프로시저 호출, 클라이언트가 서버에서 함수나 프로시저를 완료하면 서버가 출력을 클라이언트로 다시 전송 Websocket API : JSON 객체를 사용하여 데이터를 전달하..

JAVA(SPRINGBOOT) 2022.08.10

ORM, SQL, MVC

Object Relational Mapping(ORM), 객체-관계 매핑 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 객체 모델과 관계형 모델 간에 불일치가 존재한다. ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. Structed Query Language(SQL), 구조적 질의 언어 관계형 데이터베이스에서 자료를 관리 및 처리하기 위해 설계된 언어 SQL 문법 종류 1. DDL(Data Definition Language) : 릴레이션 정의 2. DML(Data Manipulation Language) :데이터 관리 3. DCL(Data Cont..

JAVA(SPRINGBOOT) 2022.08.08

IoC, DI, Bean

IoC (Inversion of Control) IoC는 '제어의 역전'이라고 해석되어 진다. 우리는 일반적으로 A클래스 내에서 B클래스의 객체를 불러와 사용할 때 두 클래스간의 의존성이 생긴다. 많은 클래스들간의 의존성이 생길 때 수많은 생성자를 통해 객체를 생성해야하고 이는 코드의 가독성을 떨어뜨리는 문제가 발생했다. 그래서 우리는 A클래스 내에서 B클래스 객체를 생성하는 방법대신 만들어진 B클래스의 객체를 A클래스에서 사용하는 방법을 사용하게 되었다. 이런 제어 방법을 기존의 제어 흐름과 반대 된다고 하여 제어의 역전, 'IoC'라고 부른다. DI (Dependency Injection) DI는 IoC과정에서 만들어진 B클래스 객체를 A클래스에서 사용할 수 있도록하는 것 즉, A와 B 클래스의 의존..

JAVA(SPRINGBOOT) 2022.07.31

[JAVA] 타입

기본(원시) 타입 값의 종류 기본 타입 메모리 사용 크기 값의 범위 정수 byte 1 byte 8bit -2^7 ~ 2^7 -1 char 2bye 16bit 0 ~ 2^16 - 1 short 2byte 16bit -2^15 ~ 2^15 -1 int 4byte 32bit -2^31 ~ 2^31 - 1 long 8byte 64bit -2^63 ~ 2^63 - 1 실수 float 4byte 32bit (+/-)1.4E-324 ~ (+/-) 3.4028235E38 double 8byte 64bit (+/-)4.9E-324 ~ (+/-)1.7976931348623157E308 논리 boolean 1byte 8bit true, false char 타입을 제외한 정수타입의 범위는 -2^(n-1) ~ 2^(n-1)-1..

JAVA(SPRINGBOOT) 2022.07.20

[JAVA] 변수

변수 하나의 값을 저장할 수 있는 메모리 공간 변수의 선언 int x; int y, z; 어떤 타입의 데이터를 저장할 것인지를 결정 같은 타입의 여러개 변수를 한 번에 선언할 수도 있다 변수 명명규칙 - 첫 글자는 문자, $, _ 이어야하고 숫자는 불가능하다. - 영어 대소문자가 구분된다. (name != Name) - 길이의 제한은 없다. - 자바 예약어는 사용할 수 없다. 변수 초기화 int score; //변수 선언 score = 90; //값 저장 int Score = 90 //변수 선언과 값 저장 변수를 선언하고 초기값을 주는 행위 리터럴 소스 코드 내에서 직접 입력된 값 정수리터럴, 실수리터럴, 문자리터럴, 문자열리터럴, 논리리터럴 변수의 사용 범위 변수는 선언된 중괄호 블록 내에서 사용

JAVA(SPRINGBOOT) 2022.07.20