란 개발일지

Total / Today

고정 헤더 영역

글 제목

메뉴 레이어

란 개발일지 Total / Today

메뉴 리스트

  • MY GITHUB
  • GITHUB.IO
  • 태그
  • 방명록
  • 전체 (257)
    • 일상 (21)
    • 학부 (14)
      • 캡스톤(a.k.a 졸작) (14)
    • 취준 (48)
      • 1. 기술면접 (12)
      • 2. 코딩테스트 (36)
    • 여러가지 (18)
      • 맥린이 탈출기 (12)
      • 기타 (6)
    • 갭알 (35)
      • 어렵다.. 서버.. (5)
      • WEB (15)
      • GIT (6)
      • JS & JQUERY (8)
      • DATABASE (1)
    • JAVA (61)
      • 기본 & 강의복습 (32)
      • SPRING (29)
    • PYTHON (60)
      • 기본 (19)
      • K-DIGITAL (41)

검색 레이어

란 개발일지

검색 영역

컨텐츠 검색

JAVA/SPRING

  • [QueryDSL] 동적쿼리로 사용자 조회하기

    2021.05.18 by ranlan

  • [QueryDSL] 카테고리별 게시글 조회

    2021.04.29 by ranlan

  • [JPA] 사용자 비밀번호 확인과 정보 수정

    2021.04.29 by ranlan

  • [ERROR] 스프링부트 테스트 IllegalStateException

    2021.04.29 by ranlan

  • [JPA] 회원가입시 아이디 중복검사

    2021.04.20 by ranlan

  • [JPA] 회원가입과 유효성 체크

    2021.04.20 by ranlan

  • [SPRING SECURITY] CSRF

    2021.04.16 by ranlan

  • [SPRING SECURITY] 커스텀 클래스와 로그인

    2021.04.16 by ranlan

  • [ERROR] JPAQueryFactory 의존성 문제

    2021.04.15 by ranlan

  • [JPA] getOne과 findById ID로 객체 조회하기

    2021.04.14 by ranlan

  • [ERROR] 순환참조 문제

    2021.04.14 by ranlan

  • [WEB] RESTful API 만들기

    2021.03.22 by ranlan

[QueryDSL] 동적쿼리로 사용자 조회하기

