일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- post
- HttpSession
- Thymeleaf
- GA4
- db
- 리액트오류
- 구글알고리즘
- GET
- JPA
- 플러그인
- mergeattributes()
- linkedhastset
- 데이터베이스
- firebase
- useEffect
- SEO
- @Repository
- router
- 인텔리제이
- @Controller
- Polylang
- 구글
- set
- @Entity
- @Query
- addallattributes()
- ChatGPT
- Login
- 구글애널리틱스
- 워드프레스
- Today
- Total
목록개발 준비/Spring Boot (37)
개발천재

HttpSession을 이용한 로그인 처리서버가 관리하는 사용자 상태 정보로, 클라이언트가 요청할 때마다 세션 ID를 전달하여 사용자 식별한다. 관리의 주체가 서버이기 때문에 로그인 처리 방식으로 가장 많이 사용되며, 권장되는 방식이다.세션을 이용해서 로그인하는 방식에서 클라이언트는 세션 ID만 전달하고 실제 로그인 정보는 서버에 저장된다. 서버에서 관리하므로 보안성이 높아 비교적 안전하다는 장점이 있다. 또한 다양한 사용자 상태 정보를 관리할 수 있고, 세션 타임아웃 설정으로 보안 기능을 강화할 수 있다.단, 서버 자원을 사용하므로 많은 사용자 관리 시 부하 발생 가능성이 있고, 클라이언트가 세션 ID를 분실하거나 만료되면 재로그인 필요하다.세션에는 유지 시간이 있기 때문에 일정 시간이 지나도 사용자의..

JpaRepository 이해하기JpaRepository는 Spring Data JPA에서 제공하는 인터페이스다. 이걸 사용하면 SQL을 직접 작성하지 않아도 기본적인 데이터베이스 작업(조회, 저장, 삭제 등)을 자동으로 처리할 수 있다. JpaRepository의 역할JpaRepository는 기본적으로 CRUD 기능을 제공하는데, 이걸 사용하면 INSERT, SELECT, UPDATE, DELETE 같은 SQL 쿼리를 직접 작성하지 않고 사용할 수 있다.public interface MemberRepository extends JpaRepository {} JpaRepository를 쓰면 @Repository를 선언하지 않아도 되는 이유Spring Data JPA에서 JpaRepository를 상속..

Entity와 DTO의 역할 차이EntityDB와 직접 연결되는 핵심 모델DTOView나 API를 위한 가공된 데이터 객체 Entity는 데이터베이스 테이블과 1:1 매핑되는 객체이다. Entity는 @Entity로 선언된 클래스를 말하며 데이터베이스의 구조(컬럼, 관계 등)를 그대로 반영한다. 비즈니스 로직을 직접 담지 않고, 순수한 데이터 구조만 가진다. DTO(Data Transfer Object)는 데이터를 전달하기 위한 객체이다. Controller ↔ Service ↔ View(프론트엔드) 간의 데이터 전송에 사용하며, Entity와 달리, 비즈니스 요구사항에 맞게 필요한 데이터만 담거나 가공할 수 있다. 주로 getter, setter 또는 spring에서는 @Data 등을 사용해 간단하게..

@Query 이해하기@Query는 Spring Data JPA에서 사용자 정의 쿼리를 작성할 때 사용하는 어노테이션으로, JPQL(엔티티 기반 쿼리)이나 Native SQL(DB 직접 쿼리)을 사용하여 복잡한 조건의 검색, JOIN, 서브쿼리 등을 자유롭게 구현할 수 있으며, 메서드 이름으로 작성하기 어려운 쿼리를 간결하게 표현하고 최적화할 때 유용하게 사용된다. @Query를 사용하는 이유복잡한 쿼리나 맞춤형 쿼리가 필요할 때, JPA 메서드 이름만으로는 부족할 때 사용한다. JPQL(Java Persistence Query Language)을 사용해서 엔티티 객체를 기반으로 쿼리를 작성할 수 있고, Native Query(순수 SQL)도 지원한다. JPA 메서드 이름으로 만들기 어려운 경우SQL 최..

RedirectAttributes는 페이지 이동할 때 잠깐 붙였다가, 한 번 보여주고 바로 버려지는 포스트잇 메모! RedirectAttributes 이해하기Spring에서 리다이렉트(다른 페이지로 이동)할 때, 데이터를 잠깐 전달하는 방법이다. redirect:/member/view처럼 리다이렉트를 하면 새로운 요청이 만들어진다. 그래서 Model이나 @RequestParam으로는 데이터를 전달할 수 없다.이때 RedirectAttributes가 잠깐 데이터를 붙여서 보내주는 역할을 한다. 회원가입, 글 작성, 삭제 등이 성공했을 때 “성공했습니다!” 같은 알림 메시지를 다음 화면에 한 번만 보여주고 싶을 때 사용한다. RedirectAttributes를 많이 쓰는 경우회원가입 후 → “회원가입 성..

