spring MVC 프레임워크에서 사용되는 개념, 뷰 템플릿과 컨트룰러 사이에서 데이터 전달하는데 사용되고 컨트룰러가 뷰에 전달할 데이터를 담고 있는 컨테이너로 뷰 템플릿에서 이 데이터를 사용하여 동적인 콘텐츠를 생성할 수 있도록 함
assertTrue(isPresent()) method assertTrue()와 isPresent() method는 모두 검사의 역할을 하지만 서로 다른 목적과 상황에서 사용됨 isPresent()는 optional객체를 검사하고 assertTrue()는 테스트 케이
assertTrue() method 테스팅 프레임워크에서 주로 사용되는 method 주어진 조건이 true인지 검사 false라면 AssertionError예외를 발생시켜 테스트를 실패로 표시함
isPresent() method Optional class에 method중 하나 값이 존재할 수도 있고 없을 수도 있는 상황에서 다루는 데 사용 null, NullPointerException을 방지함 Optional 객체가 비어있지 않으면, true반환, 그렇지
save() method save method는 엔티티를 저장하거나 업데이트 할 때 사용 수행가능 한 상황 새로운 엔티티 저장 : 엔티티가 새로운 것이고 해당 엔티티의 주요 식별자가 데이터베이스에 없는 경우 save메서드는 해당 엔티티를 데이터베이스에 저장 기존 엔티
Hibernate level: # hibernate는 데이터베이스와 상호작용하는 과정을 로깅하는데 사용되는 여러 로깅 레벨 제공 org.hibernate.orm.jdbc.bind: TRACE org.hibernate.orm.jdbc.extract:
동적인 쿼리를 생성하기 위한 조건을 정의하는 방법주요 요소 이해Specification 인터페이스 : Specification을 정의하기 위한 인터페이스, toPredicate메서드를 가지고 있어서 검색조건을 정의Predicate : 검색 조건을 표현하는 객체, Cri
ObjectInputStream ObjectInputStream은 스트림으로부터 객체를 역직렬화하는 데 사용 객체를 파일이나 네트워크에서 읽어와 다시 객체로 변환 readObject() 메서드를 사용하여 스트림에서 객체를 읽어옴 try (ObjectInputStre
ObjectInputStream 객체를 스트림에서 직렬화하는데 사용 객체를 파일이나 네트워크로 전송하기 위해 직렬화된 형식으로 반환 writeObject() 메서드 사용 try(ObjectOutputStream oos = new ObjectOutputStream(n
직렬화된 데이터를 다시 객체로 변환하는 과정ObjectOutputStream으로 직렬화된 데이터를 ObjectlnputStream으로 읽어오는 것으로 이루어진 것원본 객체와 동일한 상태를 가지며, 객체를 이전 상태로 복원하는데 사용
객체를 데이터 스트림으로 변환하는 프로세스를 의미객체의 현재 상태를 저장하고 나중에 재구성하기 위해 사용네트워크를 통해 객체를 전송하거나 파일에 저장할 때 사용
java 직렬화 프로세스에서 사용되는 정적 상수객체를 직렬화, 역직렬화 할 때 사용되는 버전번호를 나타냄네트워크 전송이나 파일 저장과 같은 상황에서 유용하며, 객체를 전송하거나 저장하기 위해 사용직렬화된 객체가 변경되었는지 확인 가능직렬화되었을 때 클래스의 구조가 변경
Data Binding클라이언트에서 서버로 전송되는 데이터를 서버 객체에 매핑하는 프로세스HTTP 요청의 매개변수를 java 객체의 필드에 매핑, json 요청을 java 객체로 변환하는 등의 작업 포함spring MVC는 data binding 자동 처리, 사용자 입
java기반의 웹 응용 프로그램을 개발하기 위한 웹 프레임워크MVC는 Model-View-Controller 애플리케이션을 데이터, 사용자 인터페이스 및 제어 로직으로 분리하는 소프트웨어 디자인 패턴을 말함핵심기능DispatcherServlet : 모든 요청을 처리하고
spring MVC 에서 사용되는 기능 중 하나속성URL 리다이렉션 : 컨트룰러가 요청을 처리하고 다른 URL로 리다이렉션할 때 사용됨POST 요청 처리 : POST요청을 처리한 후에 리다이렉션을 수행하여 사용자가 브라우저의 새로 고침 버튼을 눌렀을 때 중복 제출 방지
model method 종류 addAttribute(String attributeName, Object attributeValue) : 지정된 이름으로 속성 추가 addAttribute(Object attributeValue) : 타입을 확인하여 적절한 속성 이름으
spring의 model 인터페이스에서 제공하는 메서드 중 하나, 뷰 템플릿에서 데이터 추가 가능
FetchType.LAZY : 지연로딩을 의미, 엔티티를 로드할 때 연결된 엔티티를 가져오지 않고 필요할 때 가져오게끔 함, 대부분의 상황에서 선호되는 옵션이며, 성능을 최적화하는데 도움이 됨FetchType.EAGER : 즉시 로딩을 의미, 연결된 엔티티가 항상 함께
관계형 데이터베이스에서 사용되는 중요한 개념테이블 간의 관계를 설정하고 유지하기 위해 사용됨목적두 테이블 간의 관계 설정 : 외래 키를 사용하면 한 테이블의 행이 다른 테이블의 특정 행과 관련되어 있음을 나타낼 수 있음, 이 관계를 통해 두 테이블 간의 관련성 설정가능
데이터 컬렉션을 처리하고 조작하기 위한 함수형 프로그래밍 기법데이터를 선언적으로 처리 가능, 병렬 처리도 간편하게 수행 가능데이터 검색과 필터링 : 데이터베이스 쿼리나 컬렉션에서 원하는 항목을 검색하고 필터링할때 스트림 사용가능매핑과 변환 : 데이터를 한 형식에서 다른
절대경로프로토콜(http, https 등)을 포함한 완전한 URL 경로주어진 URL이 현재 페이지의 위치와 상관없이 항상 동일한 위치를 가리킴주로 외부사이트로의 연결이나 프로토콜에 의존하는 리소스에 대한 링크 생성할 때 사용
상대경로 현재 페이지를 기준으로 상대적인 URL경로현재 위치에서의 상대적인 위치를 가리킴같은 도메인의 내부 페이지에 대한 링크 생성할 때 사용
Bootstrap오픈 소스 프론트엔드 프레임워크html, css, js를 더 빠르고 쉡게 개발을 도와주는 도구반응형 웹 페이지 디자인에 유용그리드, 시스템, 버튼, 양식, 탐색 모음, 경고 메시지 등과 같은 UI 도구 제공부트스트랩 버전이 같은 것을 사용해야함html
Bootstrap/Tailwind/Daisy UI 정리 부트스트랩 테일윈드 데이지UI 장점 유명하고 다양한 컴포넌트 제공 매우 유연하고 확장 가능한 디자인 시스템 시각적인 표현이 우수한 디자인 시스템 단점 일부 커스터마이징에 제약이 있을 수 있음 클래스 이름이 길 수 있음 ...
스프링 MVC에서 폼 데이터의 바인딩 및 유효성 검증과 관련된 결과를 저장하는 인터페이스발생항 오류 처리 가능@Valid 어노테이션과 함께 사용하여 객체의 유효성 검증오류 정보 저장hasErrors() : 바인딩 결과에 오류가 있는지 여부를 나타내는 불리언 값 반환ge
Thymeleaf Util, 함수 정리 > #strings : 문자열 처리를 위한 유틸리티, 문자열 연산 및 포맷팅 수행 java ex) #numbers.formatInteger(myNumber, '0,0') 숫자를 천단위로 포맷 > #dates : 날짜 및 시간처
폼 유효성 검사와 관련된 정보를 제공다양한 유틸리티 메서드 제공하여 폼 필드와 관련된 오류 및 메타데이터에 접근 가능hasErrors() : 바인딩된 필드에 오류가 있는지 여부 확인allErrors() : 모든 오류 메시지 목록 반환allErrors(fieldName)
특성 | BindingResult | |----------------|-------------------------|---------------------------------|| 사용되는 위치 | 스
data-bs-toggle드롭다운, 탭 모달 등 부트스트랩의 토글 컴포넌트에 사용data-bs-target 속성과 함께 사용컴포넌트가 사용자와 상호작용을 할 수 있도록 만들어줌잘못된 사용 시 사용자 경험에 부정적인 영향 미침data-bs-target 모달, 드롭다운 등
Collapse웹 페이지에서 접을 수 있는 콘텐츠 영역을 생성아코디언, 토글에서 사용data-bs-toggle="collapse": 클릭할 때 콘텐츠가 축소 또는 확장되도록 토글 기능을 부여href="id="collapseExample": 토글될 요소의 식별자Tolit
ID선택자 Class 선택자 javascript 선택자 data-bs-xxx 선택자\- 특정 속성을 사용하여 데이터 속성을 포함하는 요소를 타겟으로 지정합니다.
Spring Framework 일부, 데이터 정렬을 지정하는데 사용데이터 정렬에 필요한 정보를 나타내는데 사용Sort 클래스는 하나이상의 Sort.Order 객체를 가지고 있음사용법//createDate 속성을 내림차순으로 정렬하는 Sort 객체 생성//"createD
프로그래밍 언어에서 특정 값을 나타내기 위해 사전에 정의된 상수 십합을 나타내는 데이터 유형제한된 값 집합가독성타입 안정성switch문과 함께 사용Spring boot에서 Enum상황Role(역할) 정의state(상태) 표현상수 값 정의유한한 선택지 표현데이터베이스 상
웹 애플리케이션 보안 공격중 하나로, 인증된 사용자가 악의적인 웹 사이트를 통해 의도치 않는 요청을 보내는 것을 막는 보안 문제CSRF 토큰CSRF 공격을 방지하기 위해 CSRF 토큰 사용서버는 각 세션에 고유한 CSRF 토큰 생성, 이 토큰은 미리 정의된 위치에 삽입
inputmeta 헤더
disable 보호기능 비활성화csrfTokenRepository CSRF 토큰을 저장하고 검색하는데 사용되는 저장소ignoringAntMatchersCSRF 보호를 비활성화할 요청 경로 정의requireCsrfProtectionMatcher CSRF 보호를 활성화할
layout 속성 종류 'layout:decorate' : 속성을 사용하여 레이아웃페이지 지정 전체 레이아웃을 적용하여 페이지 꾸밈 가능 레이아웃이 복잡할 경우 유지 관리 어려움 가능, 일부 속성 충돌 다른 속성과 충돌하지 않도록 주의 중첩될 경우 오류 발생 ex) My Page 내...
th:action은 속성을 안쓰고 method="POST"에서 대문자로 썼을까? 코드 이유 --- 속성을 쓰지 않는 이유 --- Thymeleaf의 th:action 속성은 html 요소의 action 속성을 대체하는데 사용된다 설정이 되어 있지 않을 시 기본적으로 현재 페이지의 URL로 요청이 전송된다 --- 대문자로 쓰는 이유 --- form ...
Thymeleaf Layout Dialect에서 제공하는 속성으로 , 페이지 제목을 동적으로 조작하는데 사용레이아웃 파일에서 페이지 제목을 형식화 하거나 레이아웃에서 사용하는 제목 템플릿을 정의하는데 사용layout:title-pattern="$CONTENT_TITLE
Lombok 라이브러리 일부분으로 @EqualsAndHashCode 어노테이션과 함께 사용equals와 hashCode 메소드를 구현할 때, 기본적으로 모든 필드를 사용하여 비교하는데 이러한 기본 동작을 변경하고자 할 때 @EqualsAndHashCode.Include
빌더 패턴을 사용하여 객체를 생성할 수 있는 빌더 클래스 생성객체의 생성과 초기화를 더 쉽게 만들기 위한 디자인 패턴객체를 생성할 때 여러 개의 매개변수를 가진 생성자를 사용하는 대신, 각각의 매개변수를 명시적으로 설정 가능객체의 생성과정이 더 명확해지고 가독성이 높아
비동기적인 요청을 처리하기 위해 사용메시지 큐 또는 이벤트 큐를 사용하여 백그라운드에서 작업을 수행하거나 메시지를 처리하는데 사용비동기 작업은 주로 웹 애플리케이션에서 장시간이 걸리는 작업이나 블로킹 작업을 처리하기 위해 사용애플리케이션의 응답성을 향상시키고 더 나은
쿠키의 동작을 제어하고 웹 애플리케이션의 상태를 유지하는데 중요한 역할name : 쿠키를 식별하는데 사용되고 유니크해야 하며 이름이 중복되면 덮어씌여질 수 있다Value : 쿠키에 저장되는 사용자 정보 포함하고 보안문제가 발생할 수 있으므로 민감한 정보를 저장하지 않아
임의의 길이의 입력 데이터를 고정된 길이의 데이터로 매핑하는 함수다양한 보안 및 데이터 처리 작업에 사용고정된 출력 길이 : 입력 데이터의 크기와 관계없이 항상 일정한 길이의 해시 값을 생성일방향 함수 : 해시 값을 생성하는 반복 가능한 알고리즘, 원래 데이터를 해시
비밀번호 해시 함수사용자의 비밀번호와 같은 중요한 정보를 안전하게 보호하기 위해 사용안전한 해시 기술 : 일반적으로 안전한 해시 기술로 알려저 있는데 비밀번호를 안전하게 보호하기 위해 설계되었으며, 잘 구현된 경우에는 보안 상의 위협으로 부터 보호 가능솔트 기능 : 각
사용자가 소셜 미디어플랫폼이나 다른 웹 서비스와 안전하게 상호 작용할수 있도록 설계되는 표준 인증 프로토콜사용자가 자신의 정보를 웹사이트나 애플리케이션과 공유할 수 있도록 허용하면서 보안을 유지하기 위해 개발Resource Owner(리소스 소유자) : 보호된 리소스에
@DisplayName에 알아보기 _JUnit5에서 제공하는 애니터에이션으로, 테스트 클래스 또는 메서드의 이름을 더 의미 있는 값으로 설정 가능할 수 있다. 이를 통해 테스트 실행 결과를 더 명확하게 파악할 수 있다. 보통 테스트 메서드의 이름은 테스트 케이스가 무엇을 검증하는지 설명하는 이름으로 작성된다. 그러나 때로는 좀 더 구체적인 설명이 필요...
테스트의 예상되는 결과를 명시적으로 정의하여 코드의 의도를 명확히 전달이 가능하다.개발자는 테스트를 더 직관적으로 이해하고 디버깅 할 수 있다.과도한 사용은 코드의 가독성을 저하시킬 수 있다.너무 많은 검증은 테스트 케이스를 더 복잡하게 만들 수 있다.테스트가 실패할