WIL 항해99 4주차 회고록
2023. 2. 18. 03:29ㆍ항해99 시작
반응형
Spring 입문 학습
서버 개발자가 하는 일?
Client를 통해 사용자의 요청을 받아서 각 Client 가 필요로 하는 정보를 취합하고 정리하여 Client로 전달해 주는 애플리케이션 개발을 하는 사람들을 서버 개발자로 보실 수 있습니다.
소프트웨어 디자인 패턴(software design pattern)
소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다. 디자인 패턴은 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 관행이다.
소프트웨어 아키텍처 개론 참고 영상
참고 자료: https://www.youtube.com/watch?v=t2KkHw3WlN4
스키마란?
개념: DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 한다.
참고자료: https://jwprogramming.tistory.com/47
영속성(Persistence)란?
영속성(persistence)은 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미한다. 영속성은 파일 시스템, 관계형 테이터베이스 혹은 객체 데이터베이스 등을 활용하여 구현한다.
출처: https://sugerent.tistory.com/587
레이어드 아키텍처 패턴(Layered Architecture Pattern)
개념: 이름 그대로 여러 레이어를 분리하여 레이어마다 해야 할 역할을 정의해놓은 구조이다.
주요 계층: Presentation 계층, Domain 계층, Data Access 계층
- Presentation 계층: 사용자와 상호 작용 처리 계층. Spring에서는 @Controller 어노테이션을 사용하여 표현. 데이터베이스와 관련된 로직을 구현합니다.
- Domain(Business or Service) 계층: 서비스/시스템의 핵심 로직, 유효성 검사 및 계산을 포함하는 Business 논리 계층.
애플리케이션이 수행해야하는 도메인과 관련된 작업들을 담당한다. 스프링에서는 @Service 어노테이션을 사용해서 표현. 필요한 데이터의 생성, 수정, 읽기, 삭제를 처리하고 실제 데이터베이스에서 데이터를 저장, 수정 읽어 들이는 역할을 합니다.
- Data Access 계층: DAO 계층. Database / Message Queue / 외부 API와의 통신 등 처리. 데이터베이스 또는 원격 서비스에서 영구 데이터를 관리하는 방법을 분류하는 데이터 접근 계층. 스프링에서는 @Repository 어노테이션을 사용해서 표현합니다.
단방향 의존성: presentation layer는 business layer에만 의존 합니다. business layer는 persistence layer에만 의존 합니다.
참고자료:https://jojoldu.tistory.com/603
DI(Dependency Injection)?
스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로, 객체를 직접 생성하는게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다.
Ioc(Inversion of Control)?
"제어의 역전" 이라는 의미로, 말 그대로 메소드나 객체의 호출작업을 개발자가 결정하는 것이 아니라, 외부에서 결정되는 것을 의미한다. 제어의 역전이라고 말하며, 간단히 말해 "제어의 흐름을 바꾼다" 라고 한다.
Bean 과 Bean 컨테이너
스프링에서는 객체를 Bean이라고 부르며, 프로젝트가 실행될때 사용자가 Bean으로 관리하는 객체들의 생성과 소멸에 관련된 작업을 자동적으로 수행해주는데 객체가 생성되는 곳을 스프링에서는 Bean 컨테이너라고 부른다.