Thymeleaf에서 표(table)를 만들어서 반복문(each)을 이용해 데이터를 리스트로 출력하는 경우, 각 행(row)에 고유한 번호(인덱스)를 표시하고 싶을 때가 있다. 그때 사용하는 것이 stat이다. stat 이용하기th:each="quiz, stat : ${quizList}" 는quiz를 반복하며 각 항목을 quiz에 담고, stat에 반복 상태를 저장한다. stat.index를 입력하여 현재 반복의 0부터 시작하는 index 값을 반환하게 한다. 1부터 시작하는 번호를 표시하려면 stat.index 옆에 +1을 입력한다. stat.count를 사용하면 별도의 계산 없이 1부터 시작하는 번호를 사용할 수 있다. No 내용 정답 수정 삭제 ..

HttpSession은 HTTP 요청 사이에서 데이터를 저장하고 공유하는데 사용되는 객체이다. 웹 애플리케이션에서 사용자 세션을 관리하는 데 중요한 역할을 한다. 웹 애플리케이션은 상태가 없는 stateless 프로토콜인 HTTP를 사용하기 때문에, 사용자가 여러 페이지를 방문할 때마다 서버가 사용자 정보를 기억할 수 있도록 HttpSession을 사용한다.@GetMapping("/") public String loginPage(Model model) { model.addAttribute("member", new MemberDto()); return "login"; // login.html을 반환 }@PostMapping("/home")public String logi..

@EnableJpaAuditing 이해하기@EnableJpaAuditing은 Spring Data JPA에서 엔티티의 생성일자나 수정일자 등을 자동으로 관리할 수 있게 해주는 기능을 활성화하는 어노테이션이다. 이 어노테이션을 사용하면 @CreatedDate, @LastModifiedDate와 같은 어노테이션을 통해 날짜와 시간을 자동으로 기록할 수 있게 된다. 시간을 자동으로 기록할 수 있어 수동으로 입력할 필요가 없고, 데이터의 생성 및 수정 시점을 쉽게 관리할 수 있어서 기록이 필요한 앱에서 유용하다는 장점이 있다. 또한 @EnableJpaAuditing은 날짜 관리 외에도 @CreatedBy, @LastModifiedBy와 같은 기능을 통해 자동으로 작성자나 수정자를 기록할 수도 있다. @Ena..

WebMvcConfigurer는 Spring MVC의 기본 설정을 변경하거나 추가할 수 있는 방법을 제공한다 WebMvcConfigurer 이해하기WebMvcConfigurer는 Spring MVC 설정을 간편하게 커스터마이즈할 수 있도록 도와주는 인터페이스이다. 이를 통해 웹 애플리케이션에서 기본적인 MVC 설정을 변경하거나 추가할 수 있다.예를 들면, WebMvcConfigurer는 학교의 규칙을 설정하는 교장 선생님과 비슷하다고 할 수 있다.교장 선생님은 학교에서 학생들이 지켜야 할 규칙을 정하는 사람이다. 예를 들어, 어디서 점심을 먹을지, 어떤 과목을 선택할지, 학생들이 학교에 들어오기 전에 확인해야 할 사항 등을 설정한다. 또한 학교의 기본적인 운영은 정해져 있지만, 교장 선생님은 특정 규..

클라이언트 단에서도 검증을 하고 서버단에서도 검증이 필요한 이유클라이언트 단과 서버 단에서 각각 검증을 하는 이유는 보안과 사용자 경험을 동시에 고려하기 위함이다. 클라이언트 단 검증은 사용자 경험을 개선하고, 서버의 부담을 줄이기 위한 용도이며, 서버 단 검증은 보안, 데이터 무결성, 권한 검증 등 중요한 요소들을 처리하기 위한 용도이다. 따라서 클라이언트 단에서 간단한 유효성 검사를 먼저 하고, 서버 단에서 모든 데이터를 최종적으로 검증하는 방식으로 이중 검증을 사용하는 것이 가장 안전하고 효율적이다. 클라이언트 단에서 검증이 필요한 이유즉시 피드백 제공사용자가 잘못된 데이터를 입력할 경우 즉시 피드백을 받을 수 있다. 예를 들어, 이메일 형식이 잘못되었거나 필수 입력란이 비어 있을 경우, 서버에 ..