목록Spring/핵심 가이드 (11)
코드 그라데이션
1. Docker 설치: Docker는 컨테이너를 사용하여 애플리케이션을 실행하는 데 사용됩니다. Docker를 설치하려면 https://docs.docker.com/get-docker/ 사이트를 방문하여 설치 지침을 따르면 됩니다. 2. Redis Docker 이미지 다운로드: Redis 이미지를 다운로드하여 Docker에서 실행할 수 있습니다. 다음 명령어를 사용하여 Redis Docker 이미지를 다운로드합니다. docker pull redis 3. Spring Boot 프로젝트 생성: Spring Boot 애플리케이션을 만들려면 IntelliJ에서 Gradle 프로젝트를 생성해야 합니다. IntelliJ를 열고 File > New > Project를 선택합니다. 그런 다음 Gradle을 선택하고 ..
인증 : Authentication 인가 : Authorization 참고도서 : 스프링 부트 핵심 가이드(장정우 저) JWT (JSON Web Token) : 당사자 간에 정보를 JSON 현태로 안전하게 전송하기 위한 토큰 - JWT는 URL로 이용할 수 있는 문자열로만 구성되어 있으며, 디지털 서명이 적용되어 있어 신뢰할 수 있다. - JWT는 주로 서버와의 통신에서 권한 인가를 위해 사용한다. - URL에서 사용할 수 있는 문자열로만 구성되어 있기 때문에 HTTP 구성요소 어디든 위치할 수 있다. JWT의 구조 헤더(Header) 내용(Payload) 서명(Signature) 헤더에는 검증과 관련된 내용이 담겨 있다. 두 가지 정보가 포함되어 있는데, alg와 typ 속성이다. 1) alg에서는 해..
템플릿 엔진 : "데이터를 미리 정의된 템플릿에 바인딩" 해서 뷰의 표시를 도와주는 것 타임리프 - HTML 기반의 템플릿 엔진으로, 정해진 문법으로 작성하면 페이지를 동적으로 조립해 준다. (조건 분기나 반복 구분 등을 사용할 수 있다.) - HTML을 기반으로 하기 때문에 최종 출력을 생각하면서 뷰를 만들 수 있다. 즉, 타임리프를 사용하면 디자이너와 쉽게 협업을 할 수 있다는 뜻. 요청 파라미터
MVC : 프로그램의 처리 역할을 나누어서 프로그램을 작성하는 방법 -> 웹 시스템 개발에 자주 사용되고 있다. Model , View , Controller 1. Model - 시스템에서 비즈니스 로직 담당(시스템의 코어 부분, 시스템의 목적을 처리하는 부분) ex) 회원가입 상황 - 아이디 중복 확인 / 본인 인증 / 비밀번호 규칙 확인 2. View : 외형. 사용자 입력과 결과 출력 등 시스템에서 표현 부분을 담당하며 웹 애플리케이션에서는 주로 화면을 담당한다. 3. Controller : 서비스 처리를 담당하는 모델과 화면 표시를 담당하는 뷰를 제어하는 역할. -- 사용자가 입력한 내용을 뷰에서 받고, 받은 데이터를 기준으로 모델에 내용을 전달한다. -- 또, 모델에서 받은 데이터를 뷰에 전달해..
어노테이션의 의미 1) 주석을 의미하는 영어 포현 2) @oooooo 형태로 작성 3) 외부 소프트웨어에 필요한 처리 내용을 전달한다. 인스턴스 생성 어노테이션 - 애플리케이션 만들 때 레이어로 만드는 것이 좋다. 즉 계층화를 하라는 의미이다. 도메인 주도 설계 레이어 개요 애플리케이션 레이어 (Application Layer) 클라이언트와의 데이터 입출력을 제어하는 레이어 도메인 레이어 (Domain Layer) 애플리케이션의 중심이 되는 레이어로서 업무 처리를 수행하는 레이어 인프라스트럭처 레이어 (Infrastructure Layer) 데이터베이스에 대한 데이터 영속성(Persistence Context) 등을 담당하는 레이어 인스턴스 생성 어노테이션(주요) 어노테이션 개요 @Controller 애..
데이터베이스 : 데이터를 보관하기 위한 상자. 특정 규칙을 적용하여 데이터를 정리해서 보관한다. 보통 약칭 DB라고 부른다. 관계형 데이터베이스 : 데이터를 표 형식으로 표현하고, 여러 표에서 항목의 값 사이에 관계를 맺고 있는 데이터베이스. 표는 테이블이라고 부르고 테이블과 테이블 관계를 Relationship이라고 부른다. 관계형 데이터베이스는 가장 일반적으로 사용되는 데이터베이스. 보통 RDB라고 부른다. 테이블 : 데이터베이스 안에서 실제로 규칙을 가진 데이터가 저장되는 상자. 레코드와 칼럼 - 테이블의 세로 열을 칼럼(column) / 가로 행을 레코드(record)라고 한다. [테이블의 제약 조건] 제약 조건의 예 > 제약 조건 개요 NOT NULL NULL 입력을 허용하지 않는다(필수 입력)..
의존성 주입 뜯어보기 : 의존하는 부분을 외부에서 주입하는 것. -- 의존하는 부분 : "사용하는 객체" 클래스에 "사용되는 객체" 클래스가 작성된 상태 -- 외부에서의 주입 : "사용하는 객체" 클래스의 밖에서 "사용되는 객체" 인스턴스를 주입하는 것. - 지금까지는 인스턴스를 생성하는 데에 new 키워드를 사용했지만, 인스턴스 생성과 같은 작업을 프레임워크에 맡길 수 있고, 그 역할을 하는 것이 DI 컨테이너다. *스프링 프레임워크는 임의로 구현한 클래스를 인스턴스로 만들어주는 기능을 제공 => DI 컨테이너가 그 기능을 제공한다. 다섯 가지 규칙 1) 인터페이스를 이용하여 의존성을 만든다. ==> 의존하는 부분에 인터페이스를 이용한다는 것. 2) 인스턴스를 명시적으로 생성하지 않는다. ==> 인스턴..
- 이 두 가지 기능을 애플리케이션 전체에 제공함으로써 생산성/유지보수성이 높은 애플리케이션 구축을 가능하게 한다. 의존성 주입(DI) (Dependency Injection) : 의존하는 부분을 외부에서 주입하는 것 관점 지향 프로그래밍(AOP) (Aspect Oriented Programming) : 다음 두 가지 요소로 구성됨 - 중심적 관심사: 실현해야 할 기능을 나타네는 프로그램 - 횡단적 관심사: 본질적인 기능은 아니지만 품질이나 유지보수 등의 관점에서 반드시 필요한 기능을 나타내는 프로그램. (실현하는 프로그램과 별도로 부수적으로 필요한 프로그램) --ex) 예외 처리 / 로그 정보 화면이나 파일 등으로 출력 처리 / 데이터베이스의 트랜잭션 제어 등 의존성 - 사용하는 객체(A클래스), 사용..