WEB개발/TIL(39)
-
Persistence Framework와 Mybatis
JDBC Java Database Connectivity Java와 DB를 연결해주는 통로로, Java에서 데이터베이스에 접근할 수 있도록 도와주는 자바 API Persistence Framework 영속성(Persistence) : 프로그램이 종료되어도 데이터가 사라지지 않고 어딘가에 저장 Java에서는 JDBC를 통해 영속성을 부여할 수 있음 그러나, JDBC 프로그래밍은 번거로운 매핑 작업을 개발자가 직접 수행해야 한다는 문제가 존재함 이러한 문제를 해결하기 위한 것이 Persistence Framework => 개발자가 직접 번거로운 작업을 수행하지 않고 영속성 부여 가능 SQL Mapper와 ORM이 이에 해당함 SQL Mapper Object와 SQL의 필드를 매핑해 데이터를 객체화하는 기술 ..
2023.03.24 -
Spring에서 REST API
API(GET, POST) 1. GET 1.1. @GetMapping("url"): Controller에서 Get method의 URL을 받을 때 사용 @GetMapping("url주소") public String 함수명() { return "템플릿 파일명"; } 1.2. 클라이언트에서 보낸 데이터를 받는 방법 @RequestParam: 쿼리스트링 값(?key=value)을 받음 @PathVariable: url-path 값을 받음 // 1. @RequestParam 예시 // 1-1. key값과 변수명을 같게 설정 @GetMapping("url주소") public String 함수명(@RequestParam String key) { return "템플렛 파일명"; } // 1-2. key값과 변수명을 ..
2023.03.22 -
Spring(DTO&VO, Bean, Annotation)
DTO Data Transfer Object 계층 간 데이터 교환을 위해 사용하는 객체 다른 로직을 가지지 않는 순수한 데이터 객체(Java Beans) VO Value Object DTO와 비슷하지만, VO는 read-only 속성을 갖고 있는 객체 Getter만 가지고 있어 값에 대한 수정 불가능 다른 로직 가질 수 있음 DTO VO 목적 계층간 데이터 전달 값 자체 표현 동등성 필드(변수)값이 같아도 같은 객체 아님 필드(변수)값이 같으면 같은 객체 가변성 setter 존재 시, 가변 setter 비존재 시, 불가변 불변 로직 getter/setter 외의 로직이 필요하지 않음 getter/setter 외의 로직이 있어도 무 Bean Spring IoC 컨테이너가 관리하는 Java 객체 Spring..
2023.03.21 -
REST API
API : Application Programming Interface Interface: 어떤 장치 간 정보를 교환하기 위한 수단이나 방법 개발에서의 API는 요청과 응답을 구성하는 방법에 대한 정보들이 들어있음 REST : Representational State Transfer 서버와 클라이언트 통신 방법 중 하나 http URI를 통해 resource를 명시하고, http method를 이용해 resource를 교환하는 통신 방법 REST의 특징(아키텍처) 참고) https://restfulapi.net/ 1. Server-Client 구조 Server와 Client를 분리하여 최대한 독립적으로 개발 가능 2. Stateless(무상태) 작업을 위한 상태 정보를 따로 저장하고 관리하지 않음. = ..
2023.03.21 -
Spring 정의, Spring Boot, Thymeleaf 문법
Spring : Java 기반의 웹 애플리케이션을 만들 수 있는 백엔드 프레임워크 특징 1. IoC(Inversion of Control, 제어 반전) 2. DI(Dependency Injection, 의존성 주입) 3. AOP(Aspect Object Programming, 관점 지향 프로그래밍) 4. POJO(Pain Old Java Object 방식) IoC(Inversion of Control) 제어 반전 객체의 생성부터 소멸까지 개발자가 직접하는 것이 아닌 Spring Container가 대신해주는 것 제어권이 개발자가 아닌 IoC에 있으며, IoC가 개발자의 코드를 호출해 필요한 객체를 생성/소멸해 생명주기를 관리 DI(Dependency Injection) 의존성 주입 구성 요소의 의존 관계..
2023.03.21 -
Java(추상클래스, 인터페이스)
추상클래스 : 하나 이상의 추상 메서드를 포함하는 클래스 참고) 추상 메서드 없이도 abstract키워드를 붙여 추상클래스 생성 가능 추상메서드 : 선언은 되어 있으나 구현이 되어있지 않은 메서드 따라서, 추상 클래스를 상속받는 서브클래스에서 추상 메서드를 오버라이딩 해줘야 함 추상클래스 사용 이유 : 설계와 구현 분리를 위함 슈퍼(부모) 클래스에서 설계: 개념 정의 서브(자식) 클래스에서 구현: 구체적 행위 구현 추상클래스 예시) // 추상클래스(슈퍼클래스) public abstract class Abstract { public int num; public void test1() {}; // 추상메서드 public abstract void test(); // 설계 } // 서브클래스 public cla..
2023.03.09