관리자 계정으로 로그인했을 때 사용자 및 게시물 관리하는 ADMIN 페이지를 만들고 있다. WHERE절 없이 사용자 전체 조회하는 로직과 관리자, 일반 회원 등 권한에 따라 사용자를 조회하는 로직을 따로 작성해도 되지만 강의에서 배운 동적쿼리를 써서 한번에 구현해보기로 하였다. [참고] 2021.05.17 - [web/queryDSL] - [QueryDSL] 동적쿼리 [QueryDSL] 동적쿼리 String usernameParam = "member1"; Integer ageParam = 10; List result = searchMember(usernameParam, ageParam); 1. BooleanBuilder private List searchMember(String usernameCond, ..

JAVA/SPRING 2021. 5. 18. 20:08

[QueryDSL] 카테고리별 게시글 조회

카테고리 리스트로 메뉴가 구성되고 메뉴를 눌렀을 때 해당 카테고리에 등록된 게시글을 조회하고 싶다. 조건이 들어간 쿼리를 작성하기 위해 QueryDSL을 이용하였다. [참고] 2021.04.29 - [web/queryDSL] - queryDSL이란 queryDSL이란 [Inflearn] 김영한 - 실전! Querydsl 실전! Querydsl - 인프런 | 강의 Querydsl의 기초부터 실무 활용까지 한번에 해결, 본 강의는 자바 백엔드 개발의 실전 코스를 완성하는 마지막 강의 입니다. 스프링 부 juran-devblog.tistory.com 2021.03.11 - [web/[study] jpa] - [JPA 기초] 프록시와 지연로딩 [JPA 기초] 프록시와 지연로딩 객체 조회 시 해당 객체가 참조하는..

JAVA/SPRING 2021. 4. 29. 03:31

[JPA] 사용자 비밀번호 확인과 정보 수정

사용자 본인의 정보 수정을 하기 전 비밀번호를 입력하여 본인확인 절차를 거치도록 하였다. [이전] 2021.04.20 - [project/spring] - [JPA] 회원가입과 유효성 체크 [JPA] 회원가입과 유효성 체크 Spring Boot JPA 회원가입 [도메인 설계] 회원 정보의 내용으로 회원 가입을 위한 필수 입력 항목들은 아래와 같다. - 이름 - 아이디 - 비밀번호 - 이메일주소 - 전화번호 위 항목들을 포함하여 회원가 juran-devblog.tistory.com 비밀번호 재확인 사용자가 본인확인을 위해 입력한 비밀번호와 저장된 비밀번호를 비교하기 위해 passwordEncoder 인터페이스 의 메서드를 이용하였다. MemberService private final PasswordEnco..

JAVA/SPRING 2021. 4. 29. 03:29

[ERROR] 스프링부트 테스트 IllegalStateException

문제강의를 따라하며 테스트코드를 작성하고 실행하다 아래와 같은 에러가 발생하였다. java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test 오류의 원인으로는 찾아본 결과 몇가지가 있는데 간단히 정리해보면- @SpringBootTest 클래스가 실행되며 필요한 스프링부트 설정 클래스를 찾지 못할 경우- 테스트 클래스(@SpringBootTest) 패키지 경로와 메인 클래스(@SpringBootApplication) 패키지 경로가 다를 때- @SpringBootApplication..

JAVA/SPRING 2021. 4. 29. 01:39

[JPA] 회원가입시 아이디 중복검사

[이전] 2021.04.20 - [project/spring] - [JPA] 회원가입과 유효성 체크 [JPA] 회원가입과 유효성 체크 Spring Boot JPA 회원가입 [도메인 설계] 회원 정보의 내용으로 회원 가입을 위한 필수 입력 항목들은 아래와 같다. - 이름 - 아이디 - 비밀번호 - 이메일주소 - 전화번호 위 항목들을 포함하여 회원가 juran-devblog.tistory.com 회원가입 시 아이디가 기존의 사용자들이 쓰는 아이디와 겹치는지 확인해야 한다. 나는 아이디 중복 검사를 위해 아이디 입력칸 아래 아아디 중복확인 버튼을 만들었고 클릭 시 중복검사 api가 호출되도록 하였다. 📄 MemberRepository @Repository public interface MemberReposit..

JAVA/SPRING 2021. 4. 20. 02:23

[JPA] 회원가입과 유효성 체크

도메인 설계 회원 정보의 내용으로 회원 가입을 위한 필수 입력 항목들은 아래와 같다. - 이름 - 아이디 - 비밀번호 - 이메일주소 - 전화번호 위 항목들을 포함하여 회원가입을 위한 Request 객체 를 따로 만들어 주었다. SignupRequest @Setter @Getter @NoArgsConstructor @AllArgsConstructor public class SignupRequest { @NotBlank(message = "아이디를 입력해 주세요.") private String memberId; @NotBlank(message = "비밀번호를 입력해 주세요.") private String memberPw; @NotBlank(message = "이름을 입력해 주세요.") private Stri..

JAVA/SPRING 2021. 4. 20. 01:35

[SPRING SECURITY] CSRF

CSRF(Cross Site Request Forgery) 공격사용자 의지와 무관하게 공격자의 의도대로 서버에 특정 요청을 하도록 함예를 들어 한 사용자가 서비스를 사용중이다. 공격자는 이와 비슷한 도메인을 가진 가짜 사이트를 하나 만들어 사용자가 접속하도록 유도한다. 동일한 화면의 가짜 사이트에 사용자는 정보를 입력하고 서버에 요청을 보낸다. 하지만 실제로 서버에 요청되는 내용은 사용자의 요청이 아닌 공격자가 심어둔 내용이다. 이렇게 사용자 권한을 이용해 서버에 변조된 요청을 보내는 공격방법을 CSRF라 한다.  CSRF Token서버에 들어온 요청이 실제 서버에서 허용한 요청인지 확인하기 위한 토큰서버에서 뷰 페이지를 발행할 때 마다 랜덤으로 생성된 Token을 같이 준 뒤 사용자 세션에 저장한다. ..

JAVA/SPRING 2021. 4. 16. 01:22

[SPRING SECURITY] 커스텀 클래스와 로그인

AuthenticationProvider입력된 로그인 정보와 DB에서 가져온 사용자 정보를 비교하는 인터페이스사용자의 요청이 담긴 Authentication를 AuthenticationManager에 넘겨주며 해당 인터페이스를 ProviderManager가 구현ProviderManager은 여러 AuthenticationProvider로 구성되며 AuthenticationProvider에서 실제 인증에 대한 부분 처리인증 전의 Authentication 객체를 받아 인증이 완료된 객체 반환 AuthenticationProvider 인터페이스를 구현하여 해당 클래스를 AuthenticationManger로 등록AuthenticationManger 인증 요청을 받고 Authentication를 채움Authe..

JAVA/SPRING 2021. 4. 16. 01:04

[ERROR] JPAQueryFactory 의존성 문제

문제QueryDSL 코드를 짜고 api 테스트를 해보려고 서버를 켰더니.. 실행이 안된다..  대충 뭐 JPAQueryFactory에 대해 의존성 주입이 잘 안된듯 하다.구글링 해보니 나와 완벽히 같은 오류가 발생한 경우는 거의 없고 보통 레퍼지토리나 서비스의 의존성 주입에 대한 문제가 발생하는 것 같았다. 대부분 어노테이션을 제대로 안붙였거나 경로를 잘못썼거나.. 사소한 이유들이였다. 근데 ..왜 ....나는 ......어노테이션도 잘 쓰고 코드도 잘 짰는데 ......🥲🥲🥲🥲🥲  build.gradleplugins { id 'org.springframework.boot' version '2.4.4' id 'io.spring.dependency-management' version '1.0.11..

JAVA/SPRING 2021. 4. 15. 00:57

[JPA] getOne과 findById ID로 객체 조회하기

Spring Data JPA를 사용하여 객체의 @Id로 조회할 때 두 메서드 모두 사용 가능하다. 그 차이점은 무엇일까? getOne() /** * Returns a reference to the entity with the given identifier. Depending on how the JPA persistence provider is * implemented this is very likely to always return an instance and throw an * {@link javax.persistence.EntityNotFoundException} on first access. Some of them will reject invalid identifiers * immediately. ..

JAVA/SPRING 2021. 4. 14. 01:10

[ERROR] 순환참조 문제

문제차근차근 JPA를 사용하여 로직을 만들고 잘 나오는지 테스트를 하고 있었다. 그런데 갑자기ㅠㅠ java.lang.IllegalStateException: Cannot call sendRedirect() after the response has been committed 아주 난리가 났다.. 쿼리를 살펴보니 계속해서 같은 쿼리가 반복되고 포스트맨으로 응답 결과를 보니 매핑관계에 따라 끝없이 타고 가는 것이였다 😭😭   '순환참조' 문제라 부르기도 하고 JPA를 사용하며 흔히들 겪는 문제라 한다.즉 양방향 매핑된 경우 엔티티를 JSON으로 변환하는 도중(연관관계를 직렬화 하는 도중) 무한 참조로 인한 에러이다.작성한 엔티티 객체를 살펴보면 Board객체에 작성자 정보로 Member객체를 참조하였고 M..

JAVA/SPRING 2021. 4. 14. 00:24

[WEB] RESTful API 만들기

VIEW를 담당하는 컨트롤러를 제외한 모든 컨트롤러를 @RestController로 지정하여 RESTful API로 만들었다. @RestController는 별도의 View를 제공하지 않기 때문에 문제가 발생하는 상황에서 상태코드와 응답메시지 등을 함께 보내주어야 한다고 한다. 따라서 컨트롤러의 반환값은 모두 ResponseEntity로 하였고 ApiResponse라는 response객체를 만들어 상태코드, 메시지, 데이터 등을 담아 반환하였다. ResponseEntity는 '개발자가 직접 결과 데이터와 HTTP 상태 코드를 직접 제어할 수 있는 클래스'로 404나 500같은 HTTP 상태 코드를 전송하고 싶은 데이터와 함께 전송할수 있기 때문에 좀더 세밀한 제어가 필요한 경우 사용할 수 있다. Resp..

JAVA/SPRING 2021. 3. 22. 23:10

추가 정보

인기글

최신글

페이징

이전
1 2 3
다음
TISTORY
란 개발일지 © Magazine Lab & Customized by Juran

티스토리툴바