반응형 자바 JAVA35 JPA란 무엇인가? 1. JPA(Java Persistence API)란?JPA는 자바 ORM 기술에 대한 API 표준 명세입니다. 이를 통해 개발자는 객체와 관계형 데이터베이스 간의 데이터 매핑을 쉽게 수행할 수 있으며, 직접 JDBC를 사용하여 SQL을 작성하는 번거로움을 줄일 수 있다. 2. 주요 ORM 프레임워크와 JPA의 관계ORM 프레임워크로는 하이버네이트와 EclipseLink 등이 있으며, 이 중 하이버네이트가 가장 대중적으로 사용된다. 하이버네이트는 JPA의 구현체 중 하나로, JPA가 정의한 표준을 기반으로 다양한 기능과 최적화 기법을 제공하여 개발 생산성을 크게 향상시켜준다. 3. JPA와 JDBC 사이의 역할JPA는 애플리케이션과 JDBC 사이에서 중간 계층 역할을 수행한다. 개발자가 객체를 단순히 컬.. 자바 JAVA 2025. 3. 8. 스프링 - JWT 인증 토큰 토큰 기반 인증이란? 사용자가 서버에 접근할 때 인증된 사용자인지 확인 하는 인증 방법 중 하나로 서버 기반 인증과 토큰 기반 인증이 있다. 스프링 시큐리티에서는 세션 기반으로 사용자의 정보를 담은 세션을 생성하고 저장해서 인증을한다. 토큰은 서버에서 클라이언트를 구분하기 위한 유일한 값으로 서버가 토큰을 생성해서 클라이언트에게 제공하면, 클라이언트는 토큰을 갖고 있다가 여러 요청을 이 토큰으로 함께 신청한다. 서버는 토큰만 보며 유효한 사용자인지 검증하게 된다. 토큰을 전달하고 인증 받는 과정 1. 로그인 요청 : 클라이언트가 아이디와 비밀번호를 서버에게 전달하면서 인증을 요청 2. 토큰 생성 후 응답 : 서버는 아이디와 비밀번호를 확인해 유효한 사용자인지 검증, 유효한 사용자면 토큰을 생성해서 응답한.. 자바 JAVA/스프링프레임워크 2023. 5. 24. 자바 변수 : 기본형과 참조형 그리고 기본형의 종류와 범위 변수(variable) 변수란 하나의 값을 저장할 수 있는 저장공간이다. 변수 선언과 대입 더보기 변수타입 변수이름; ① 변수의 선언 정수를 저장하기 위한 변수 x를 선언 int x; ② 변수에 대입 변수에 5라는 값 저장 x = 5; ①에서 x라는 이름의 변수(저장공간)이 생기고 ②의 문장으로 x에 5가 대입된다. 상수(constant) : final키워드 상수는 변수 처럼 값을 저장할 수 있는 공간으로 값을 한번 초기화(저장)하면 다른 값으로 변경할 수 없다. 상수를 선언하는 방법은 변수와 동일하며 변수 타입 앞에 키워드 final을 붙여주면 된다. 상수의 이름은 모두 대문자로 하는 것이 관례이고, 여러 단어로 이루어져 있을 경우 '_' 로 구분한다. 더보기 final 타입 변수명 = 값; 리터럴(l.. 자바 JAVA/자바 기초 2023. 5. 8. 자바 클래스와 객체의 생성 클래스의 필드 구현 public class CreditCard { public long cardNumber; // 카드번호(16자리숫자) public string cargOwner; // 카드주인 } 위의 코드는 신용카드를 추상화한 클래스 CreditCard를 구현했고, 신용카드 속성으로 카드번호 cardNumber와 소유자 cardOwner 등이 있다. 종류 키워드(예약어) 기능 상수 final 수정될 수 없는 상수를 지정할 때 접근 지정자(한정자) public(클래스 외부 접근 가능) protected(자기 클래스를 상속한 곳만) private(외부에서 접근 불가능) default(의미만있고, 쓰지는 않음) 필드의 접근 권한의 종류를 지정할 때 정적 static 필드의 소속(클래스인지 인스턴스인지)을.. 자바 JAVA/자바 객체지향 2023. 5. 8. 자바 객체지향 : static과 final 배열 정적필드와 메서드를 위한 키워드 static 필드나 메서드의 소속을 클래스로 제한하는 키워드로 static을 사용한 정적 변수나 정적 메서드는 클래스 변수와 클래스 메서드가 있다. public class Circle { public double radius; // 반지름 public static double PI = 3.14159265; // 파이 public Circle(double radius) { this.radius = radius; } public double getArea() { return radius * radius * PI; } public double getPerimater() { return 2 * PI * radius; } } public class CircleTest { publi.. 자바 JAVA/자바 객체지향 2023. 5. 4. 자바 객체지향 : 생성자 생성자란? 객체를 만드는 틀인 클래스에서 필요하면 생성자를 구현한다. 객체가 생성될 때 필요한 작업을 수행하는 특별한 메서드이다. 주로 객체 필드에 초기 값을 저장하거나 객체의 사용을 위해 필요한 초기화 작업이 수행된다. 더보기 생성자의 구성 반환형을 기술하지 않으며 이름은 반드시 클래스 이름이다. 생성자의 인자는 필요하면 기술한다. 생성자는 주로 접근 지정자 public을 사용한다. 필요하다면 생성자의 접근 지정자도 private 또는 protected도 가능한데, 보통 singleton패턴에서 사용된다. 생성자 구현 public class 학생 { public String 이름; public 학생() { } // new 학생(); public 학생(String 학생) { this.이름 = 이름; } .. 자바 JAVA/자바 객체지향 2023. 5. 4. 자바 객체지향 프로그래밍이란? 객체지향 프로그래밍 클래스를 생성하고 클래스로부터 객체를 만들어 객체 간의 상호작용을 이용하여 주어진 문제를 해결하는 프로그래밍 방식이다. 데이터인 필드와 절차인 메소드를 하나로 묶은 클래스 단위의 프로그램이다. 현실 세계를 객체 단위로 프로그래밍하여, 객치는 필드(데이터)와 메소드(코드)를 하나의 블럭으로 묶어서 표현한다. 원조는 시뮬라(simula)라는 프로그램 언어이고, 1960년에 조한 달과 크리스틴이 시뮬라 67을 발표했으며 이때 클래스라는 개념을 처음으로 도입했다. 더보기 * 절차 지향 프로그래밍은? 객체지향 언어 개념이 나오면서 기존 프로그래밍 방식을 표현하기 위해서 사용했다. 큰 틀은 일렬의 동작(모듈, 함수)를 순서에 맞게 단계적으로 실행했다. 데이터와 속성 보다는 명령어의 순서와 흐름에.. 자바 JAVA/자바 객체지향 2023. 5. 3. 자바 컬렉션 프레임워크 : List, Set, Map 컬렉션 프레임워크(Collection Framework) 컬렉션 프레임워크는 데이터 집합을 처리하기 위한 클래스들의 집합이다. 이 프레임워크는 자바에서 제공하는 인터페이스를 구현한 클래스들을 제공하며, 이러한 클래스들은 모두 Object 클래스를 상속받는다. ① Object 클래스 자바의 Object 클래스는 모든 클래스의 최상위 클래스이고, 모든 클래스의 기본 클래스로 Object 클래스를 상속받으며, 이를 통해 자바에서는 객체 지향 프로그래밍의 기본 원칙 중 하나인 상속이 가능하다. Object 클래스는 Java에서 모든 객체가 가져야 할 일반적인 메서드와 필드를 정의하고 있다. 이러한 기능들은 모든 자식 클래스에서 상속 받아 사용할 수 있다. 컬렉션 프레임워크에서도 사용되는 클래스들 모두 Objec.. 자바 JAVA/알고리즘&자료구조 2023. 5. 2. 스프링 애플리케이션 레이어 MVC모델 업무 기능이나 취급하는 데이터의 처리 요건이 복잡해지면 비즈니스 로직 처리를 담당하는 모델의 부분이 많아져 모델의 비대화 라는 문제가 살생한다. MVC모델 설계 개념상 모델이 담당하는 부분 자체를 줄이는 것은 안되기 때문에 모델 안에서 역할 분담을 명확하게 하고 애플리케이션 레이어 구성을 적용하고 비대해지는 모델을 분할 하는 것이 레이어를 나누는 목적이다. 레이어를 나누는 엄격한 규칙으로서 애플리케이션 레이어도 인프라스트럭처 레이어도 도메인 레이어에 의존하지만 도메인 레이어는 다른 레이어에 의존해서는 안 된다는 규칙이 있다. 즉, 도메인 레이어의 변경에 의해 '애플리케이션 레이어'의 변경은 허용하지만 애플리케이션 레이어의 변경으로 도메인 레이어의 변경이 발생해서는 안된다. 애플리케이션 레이어 .. 자바 JAVA/스프링프레임워크 2023. 4. 30. 자바 자료구조 : Stack과 Queue 스택과 큐 배열에서 발전된 형태의 자료구조 스택과 큐의 구조는 비슷하지만 처리 방식은 다르다. import java.util.LinkedList; import java.util.Queue; import java.util.Stack; public class StackQueueAlgorithm { public static void main(String[] args) { Stack st = new Stack(); // Queue 인터페이스의 구현체인 LinkedList를 사용 Queue q = new LinkedList(); // // Stack에 객체를 하나씩 추가 st.push("0"); st.push("1"); st.push("2"); // Queue에 객체를 하나씩 추가 q.offer("0"); q.o.. 자바 JAVA/알고리즘&자료구조 2023. 4. 28. 스프링 유효성 검사(validation) 유효성 검사(validation) 입력 내용이 요건에 만족하는지 그 타당성을 확인하는 입력 체크를 말한다. 단일항목검사 입력 항목 하나에 대해 설정하는 입력체크 기능이다. Form 클래스 등의 필드에 어노테이션을 부여해서 사용하면 된다. 입력 체크를 위한 어노테이션은 Java EE에서 제공하는 어노테이션(Bean Validation)이나 하이버네이트(Hibernate) 프레임워크에서 제공하는 어노테이션(Hibernate Validation)이 있다. 수치 입력 항목에 알파벳 등의 문자열을 입력한 경우 등의 '형변환 체크'는 입력 체크를 설정하는 것만으로도 이용할 수 있기 때문에 '형변환 체크'용 어노테이션을 추가할 필요는 없다. 어노테이션 기능 설명 사용 에시 @Max 지정한 숫자 이하인 것을 검증한다... 자바 JAVA/스프링프레임워크 2023. 4. 23. 스프링 요청 파라미터(request parameter) 요청 파라미터(request parameter) : 서버에서 전송되는 값 각 상황에 맞게 쿼리 파리미터, 경로 변수, HTTP 본문 데이터를 사용해서 서버에 데이터를 전달할 수 있다. 메서드 역할 사용예시 GET 서버에서 리소스를 조회할 때 사용하는 메서드 사용자가 웹 페이지를 요청할 때, 브라우저가 이미지 파일을 요청할 때 POST 서버에서 데이터를 전송할 때 사용하는 메서드 사용자가 회원가입 폼을 제출할 때, 사용자가 게시글을 작성하여 제출할 때 PUT 서버에 데이터를 업데이트할 때 사용하는 메서드 사용자가 프로필 정보를 수정할 때 DELETE 서버에서 데이터를 삭제할 때 사용하는 메서드 사용자가 작성한 게시글을 삭제할 때 PATCH 서버에서 데이터를 일부만 수정할 때 사용하는 메서드 사용자가 게시글.. 자바 JAVA/스프링프레임워크 2023. 4. 19. 이전 1 2 3 다음