출처: https://velog.io/@gillog/Spring-DIDependency-Injection
Database?
개념: 데이터의 집합. 데이터의 구성은 최소의 중복으로 통합(integrated), 저장(stored)된 운영(operation) 데이터로 구성된다.
통합 데이터(integrated data):중복을 배제하나 경우에 따라 불가피하게 중복을 허용하는 데이터로, 이러한 의도적 중복은 항상 파악하여 관리할 수 있다.
저장 데이터(stored data) : 컴퓨터의 저장매체에 저장하여 관리하는 데이터를 의미한다.
운영 데이터(operation data): 단순한 데이터의 집합이 아니라 그 조직의 기능을 수행하는 데 없어서는 안될 필수의 데이터를 의미한다.
공용 데이터(shared data): 어느 하나의 응용프로그램이나 응용시스템을 위한 데이터가 아니라, 그 조직의 여러 사용자와 여러 응용시스템들이 서로 다른 목적으로 데이터를 공동으로 이용할 수 있게 한다.
DBMS: ‘Database Management System’ 의 약자로 데이터베이스 내의 정보를 구성하는 컴퓨터 프로그램의 집합으로서, 자료의 중복성을 제거하고 다른 특징들 중에 무결성, 일관성, 유용성을 보장하기 위해서 자료를 제거하고 관리하는 소프트웨어 체계이다.
RDBMS: ‘Relational DBMS’의 약자로 관계형 데이터베이스라고 불립니다. 테이블(table)이라는 최소 단위로 구성되며, 이 테이블은 열(column)과 행(row)으로 이루어져 있습니다.
RDBMS의 종류: MySQL, PostgreSQL, Oracle Database
참고자료 : https://m.blog.naver.com/sundooedu/221301384166
SQL(Structured Query Language)
구조적 쿼리 언어(SQL)는 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어입니다. RDBMS에서 사용되는 언어입니다. 수 많은 정보를 Database에서 조작하고 관리하기 위해서는 SQL 언어를 사용해야합니다.
SQL 시스템의 구성 요소:
1. SQL 테이블: 관계형 데이터베이스의 기본 요소입니다. SQL 데이터베이스 테이블은 행과 열로 구성됩니다.
데이터베이스 엔지니어는 여러 데이터베이스 테이블 간의 관계를 생성하여 데이터 스토리지
공간을 최적화합니다.
2. SQL 문 : SQL 문 또는 SQL 쿼리는 관계형 데이터베이스 관리 시스템에서 이해하는 유효한 명령입니다.
소프트웨어 개발자는 다양한 SQL 언어 요소를 사용하여 SQL 문을 작성합니다.
SQL 언어 요소는 올바른 SQL 문을 구성하는 식별자, 변수 및 검색 조건과 같은 구성 요소입니다
3. 저장 프로시저: 저장 프로시저는 관계형 데이터베이스에 저장된 하나 이상의 SQL 문 모음입니다.
소프트웨어 개발자는 저장 프로시저를 사용하여 효율성과 성능을 개선합니다.
참고자료: https://aws.amazon.com/ko/what-is/sql/
DDL(Data Definition Language): 테이블이나 관계의 구조를 생성하는데 사용합니다.
DCL(Data Control Language): 데이터의 사용 권한을 관리하는데 사용합니다.
DML(Data Manipulation Language): 테이블에 데이터를 검색, 삽입, 수정, 삭제하는데 사용합니다.
JDBC(Java Database Connectivity): JDBC is a Java API to connect and execute the query with the database. It is a part of JavaSE (Java Standard Edition). JDBC API uses JDBC drivers to connect with the database. JDBC참고자료, Persistence Framework참고자료,
참고자료: https://zzdd1558.tistory.com/88
ORM(Object Relational Mapping)
객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.
참고자료: https://gmlwjd9405.github.io/2019/02/01/orm.html
JPA연관관계
JPA 의 경우는 Enitity 클래스의 필드 위에 연관관계 어노테이션 (@) 을 설정해 주는 것만으로 연관관계가 형성됩니다!
일대다 (1:N) @OneToMany Order (1) : Food (N) 배달 주문 1개에 음식 여러개 선택 가능
다대일 (N:1) @ManyToOne Owner (N) : Restaurant(1) 음식점 주인 여러명이 하나의 음식점을 소유 가
일대일 (1:1) @OneToOne Order (1) : Coupon (1) 배달 주문 1개 주문 시, 쿠폰 1개만 할인 적용 가능
다대다 (N:N) @ManyToMany User (N) : Restaurant(N) 고객은 음식점 여러개 찜 가능.음식점은 고객 여러명에게 찜 가능
Spring Data JPA
JPA 를 편리하게 사용하기 위해, 스프링에서 JPA 를 Wrapping
스프링 개발자들이 JPA 를 사용할 때 필수적으로 생성해야 하나, 예상 가능하고 반복적인 코드들 → Spring Data JPA 가 대신 작성
Repostiory 인터페이스만 작성하면, 필요한 구현은 스프링이 대신 알아서 척척!
Spring MVC
개념: Spring에서 제공하는 웹 모듈로, Model, View, Controller 세가지 구성요소를 사용해 사용자의 다양한 HTTP Request을 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답, View를 표시하는 html을 return하는 응답 등과 같은 다양한 응답을 하 수 있도록 framwork이다.
참고자료: https://kotlinworld.com/326
참고자료: https://catsbi.oopy.io/f52511f3-1455-4a01-b8b7-f10875895d5b
반응형
'항해99 시작' 카테고리의 다른 글
| WIL 항해99 6주차 회고록 (0) | 2023.02.28 |
|---|---|
| 조건문 & 반복문 Math.random() 정리 (1) | 2023.01.23 |