목록전체 글 (392)
Just Do IT!

드디어! 배포를 끝냈다! 정말 마지막의 마지막까지 오류 때문에 고생을 많이 했지만...그래도 배포가 잘 되어서 다행이다. 1. 프론트 연동 마무리수요일날까지 내가 맡은 기능들을 연동을 다 완료했다.뭔가 이건 내가 프론트엔드 기능을 주로 맡아서 진행해서 그런지 모르겠지만, 피그마랑 똑같은 화면에서 기능이 잘 동작되는 것까지 봐야 완성한 기분이 든다.백엔드 기능은 항상 포스트맨으로 테스트했는데, 테스트가 잘 되는 걸 확인했음에도 화면에서 동작하는 것까지 봐야만잘 동작하는 것 같은 그런 느낌...? 이건 나만 그렇게 생각하는 걸수도 있다. 알람 기능을 가져올 때 약간 걱정했었는데, 걱정했던 것과는 달리 수월하게 연동할 수 있었다.사실 알림 기능이야 백엔드 단에서 구현을 다 하고 프론트 쪽에서는 알람을 ..

지난 주에 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..

Remote Dictionary Server의 약자로,빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어이다. 키(key) - 값(value) 쌍의 해시 맵과 같은 구조를 가진 비관계형(NoSQL) 데이터베이스 관리 시스템(DBMS)이며, 오픈 소스 기반으로 인-메모리 데이터 구조 저장소로 메모리에 데이터를 저장한다. 기존 DB가 있는데 Redis를 왜 사용하는가?DB는 매번 디스크에 접근해야 하기 때문에 사용자가 많아질수록 부하가 많아져서 느려질 수 있어 캐시 서버를 도입하여 사용하는 것이 좋다. 이 캐시 서버로 이용할 수 있는 것이 바로 Redis이다. 같은 요청이 여러 번 들어올 때 Redis를 사용함으로써 매번 DB를 거치지 않고 캐시 서버에서 저장했던 값을 바로 가져와 DB의 부..
저번주에 백엔드 기능을 거의 구현했다고 했는데,프론트랑 연동하면서 수정할 부분을 발견해서 중간중간 수정하는 부분이 많았다.확실히 백엔드와 프론트를 다함께 진행하는 프로젝트 자체가 어렵다는 걸 알게 되는...그런 주간이었다. 1. 백엔드 버그 수정팀원 분이 알려주신 버그인데, 확실히 db와 연관된 걸 조금 더 배워야 하고 공부할 게 많다는 걸 느낀 날이었다.우리 프로젝트에서 연관된 DB가 많은데, 만약에 상위 DB의 data를 삭제하면 하위 DB의 data들도 모두 삭제되어야 했다. 내가 맡은 부분으로 예를 들어보자면,문제집 삭제 → 문제집 댓글 삭제 → 댓글 좋아요 삭제 → 북마크 삭제 → 문제집의 문제 삭제 → 스터디에 추가한..
이번 프로젝트에서는 소셜 로그인이 있기 때문에 쿠키에서 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는 여섯 가지 옵션..
벌써 4주차라니 믿기지 않는다...이번주는 백엔드 기능 구현으로 바쁜 주간이었다. 1. 소셜 로그인 연동 완료프론트엔드에서 오류가 났던 소셜 로그인 연동을 끝냈다.사실 저번주 주말에 모각코하면서 다 끝내려고 했는데 백엔드 로직을 수정해야 한다고 해서 잠시 멈추었다가 진행했다.일반 로그인을 안해서 다행이라는 생각을 했다...ㅋㅋ소셜 로그인 연동하는 것도 이렇게 오래 걸렸는데..확실히 로그인은 어렵다. 2. 전역 예외 처리지난 주에 어떤 다른 프로젝트의 깃허브를 구경하다가 전역적으로 예외 처리한 걸 발견했다.enum type으로 직접 하나하나 예외를 작성해주고 status까지 지정해놓은 걸 보니 복잡해보이지만 우리 프로젝트에도 적용해볼 수 있겠다는 생각이 들어 이번주에 완료했다. http..