Spring 23

Spring Boot Validation

항목설명@Size문자 길이를 제한한다.@NotNullNull을 허용하지 않는다.@NotEmptyNull 또는 빈 문자열("")을 허용하지 않는다.@Past과거 날짜만 입력할 수 있다.@Future미래 날짜만 입력할 수 있다.@FutureOrPresent미래 또는 오늘 날짜만 입력할 수 있다.@Max최댓값 이하의 값만 입력할 수 있도록 제한한다.@Min최솟값 이상의 값만 입력할 수 있도록 제한한다.@Pattern입력값을 정규식 패턴으로 검증한다.

BackEnd 2024.12.18

layout

layout:decorate 표준 HTML 구조 살펴보기다음 예로 표준 HTML 문서의 구조를 살펴보자.[표준 HTML 구조의 예](... 생략 ...)곧이어 작성할 템플릿의 일부이다. 여기서는 눈으로만 살펴보자.표준 HTML 문서의 구조는 앞의 예처럼 html, head, body 요소가 있어야 하며, CSS 파일은 layout.html은 모든 템플릿이 상속해야 하는 템플릿으로, 표준 HTML 문서 구조로 정리된 기본 틀이 된다. body 요소 안의 은 layout.html을 상속한 템플릿에서 개별적으로 구현해야 하는 영역이 된다. 즉, layout.html 템플릿을 상속하면  영역만 수정해도 표준 HTML 문서로 작성된다.question_list.html에 템플릿 상속하기question_list.ht..

BackEnd 2024.12.17

서비스

여기서 말하는 ‘서비스’와 웹 서비스는 서로 다른 개념임에 주의하자.우리는 그동안 QuestionController에서 QuestionRepository를 직접 접근해 질문 목록 데이터를 조회했다. 하지만 대부분의 규모 있는 스프링 부트(Spring Boot) 프로젝트는 컨트롤러에서 리포지터리를 직접 호출하지 않고 중간에 서비스를 두어 데이터를 처리한다. 이러한 서비스를 사용하여 SBB 프로그램을 개선해 보자.서비스가 필요한 이유서비스란 무엇일까? 서비스(service)는 간단히 말해 스프링에서 데이터 처리를 위해 작성하는 클래스이다. 우리는 그동안 서비스 없이도 웹 프로그램을 동작시키는 데 문제가 없었다. 그런데 굳이 서비스를 사용해야 할까? 서비스가 필요한 이유를 좀 더 자세히 알아보자.복잡한 코드를..

BackEnd 2024.12.16

정보보안

ComputerScience 정의한줄 요약서론특징한줄 요약💡 서론목차한줄 요약📌 알고리즘📌 컴퓨터 구조📌 운영체제📌 네트워크📌 프로그래밍 언어📌 자료구조📌 데이터 베이스📌 정보보안표한줄 요약속성예시설명파일 권한drwx+++++파일 권한을 나타내는 문자열입니다.링크 수4 || 3디렉토리를 참조하는 하드 링크 수입니다.소유자User디렉토리의 소유자입니다.소유자 그룹staff디렉토리가 속한 그룹입니다.파일 크기128디렉토리 크기(Byte)입니다.수정 날짜와 시간3 5 09:26마지막으로 수정된 날짜와 시간입니다.파일/디렉토리 이름Desktop파일이나 디렉토리의 이름입니다.

ComputerScience 2024.12.16

파일관리

자바 파일이 패키지별로 정리되어 있지 않으면 유지보수 시 어려움이 발생합니다.패키지를 활용하면 자바 파일을 원하는 대로 분류할 수 있다. 지금까지 우리가 작성한 파일은 오른쪽과 같이 com.mysite.sbb라는 이름의 패키지 안에 모두 모여 있다.이렇게 하나의 패키지 안에 모든 자바 파일을 넣고 관리하는 것은 바람직하지 않다. 그러므로 우리는 SBB의 도메인별로 패키지를 나누어 자바 파일을 관리해 보자.여기서 도메인은 ‘질문’, ‘답변’처럼 프로젝트의 주요 기능을 뜻하는 말이다.다음 표와 같이 SBB 프로젝트의 도메인별로 패키지를 구성하려고 한다.도메인 이름패키지 이름설명questioncom.mysite.sbb.question게시판의 질문과 관련된 자바 파일 모음answercom.mysite.sbb.a..

BackEnd 2024.12.16

jpa sql

SQL 연산자리포지터리의 메서드 예시설명AndfindBySubjectAndContent(String subject, String content)Subject, Content 열과 일치하는 데이터를 조회OrfindBySubjectOrContent(String subject, String content)Subject열 또는 Content 열과 일치하는 데이터를 조회BetweenfindByCreateDateBetween(LocalDateTime fromDate, LocalDateTime toDate)CreateDate 열의 데이터 중 정해진 범위 내에 있는 데이터를 조회LessThanfindByIdLessThan(Integer id)Id 열에서 조건보다 작은 데이터를 조회GreaterThanEqualfindB..

BackEnd 2024.12.16

@Autowired

Annotationenvironmentvariables What ?@Autowired Spring은 어플리케이션이 실행될 때 @Component, @Service, @Repository, @Controller, @Bean 어노테이션이 붙은 클래스들을 스캔해 빈으로 등록하고 관리합니다. IoC와 DI 기능을 활용하기 위해 사용하는 어노테이션입니다.해당 필드, 생성자 파라미터, 또는 메서드 파라미터에 호환되는 타입의 빈을 찾아서 자동으로 주입하라고 지시합니다.How ?@Autowired Spring은 @Autowired가 붙은 곳의 타입과 일치하는 빈을 컨테이너에서 찾습니다.이 어노테이션이 붙은 클래스의 인스턴스를 생성하고, 필요에 따라 다른 빈에 주입할 수 있도록 관리합니다. @Service, @Repos..

BackEnd 2024.12.13

@Repository

우리는 앞서 엔티티로 테이블을 구성하여 데이터를 관리할 준비를 마쳤다. 하지만 엔티티만으로는 테이블의 데이터를 저장, 조회, 수정, 삭제 등을 할 수 없다. 이와 같이 데이터를 관리하려면 데이터베이스와 연동하는 JPA 리포지터리가 반드시 필요하다.리포지터리 생성하기엔티티가 데이터베이스 테이블을 생성했다면, 리포지터리는 이와 같이 생성된 데이터베이스 테이블의 데이터들을 저장, 조회, 수정, 삭제 등을 할 수 있도록 도와주는 인터페이스이다. 이때 리포지터리는 테이블에 접근하고, 데이터를 관리하는 메서드(예를 들어 findAll, save 등)를 제공한다.1) 리포지터리를 만들기 위해 com.mysite.sbb 패키지를 선택한 후 마우스 오른쪽 버튼을 누르고 [New → Interface]를 클릭해 다음과 같..

BackEnd 2024.12.13