본문 바로가기

분류 전체보기361

[Spring] SQL과 CRUD, 엔티티, 리포지토리 SQL 📌 SQL(Structed Query Language) : 데이터베이스를 조작하기 위한 언어. CRUD 📌 CRUD : 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete) 📌 SQL의 CRUD 생성(Create) INSERT 데이터 등록. 읽기(Read) SELECT 데이터 참조. 갱신(Update) UPDATE 데이터 갱신. 삭제(Delete) DELETE 데이터 삭제. 📌 Postgre SQL의 CRUD 생성(Create) INSERT INTO 테이블명(칼럼명, 칼럼명, ...) VALUES(값, 값, ...); 읽기(Read) SELECT 칼럼명 FROM 테이블명; 갱신(Update) UPDATE 테이블명 SET 칼럼명 = 값 WHERE 갱신할 레코드를 특정하는 .. 2022. 11. 5.
[Spring] 데이터베이스와 테이블 데이터베이스 📌 데이터베이스(Database) : 데이터를 보관하는 곳. 📌 관계형 데이터베이스(Relational Database, RDB) : 데이터를 표 형식으로 표현하고, 여러 표에서 항목의 값 사이에 관계를 맺고 있는 데이터베이스. 💡 용어 - 테이블(Table) : 표 - 관계(Relationship) : 테이블과 테이블 간의 관계. 테이블 📌 테이블 : 규칙을 가진 테이터가 저장되는 곳. 📌 레코드와 칼럼 - 레코드(record) : 가로 행(row)을 말하며, 하나의 레코드는 한 건의 데이터를 나타냄. - 칼럼(column) : 세로 열(column)을 말하며, 하나의 칼럼은 데이터의 각 요소를 나타냄. 📌 제약 조건 NOT NULL NULL 입력 허용하지 않음. UNIQUE 중복값 입력 .. 2022. 11. 5.
[ETC] 스프링 프레임워크와 스프링 부트 스프링 프레임워크 📌 스프링 프레임워크 : 자바 기반의 오픈소스 프레임워크. 📌 특징 ① 경량 컨테이너. : 객체 생성, 소멸 등 생명 주기 관리하며, 스프링 컨테이너로부터 필요한 객체 얻어 올 수 있음. ② 제어의 역행(Inversion of Control, IoC) 지원. : 필요에 따라 스프링에서 사용자 코드 호출. ③ 의존성 주입(Dependency Injection, DI) 지원. : 각 계층이나 서비스 간에 의존성이 존재할 경우, 서로 연결. ④ 관점 지향 프로그래밍(Aspect-Oriented Programming, AOP) 지원. : 공통적으로 사용하는 기능 분리하여 관리. 스프링 부트 📌 스프링 부트 : 스프링 프레임워크 쉽게 사용하기 위한 도구. 📌 스프링 부트2 특징 : 리액티브 스택.. 2022. 11. 5.
[ETC] REST API와 JAX-RS REST API 📌 REST API(REpresentational State Transfer API) : 네트워크 상에서 클라이언트와 서버 사이의 통신을 구현하는 방법 중 하나. 서버 응답을 다양한 형태로 전달. 📌 장점 : 안정되고 검증된 웹 기술을 그대로 사용 가능. JAX-RS 📌 JAX-RS : 자바에서 REST API 개발을 위한 서버 프로그램의 표준 규격. 💡 자바 웹 개발에서 REST API를 구현하는 방법 ① JAX-RS ② 스프링 프레임워크의 RestController 2022. 11. 5.
[ETC] 서블릿과 JSP 서블릿 📌 서블릿 : 자바 기반 웹 프로그램 개발을 위해 만들어진 기술. 실행하기 위해서 서블릿 컨테이너가 필요함. 자바 중심으로 데이터 처리. → 자바에서 HTML 코드 사용. JSP 📌 JSP(Java Server Page) : 서블릿에서 HTML과 데이터 결합을 쉽게 하기 위해 만들어짐. HTML 중심으로 데이터 처리. → HTML에서 자바 코드 사용. 컨테이너에 의해 서블릿 형태의 자바 코드로 변환 후, 컴파일 되어 컨테이너에 적재되는 구조. 📌 단점 : 반복 출력 또는 조건 체크하는 경우, HTML 문법으로 해결할 수 없기 때문에 자바 코드를 사용해야 함. 따라서, 코드가 복잡해지고 가독성이 떨어지게 됨. JSTL과 EL 📌 JSTL(JSP Standard Tag Library)과 EL(Expr.. 2022. 11. 5.
[Spring] Spring Initializr Spring Initializr 📌 Spring Initializr : 스프링 부트에서 프로젝트를 시작할 때, 통합 개발 환경에 의존하지 않는 프로젝트를 만들 수 있음. https://start.spring.io/ 📌 사용법 Project 빌드 도구. Language 사용할 프로그래밍 언어. Spring Boot 사용할 스프링 부트 버전. ProjectMetadata - Group 패키지명. ProjectMetadata - Artifact 프로젝트 이름. ProjectMetadata - Name Artifact와 동일한 이름 사용하는 것이 좋음. ProjectMetadata - Description 프로젝트의 설명. ProjectMetadata - Package name 프로젝트의 패키지 이름. Depe.. 2022. 11. 4.
[Spring] 실습 : AOP 프로그램 만들기 AOP 프로그램 만들기 📌 AOP를 사용하려면 아래 코드를 build.gradle에 추가해야 함. ... dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:spring-boot-starter-aop' // 코드 추가. developmentOnly 'org.springframework.boot:spring-boot-devtools' testImplementation 'org.springframework.boot:spring-boot-starter-test' } ... 📌 AOP 클래스 생성 package com.example.demo.ch03.ao.. 2022. 11. 4.
[Spring] AOP(관점 지향 프로그래밍) AOP(관점 지향 프로그래밍) 📌 AOP(관점 지향 프로그래밍, Aspect Oriented Programming) : '횡단적 관심사'를 추출하고, 프로그램의 여러 곳에서 호출할 수 있게 함으로써 개발자는 실현해야 할 기능인 '중심적 관심사'에만 집중해서 작성할 수 있게 하는 구조. 📌 중심적 관심사(Primary Concern) : 실현해야 할 기능을 나타내는 프로그램. 📌 횡단적 관심사(Crossutting-Concerns) : 품질이나 유지보수 등의 관점에서 반드시 필요한 기능을 나타내는 프로그램. 📌 용어 어드바이스(Advice) 횡단적 관심사를 구현한 메서드. 로그 출력 및 트랜잭션 제어 등. 애스펙트(Aspect) 어드바이스를 정리한 클래스. 조인포인트(JoinPoint) 어드바이스를 중심적.. 2022. 11. 4.