전체 글178 웹 개발 - 프로젝트 2 - 12. work 삭제 db에서 유저나 게시판 같은 것을 삭제하는 경우가 있습니다. 이럴 때 db에서 그 값을 정말 제거하면 문제가 생길 수 있습니다.A유저가 B 게시글을 썼다고 가정해 보겠습니다 이제 A유저가 탈퇴를 했다고 가정하겠습니다. 그럼 만약 이 게시글에 접근한다면 해당 유저를 찾을 수 없고 엄청난 오류가 발생하게 됩니다. 이런 경우 유저의 상태를 이용해 관리합니다.상태 관리work를 제거하는 작업으로 예를 들어 보겠습니다.work의 상태를 저장하는 ENUM을 만듭니다. 현재는 NORMAL과 DELETE로 예를 들겠습니다.데이터베이스에도 상태를 저장하는 컬럼을 만듭니다. 이제 WorkEntity에서 상태를 가져올 수 있게 합니다. 기본적으로 모든 상태는 NORMAL로 둡니다. 그리고 삭제한 work는 DELETE로 바.. 2024. 10. 28. react - path parameter 게시글이나 특정 페이지를 보여줄 때 https://codestudycafe.tistory.com/149 처럼 url의 숫자를 이용하는 경우가 있습니다. 이것을 동적 라우팅이라고 합니다. 리액트에서 이런 기능을 사용해 봅시다.동적 라우팅routes에서 :id를 이용해서 변수를 받을 수 있습니다. 그리고 useParam을 이용해서 값을 받을 수 있습니다. 몇번째 게시물, 몇번째 상품 등을 보여줄 때 해당 기능으로 보여주면 됩니다. 주의사항위 예시도 그렇고 대부분의 경우 id는 숫자입니다. 그럼 유저는 url의 id를 조작해서 권한이 없는 게시글(ex. 비밀글)에 들어갈 수 있습니다. 백엔드에서 이러한 경우 데이터를 내려주지 않도록 잘 막아주어야 합니다. 2024. 10. 22. 13215 - Fish step 1더보기N개의 세그먼트가 있다고 해봅시다. 저희가 이미 어떤 방법을 통해서 [1, N/2], [N/2+1, N] 영역에 대해 답을 구했다고 해봅시다. 그럼 이 두 영역에 모두 걸쳐있는 영역에 대해 답을 구하면 문제를 해결할 수 있습니다.step 2더보기[1, N/2] 영역에서 오른쪽 부분합과 [N/2+1, N] 영역의 왼쪽 부분합을 구합니다. 오른쪽 부분합은 영역의 오른쪽 부터 왼쪽으로 쭉 진행하면서 나온 값들을 쭉 더해온 값입니다. 왼쪽 부분합은 왼쪽부터 진행한 것입니다. 이 부분합들을 각각 정렬합니다. 그리고 투포인터를 이용하면 두 영역에 모두 걸쳐있는 영역의 답을 구할 수 있습니다.분할정복으로 두 영역에 대해 답을 구하고 투포인터로 합쳐주면 됩니다.코드더보기#define _CRT_SECUR.. 2024. 10. 21. 웹 개발 - 프로젝트 2 - 11. 프론트 디자인 이제 프론트를 개발해야 합니다. gpt에게 디자인을 잡아달라고 합시다.로그인 유저가 비밀번호를 잘못 입력할 수도 있기 때문에 비밀번호 확인 창을 넣습니다.그리고 비밀번호가 같을 때만 진행하도록 합니다. 플로팅 버튼스트릭을 추가하는 버튼을 넣습니다. gpt한테 만들어 달라고 하면 코드까지 만들어 줍니다. 복붙한 다음 자신에게 맞는 스타일로 수정합니다. 오른쪽 아래에 버튼이 생겼습니다. 이 버튼을 누르면 일정 등록 탭으로 이동합니다.일정 등록이제 일정 등록 페이지를 만들어 봅시다. gpt가 말이죠. 해당 디자인을 복붙한 다음 고장난 부분을 수정해 줍니다. gpt는 만능이 아니기 때문에 마지막에는 사람이 꼭 검증해 주는 것이 좋습니다. 그렇게 수정하면 이렇게 나옵니다. 이정도면 제가 디자인 한 것 보다 훨씬.. 2024. 10. 19. spring boot - DTO 스프링으로 정보를 전달하다 보면 유저들에게 보여줘도 되는 정보가 있고 안되는 정보가 있습니다.예를 들어 현재 로그인을 한 상태인지, 로그인을 했다면 그 유저가 누구인지 알고 싶습니다. api를 호출해서 유저의 정보를 받아옵니다. 백엔드에서는 로그인을 했다면 해당 유저의 정보를 넘겨줍니다.그럼 다음과 같이 값이 내려옵니다. 유저의 정보를 알고 싶은 것인데 work나 streak같은 다른 정보들은 사실 필요가 없습니다. 그리고 비록 해시를 했다고는 해도 비밀번호가 내려오는 것은 문제가 있어 보입니다.이럴 때 필요한 정보만 DTO에 넣어서 내려주면 됩니다.DTODTO(Data Transfer Object) 클래스에 넘겨줄 정보를 넣어둡니다. converter 클래스를 만들어 줍니다. 이 클래스에서 entity.. 2024. 10. 15. 11025 - 요세푸스 문제 3 step 1더보기메모리 제한이 16mb입니다. 이거는 배열이나 세그 트리 같은 것을 사용하지 않고 풀라는 이야기입니다.(N, K)-요세푸스 순열의 답을 알고 있다고 해봅시다. (N+1, K)-요세푸스 순열은 무엇일까요?step 2더보기예시에 있는 경우를 생각해 봅시다. 한 사람이 제거될 때 까지 진행한 다음 순서와 숫자를 조금 섞어주면 다음과 같이 됩니다.(6, 3) 요세푸스 순열의 답은 1입니다. 그럼 이 과정을 반대로 올라간다고 생각하면 (7,3) 요세푸스 순열은 4임을 알 수 있습니다.(1, K) 요세푸스 순열의 답은 1입니다. 여기서부터 거꾸로 올라가면서 생각하면 쉽게 답을 구할 수 있습니다.코드더보기#define _CRT_SECURE_NO_WARNINGS#include#include#includ.. 2024. 10. 14. 이전 1 ··· 3 4 5 6 7 8 9 ··· 30 다음