목록개발 공부 (109)
Just Do IT!

듣고 있는 강의에서 Swagger UI를 사용하기 위해서 의존성 설치를 하고 접속했는데, 이런식으로 404 에러가 나고 있었다.분명 Maven Repository에서 Gradle 잘 복사해왔고 gradle도 다시 빌드했는데, 오류가 나다니..뭔가 이상해서 구글링을 해보았고 Spring 버전에 따라 다르다는 걸 알게 되었다. 해결 방법 스프링부터 3버전 이상부터 SpringDoc을 사용하기 위해 추가해야하는 의존성이 다르다는 것이다. https://springdoc.org/ OpenAPI 3 Library for spring-bootLibrary for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the Ope..

데이터 흐름사용자가 브라우저에서 데이터를 입력하여 DTO 형태로 서버에 전송서버는 이 DTO를 받아 DAO를 통해 데이터베이스에 저장데이터를 조회할 때 DAO를 통해 데이터베이스에서 데이터를 가져와 DTO로 클라이언트에게 반환 Spring Boot 에서의 활용Repository : DAO 역할을 한다Controller : DTO를 받아 서비스 계층으로 전달하거나, 서비스 계층에서 받은 데이터를 DTO로 변환하여 클라이언트에게 반환한다추가 구조 보러가기: https://daydream-sy.tistory.com/333 DTO (Data Tranfer Object)계층 간(Controller, View, Business Layer / Spring Boot에서는 뷰, 컨트롤러, 서비스, DAO, DB..
String → int1. Integer.parseInt()java.lang.Integer 클래스의 static 메소드이다.파라미터로 숫자로 변환할 문자열을 입력받고, 입력받은 문자열을 integer로 변환한 int 값을 리턴한다. 예시 코드:public class Main { public static void main(String[] args) { // 변환할 문자열 String str = "1234"; // 문자열을 정수로 변환 try { int num = Integer.parseInt(str); System.out.println("변환된 정수: " + num); } catch (NumberFo..

지난 주에 window 환경에서 redis 를 설치하는 글을 썼었다.https://daydream-sy.tistory.com/360 [Redis] Window 환경에서 Redis 설치하기공식 문서https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-windows/ Install Redis on WindowsUse Redis on Windows for developmentredis.io 내 노트북은 window라 window에서 설치하기 부분을 찾아봤daydream-sy.tistory.com 그런데,스프링 프로젝트에 redis 적용한 부분이 있는데 실제로 실행해보니 계속 redis 관련 오류가 나는 ..

Protected Route 란?해당 페이지로 이동하기 전에 조건을 명시해주고, 이 조건을 만족했을 때 해당 페이지로 이동가능하고,조건을 만족 못한다면 특정 페이지로 돌아가게 할 수 있다. react-router-dom을 설치한 후 route를 사용할 때 적용할 수 있다. 이번 프로젝트에서는,로그인 여부에 따라 접근 불가능한 곳이 있기 때문에 Protected Route를 이용해서 해주었다. react-router-dom 설치npm install react-router-dom 우선은 당연히 react-router-dom을 설치해야 route를 사용할 수 있으니까 설치한다.나는 기존에 이미 route 설정을 해주었기 때문에 생략한다. ProtectedRouter 설정const Prote..
이번 프로젝트에서는 소셜 로그인이 있기 때문에 쿠키에서 id를 받아와서 로그인 여부를 판단하고 있다.그런데 한 가지 문제점이 생겼다.header에 유저 정보를 가져와야 한다 (유저 프로필)문제집/스터디 페이지에서 유저 정보를 가져와서 생성한 사람과 비교해야 한다. 이런 문제점이 생기는데 콘솔에 찍어보면 쿠키를 통해 가져올 수 있는 정보는 id밖에 없기 때문에백엔드 response, request를 아예 갈아엎어야 하던지 아니면 쿠키에 username을 받아와야 했다.그런데 쿠키에 username을 받아오지 않고 id로만 받아와야만 했기 때문에 (username이 unique key가 아님)그냥 프론트쪽에서 전역적으로 유저 정보를 받아와서 사용할 수 있도록 했다. useContext?react..

공식 문서https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-windows/ Install Redis on WindowsUse Redis on Windows for developmentredis.io 내 노트북은 window라 window에서 설치하기 부분을 찾아봤는데, window에서는 공식적으로 지원되지 않는다.Windows에 Redis를 설치하려면 가이드에 나온 것 처럼 WSL2 (Linux용 Windows 하위 시스템) 를 설치해야 한다. 설치하기1. wsl 설치wsl --install cmd(명령 프롬포트)에서 위의 명령어를 입력해서 wsl을 설치한다.설치 후 다시 노트북을..

프로젝트를 진행하는데,특정 엔티티를 삭제할 때 연관된 엔티티를 전부 삭제하도록 해야 하는데 제대로 되지 않았다. 이 부분을 팀원분이 해결해주셨고, 나는 그걸 참고해서 내가 맡은 문제집 쪽 삭제 로직을 수정하였다. https://daydream-sy.tistory.com/358 JPA Cascade 알아보기Cascade란? 부모 엔티티가 영속화될 때 자식 엔티티도 같이 영속화되고, 부모 엔티티가 삭제될 때 자식 엔티티도 삭제되는 등 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태daydream-sy.tistory.com 여기서 정리했던 CascadeType.ALL과 orphanRemoval=true 옵션을 사용했고다른 로직도 일부 수정하면서 테스트 해본 결과 한번에 삭제되는 걸 알 수 ..

Cascade란? 부모 엔티티가 영속화될 때 자식 엔티티도 같이 영속화되고, 부모 엔티티가 삭제될 때 자식 엔티티도 삭제되는 등 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 전이되는 것을 의미한다. JPA에서는 영속성 전이를 Cascade 옵션을 통해 설정하고 관리할 수 있다.JPA Cascade를 활용하면 ‘어떤 엔티티와 다른 엔티티가 밀접한 연관성이 있을 때’에 대한 관리가 매우 수월해진다. 예를 들어,문제와 문제에 대한 댓글이 있다고 가정해보자.문제와 댓글은 연관 관계에 있는 것이다. 이 두 연관 관계의 관리를 하는 데 cascade가 유용하게 사용된다. Cascade 옵션ALLPERSISTMERGEREMOVEREFRESHDETACHcascade는 여섯 가지 옵션..

PageModule$WarningLoggingModifier : Serializing PageImpl instances as-is is not supported, meaning that there is no guarantee about the stability of the resulting JSON structure! For a stable JSON structure, please use Spring Data's PagedModel (globally via @EnableSpringDataWebSupport(pageSerializationMode = VIA_DTO)) or Spring HATEOAS and Spring Data's PagedResourcesAssembler as documented in h..