분류 전체보기178 웹 개발 - 프로젝트 2 - 9. 로그인 폼 지금까지는 로그인을 버튼 누르면 자동으로 되게 했습니다. 이제 입력 폼을 만들어서 진행하도록 하겠습니다. 우선 입력받는 변수를 만듭니다. 입력 창을 만듭니다. bootstrap에 좋은 예시(https://react-bootstrap.netlify.app/docs/forms/overview)가 있으니 이것을 참고하기로 합니다. Rowjustify-content-md-center: 행 내의 항목들을 가운데로 정렬해줍니다.md는 미디엄(Medium) 사이즈 이상의 화면에서 적용된다는 의미입니다. 그보다 작은 화면에서는 이 클래스가 적용되지 않습니다.Colmd={6}: 미디엄 사이즈 이상의 화면에서 이 열이 12칸 중 6칸을 차지하도록 설정합니다.onSubmit : 로그인 버튼을 눌렀을 때 실행되는 함수입니다... 2024. 10. 5. 웹 개발 - 프로젝트 2 - 8. work 보여주기 이제 스트릭을 보여줄 것입니다.work 목록 가져오기work의 목록을 가져올 것입니다. work는 api/user/work를 get으로 호출해서 가져올 수 있습니다. useEffect를 사용해서 화면에 보여지는 순간 한번 실행되도록 해 주었습니다.이제 화면으로 돌아가 봅시다. destroy is not a function이라고 나오면서 저를 괴롭힙니다. 이것은 useEffect에서 async를 사용하면 생기는 일입니다.이것을 호출하기 위해서는 다음과 같이 바꿔줘야 합니다. getWork라는 async 함수를 선언하고 그 함수를 호출하는 식으로 바꿔줄 수 있습니다. 그러면 이제 work를 성공적으로 부르는 것을 알 수 있습니다. work 목록 보여주기useState를 이용해서 받은 정보를 저장해 줍니다. .. 2024. 10. 4. webgoat 지워지지 않은 암호키 암호키를 잘 관지하지 않으면 키가 유출될 수 있습니다. 실습을 통해 도커에 남아 있는 키로 디코딩을 할 수 있습니다.docker 접속docker run -d webgoat/assignments:findthesecret 를 이용해 도커와 연결합니다. 그러면 마지막에 문자가 하나 나옵니다. docker exec -ti --user 0 {문자} bash 를 이용해 도커에 들어갈 수 있습니다. 문제에 보면 root에 password 파일이 있다고 합니다. root로 이동합니다. default_secret이 그 파일인 것 같네요. 확인해 보겠습니다. 문제에 보면 어떤 문자열을 어떤 식으로 디코딩해야 하는지 알려줍니다. -kfile뒤에 secret_file의 경로를 넣어줍니다. 알에 있는 Leaving passwo.. 2024. 10. 1. 24520 - Meet In The Middle step 1더보기신촌 왕국은 트리 구조로 되어 있습니다. 두 사람의 위치가 s, e라고 하겠습니다. 1번 영역은 항상 s가 더 가깝습니다.2번 영역은 항상 e가 더 가깝습니다.만약 초록색 점이 답이라고 가정하면 빨간 점이 각 마을까지 거리의 합이 더 짧으므로 모순이 생깁니다.즉, s와 e 사이의 경로에 답이 있습니다.step 2더보기LCA를 이용해서 두 점 사이의 거리를 구할 수 있습니다. 그리고 LCA를 이용해서 s나 e에서 특정 거리만큼 떨어진 경로 위의 점을 구할 수 있습니다.LCA를 구할 때 dfs로 하면 메모리가 터질 수 있습니다.코드더보기#define _CRT_SECURE_NO_WARNINGS#include#include#include#includeusing namespace std;vecto.. 2024. 9. 30. 웹 개발 - 프로젝트 2 - 7. streak 연장 streak연장 기능을 만들어 봅시다.streak db먼저 스트릭 정보를 담는 db를 만들어 봅시다.유저 정보가 담겨있는 user db,할 일이 담겨있는 work db,각 일을 했는지 안했는지 체크하는 streak db를 만듭니다. 각 유저는 여러개의 할 일이 있을 수 있습니다.그리고 각 일들은 여러 달동안 진행할 수 있습니다. 여기서 아주 중요한 것이 있습니다.db에 있는 int 형은 2^31 - 1입니다. 그리고 한 달은 최대 31일로 이루어져 있죠.즉, 특정 달에 대해 이 일을 했는지 안했는지 체크하려면 int 1개면 충분하다는 것입니다.2^{i-1}에 해당하는 비트가 1이면 i번째 날에 일을 했다는 뜻입니다. 예를 들어 2^0에 해당하는 비트가 1이면 첫번째 날에 일을 했습니다.그럼 다음 구조로 .. 2024. 9. 29. spring boot - intercepter 백엔드를 개발하다 보면 특정 유저(관리자, 로그인 한 유저 등)만 사용할 수 있는 api가 있습니다.로그인 한 유저만 사용할 수 있는 controller를 만들어 보겠습니다. intercepter를 이용해 해당 유저만 통과시키도록 하겠습니다.intercepter저희는 intercepter를 만들어서 예외처리를 할 것입니다. 해당 기능을 해 줄 파일 하나를 만듭니다. 그리고 HandlerInterceptor를 상속하고 preHandle를 사용해 controller진입 전에 체크를 해 줄 것입니다. HttpMethod.OPTIONS.matches(request.getMethod()) : 서버와 통신할 때 예비 요청을 보내 잘 통신되는지 확인한 다음 본 요청을 보냅니다. 이때, 예비 요청은 OPTIONS로 보.. 2024. 9. 28. 이전 1 ··· 5 6 7 8 9 10 11 ··· 30 다음